الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أسئلة صغيرة ولكن هامة

بدأه mostafa111 في 25 يناير 2012 · 6 رد · 1,061 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

1- كم بت أو بايت يستهلك كلا من nvarchar وvarchar و int و bigint في sql server?‏

2- ما هو الربط بين جدولين؟ وكيف يسرع الربط بين جدولين عملية البحث؟ ومتى لايوجد ضرورة للربط بين جدولين؟

3- في sql server كيف أجعل عمود UNIQUE ؟

4- كيف يمكن تحويل صيغة .sql إلى صيغة .mdf?‏ (يعني أنا عندي ملف حملته من النت لاحقته .sql وبدي أتعامل معه وأستفيد منه)

وشكرا جزيلا

#2

السلام عليكم.

الاجابات:

1)

varchar [ ( n | max ) ]

يتم حجز بايتات بحسب n و إذا تم استخدام max يتم حجز : 2^31-1

nvarchar [ ( n | max ) ]

يتم حجز بايتات بحسب n * 2 و إذا تم استخدام max يتم حجز : 2^31-1

int

4 بايتات

bigint

8 بايتات

لمزيد من التفاصيل يمكنك مراجعة الرابط: Data Types

2) الربط بين جدولين: هو إيجاد علاقة منطقية بينهم بحيث يختزل كمية البيانات المدخلة و يجعل عملية التعديل سهلة و يجعل قاعدة البيانات أسهل للفهم و التعامل ( مثل العلافة بين جدولي العملاء و الطلبيات فلا داعي لتكرار معلومات العميل لكل طلبية إذ يكفي وضع رقم العميل في الطلبية حتى يتم الربط مع جدول العملاء الأساسي و جلب كافة المعلومات المتعلقة به ) و ليس من الضروري أن الربط بين الجدولين يسرع عملية البحث و لكن يمكن إضافة مايسمى Index للأعمدة المستخدمة في عملية البحث مما يسرعها.

لا يوجد ضرورة للربط بين جدولين في حالة لا يوجد ربط منطقي بينهم ( مثلاً الربط بين جدول العملاء و جدول آخر خاص بشؤون الموظفين ).

أيضاً يمكنك مراجعة المقالة التالية: Table Relations

3) هذا هو الشكل القياسي للتعليمة:

ALTER TABLE [dbo].[TableName] ADD CONSTRAINT UNQ__TableName__ColumnName UNIQUE ([ColumnName])

4) لايمكن تحويل صيغة ملف sql إلى mdf : sql هو ملف يحتوي على كود TSQL يمكن تنفيذه ضمن محرك قاعدة البيانات وأشهرها باستخدام SQL Server Management Studio حيث يمكنك فتح الملف من قائمة: File-->Open-->File و من ثم اختيار قاعدة البيانات التي تريد تنفيذ الكود عليها و من ثم الضغط على علامة التعجب الحمراء Execute

ملف mdf هو ملف البيانات و هو الملف المستخدم من قبل SQL Server لتخزين جميع تفاصيل قاعدة البيانات الخاصة بك.

لذلك يوجد الفرق بين نوعي الملفين.

أتمنى أن تكون الاجابات واضحة.

#3
Adel Khayata كتب:

السلام عليكم.

الاجابات:

1)

varchar [ ( n | max ) ]

يتم حجز بايتات بحسب n و إذا تم استخدام max يتم حجز : 2^31-1

nvarchar [ ( n | max ) ]

يتم حجز بايتات بحسب n * 2 و إذا تم استخدام max يتم حجز : 2^31-1

int

4 بايتات

bigint

8 بايتات

لمزيد من التفاصيل يمكنك مراجعة الرابط: Data Types

2) الربط بين جدولين: هو إيجاد علاقة منطقية بينهم بحيث يختزل كمية البيانات المدخلة و يجعل عملية التعديل سهلة و يجعل قاعدة البيانات أسهل للفهم و التعامل ( مثل العلافة بين جدولي العملاء و الطلبيات فلا داعي لتكرار معلومات العميل لكل طلبية إذ يكفي وضع رقم العميل في الطلبية حتى يتم الربط مع جدول العملاء الأساسي و جلب كافة المعلومات المتعلقة به ) و ليس من الضروري أن الربط بين الجدولين يسرع عملية البحث و لكن يمكن إضافة مايسمى Index للأعمدة المستخدمة في عملية البحث مما يسرعها.

لا يوجد ضرورة للربط بين جدولين في حالة لا يوجد ربط منطقي بينهم ( مثلاً الربط بين جدول العملاء و جدول آخر خاص بشؤون الموظفين ).

أيضاً يمكنك مراجعة المقالة التالية: Table Relations

3) هذا هو الشكل القياسي للتعليمة:

ALTER TABLE [dbo].[TableName] ADD CONSTRAINT UNQ__TableName__ColumnName UNIQUE ([ColumnName])

4) لايمكن تحويل صيغة ملف sql إلى mdf : sql هو ملف يحتوي على كود TSQL يمكن تنفيذه ضمن محرك قاعدة البيانات وأشهرها باستخدام SQL Server Management Studio حيث يمكنك فتح الملف من قائمة: File-->Open-->File و من ثم اختيار قاعدة البيانات التي تريد تنفيذ الكود عليها و من ثم الضغط على علامة التعجب الحمراء Execute

ملف mdf هو ملف البيانات و هو الملف المستخدم من قبل SQL Server لتخزين جميع تفاصيل قاعدة البيانات الخاصة بك.

لذلك يوجد الفرق بين نوعي الملفين.

أتمنى أن تكون الاجابات واضحة.

ماشاء الله تبارك الله انت مبدع "عيني عليك بارده" زي ما تقولون

ياريت تساعدنا في حل المشاكل

و الشرح الوافي

تم تعديل هذه المشاركة بواسطة miis في 25 يناير 2012 في 10:35

1327306258921.gif
#4

شكرا لك

عندي سؤال جديد:

ما هو العدد الأعظمي للسطور في sqlserver ؟؟؟

اقتباس
لايمكن تحويل صيغة ملف sql إلى mdf : sql هو ملف يحتوي على كود TSQL يمكن تنفيذه ضمن محرك قاعدة البيانات وأشهرها باستخدام SQL Server Management Studio حيث يمكنك فتح الملف من قائمة: File-->Open-->File و من ثم اختيار قاعدة البيانات التي تريد تنفيذ الكود عليها و من ثم الضغط على علامة التعجب الحمراء Execute

لم تنجح معي هذه الحركة

#5

الخطأ:

Msg 156, Level 15, State 1, Line 1

Incorrect syntax near the keyword 'IF'.

Msg 102, Level 15, State 1, Line 1

Incorrect syntax near 'verbs'.

verbs

هي قاعدة البيانات

أنا عملت قاعدة بيانات جديدة فارغة ونفذت عليها وما مشي الحال وظهرت هذه الرسالة

أرجو المساعدة

وشكرا

وأيضا

"ليس من الضروري أن الربط بين الجدولين يسرع عملية البحث و لكن يمكن إضافة مايسمى Index للأعمدة المستخدمة في عملية البحث مما يسرعها."

ممكن التوضيح أكير

كيف نفعل ذلك

ومتى يهمنا فعل ذلك (يعني متى يكون هناك بطء في البحث لأنه أنا ما شاء الله شفت select سريعة حتى في جدول مكون من نصف مليون سطر يعني فس ثانية واحدة يجلب نتائج البحث)

#6
اقتباس
تم الارسال اليوم, 03:34 PM

الخطأ:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'IF'.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'verbs'.

verbs

هي قاعدة البيانات

أنا عملت قاعدة بيانات جديدة فارغة ونفذت عليها وما مشي الحال وظهرت هذه الرسالة

أرجو المساعدة

وشكرا

اخي الكريم ممكن تضع لنا الكود لكي نحدد لك المشكلة.فهو خطأ نحوي (اي لم تتبع قواعد كتابة الكود الخاصة بلغة T_SQL

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#7

كما قال الأخ كلكامش: المشكلة في السكريبت نفسه و ليس في طريقة التنفيذ.

بالنسبة لل Index فأولاً : هذا هو شكل تعليمة إنشاء Index القياسية:

CREATE INDEX index_name
ON table_name (column_name)

index_name: هو اسم ال Index

table_name: اسم الجدول

column_name: اسم العمود الذي سيطبق عليه ال Index

ال Index هم عملية ترتيب بيانات الجدول بناءاً على قيم عمود/أعمدة يتم تحديدها.

فمثلاً: عند إنشاء جدول لأسماء الموظفين, يكون لدينا الحقول التالي:

رقم الموظف, اسم الموظف الأول , كنية الموظف

بالعادة رقم الموظف يكون المفتاح الرئيسي للجدول ( و أي مفتاح رئيسي يكون Index بالضرورة ) مما يجعل جلب معلومات الموظفين باستخدام رقم الموظف سريعاً.

الآن لو أردت جلب معلومات الموظفين باستخدام عمود كنية الموظف فهذا قد يستغرق وقتاً إذا كان عدد السجلات كبيراً, و لذلك يتم اللجوء إلى انشاء Index على عمود كنية الموظف مما يؤدي إلى ترتيب البيانات بطريقة تجعل جلب معلومات الموظفين عن طريق عمود الكنية سريعاً.

طبعاً أي عملية إنشاء ل Index تحتاج إلى استخدام مساحة أكبر من البيانات لتخزين معلومات السجلات مرة أخرى لضمان سرعة البحث.

مواضيع مشابهة