English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ملخص لتحديد جدول البيانات في MySQL، والأساليب الصفحة

هذه المقالة تتحدث عن ملاحظات تعلم MySQL: تحديد البيانات في جدول القيود، طريقة التصفية. أشارككم للمراجعة، كما يلي:

1. primary key المفتاح الرئيسي

ميزة: المفتاح الرئيسي هو قيود يستخدم لتحديد هوية سجل واحد، لا يمكن أن يكون هناك أكثر من مفتاح رئيسي في جدول واحد، ولا يمكن أن يكون فارغًا ولا يمكن أن يكون مكررًا

create table user1(id int primary key,name varchar(32));
mysql> insert into user1 values(1,'hb');
Query OK, 1 row affected (0.10 sec)
mysql> insert into user1 values(1,'hb');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into user1 (name) values('hb');
ERROR 1364 (HY000): الحقل 'id' ليس له قيمة افتراضية

2. auto_increament التكامل التلقائي

mysql> create table user2(id int primary key auto_increment,name varchar(34));
mysql> insert into user2 (name ) values ("name1");
Query OK, 1 row affected (0.09 sec)
mysql> insert into user2 (name ) values ("name2");
Query OK, 1 row affected (0.05 sec)
mysql> insert into user2 (name ) values ("name3");
Query OK, 1 row affected (0.13 sec)
mysql> select * from user2;
+----+-------+
| id | name |
+----+-------+
| 1 | name1 |
| 2 | name2 |
| 3 | name3 |
+----+-------+

3. unique إلتزام الحصرية

ميزة: لا يمكن تكرار قيمة عمود معين في الجدول، يمكن إضافة NULL تكرارًا

create table user3(id int primary key auto_increment,name varchar(34) unique);
mysql> create table user3(id int primary key auto_increment,name varchar(34) unique);
Query OK, 0 rows affected (0.39 sec)
mysql> insert into user3 (name ) values ("name3");
Query OK, 1 row affected (0.11 sec)
mysql> insert into user3 (name ) values ("name3");
ERROR 1062 (23000): Duplicate entry 'name3' for key 'name'

يسمح بإدراج NULL، ويُمكن إدراج عدة قيم NULL

mysql> insert into user3 (name ) values (null);
Query OK, 1 row affected (0.12 sec)
mysql> insert into user3 (name ) values (null);
Query OK, 1 row affected (0.12 sec)
mysql> select * from user3;
+----+-------+
| id | name |
+----+-------+
| 3 | NULL |
| 4 | NULL |
| 1 | name3 |
+----+-------+

4. not null

بشكل افتراضي، يمكن أن يكون عمود جدول MySQL فارغًا، وإذا لم يكن يُسمح بإدراج القيمة فارغة في عمود معين، يمكن استخدام 'not null' لتوضيح ذلك

create table user4 (id int primary key auto_increment,name varchar(32) not null);
mysql> insert into user4 (name) values(null);
ERROR 1048 (23000): Column 'name' cannot be null

5. المفتاح الأجنبي (foreign key)

من الناحية النظرية، قم أولاً بإنشاء الجدول الرئيسي، ثم إنشاء الجدول الفرعي

جدول الموظفين:

create table dept(id int primary key , name varchar(32));

جدول الأقسام:

create table emp(
id int primary key ,
name varchar(32),
deptid int,
constraint myforeignkey foreign key(deptid) references dept(id)
);
mysql> select * from dept;
+----+-------+
| id | name |
+----+-------+
| 1 | name1 |
+----+-------+
1 row in set (0.00 sec)
mysql> insert into emp values(1,'aaa',1);
Query OK, 1 row affected (0.22 sec)
mysql> insert into emp values(1,'aaa',2);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into emp values(1,'aaa',null);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into emp values(2,'aaa',null);
Query OK, 1 row affected (0.13 sec)
mysql> select * from emp;
+----+------+--------+
| id | name | deptid |
+----+------+--------+
| 1 | aaa |   1 |
| 2 | aaa |  NULL |
+----+------+--------+
2 ردیف در set (0.00 ثانیه)

النتيجة الإجمالية:

① المفتاح الأجنبي يمكن أن يشير فقط إلى عمود الرئيسي أو العمود الفريد في الجدول الرئيسي
② يجب أن تكون نوع بيانات الزعيم الخارجي متطابقًا مع نوع بيانات العمود الذي يشير إليه
③ يجب أن تكون قيمة الزعيم الخارجي NULL أو تشير إلى قيمة موجودة في العمود
④ يمكن للزعيم الخارجي أن يشير إلى عمود المفتاح الرئيسي أو unique في نفس الجدول

mysql لا يدعم check

create table user99(age int check(age>13));
mysql> create table user99(age int check(age>13));
Query OK, 0 rows affected (0.19 sec)
mysql> insert into user99 values(99);
Query OK, 1 row affected (0.04 sec)
mysql> select * from user99;
+------+
| age |
+------+
|  99 |
+------+

صفحة mysql

القواعد الأساسية:

select * from table indicates where condition limit from which row to take, how many rows to take
mysql يبدأ من الصف 0 في استخراج البيانات

mysql> select * from student;
+------+--------+---------+---------+------+
| id  | name  | chinese | english | math |
+------+--------+---------+---------+------+
|  1 | زانغ مياوكسiao   |   89 |   78 |  90 |
|  2 | لي جين    |   67 |   98 |  56 |
|  3 | وван وو    |   87 |   78 |  77 |
|  4 | لي ي   |   88 |   98 |  90 |
|  5 | لی لاچای |   82 |   84 |  67 |
|  6 | زانج جينbao   |   55 |   85 |  45 |
|  7 | چانگ میائو |   75 |   65 |  30 |
+------+--------+---------+---------+------+
7 rows in set (0.05 sec)
mysql> select * from student limit 2,2;
+------+------+---------+---------+------+
| id  | name | chinese | english | math |
+------+------+---------+---------+------+
|  3 | وван وو   |   87 |   78 |  77 |
|  4 | لي ي  |   88 |   98 |  90 |
+------+------+---------+---------+------+
2 ردیف در set (0.00 ثانیه)

بموجب النتيجة النهائية للغة الصينية، يتم إيجاد الصفوف 3 إلى 5

mysql> select * from student order by chinese desc limit 3,2;
+------+--------+---------+---------+------+
| id  | name  | chinese | english | math |
+------+--------+---------+---------+------+
|  5 | لی لاچای |   82 |   84 |  67 |
|  7 | چانگ میائو |   75 |   65 |  30 |
+------+--------+---------+---------+------+
2 ردیف در set (0.00 ثانیه)

گسترش، صفحه‌بندی: pageNow , pageSize

select * from نام_جدول where شرط [group by … having … order by …]limit از کدام ردیف شروع کن، چند ردیف را بگیر
select * from نام_جدول where شرط [group by … having … order by …]limit (pageNow-1)*pageSize, pageSize

برای خوانندگان علاقه‌مند به اطلاعات بیشتری در مورد MySQL، می‌توانید به موضوعات ویژه این وب‌سایت مراجعه کنید: 'جمع‌بندی نکات عملی برای عملیات شاخص MySQL'، 'گزارش عملی برای نکات عملی برای عملیات روزنه MySQL'، 'جمع‌بندی نکات عملی برای عملیات تراکنش MySQL'، 'گزارش عملی برای نکات عملی برای عملیات مخزن MySQL'، 'جمع‌بندی نکات عملی برای نکات عملی برای عملیات قفل MySQL' و 'جمع‌بندی نکات عملی برای نکات عملی برای توابع معمول MySQL'.

امیدوارم که محتوای این مقاله در مورد مدیریت پایگاه داده MySQL به شما کمک کند.

اظهار: محتوای این مقاله از اینترنت گرفته شده است و مالکیت آن به صاحب‌کار مربوط می‌شود، محتوا به صورت خودجوش توسط کاربران اینترنت ارائه شده و این وب‌سایت مالکیت آن را ندارد، محتوا توسط انسان ویرایش نشده است و هیچ مسئولیتی در مورد آن ندارد. اگر محتوای مربوط به حق تکثیر مشاهده کردید، خوشحال می‌شویم که ایمیل به آدرس notice#oldtoolbag.com (هنگام ارسال ایمیل، لطفاً # را به @ تبدیل کنید) ارسال کنید تا گزارش شود و ارائه مدارک مرتبط، اگر واقعاً به آن اطمینان حاصل کنید، این وب‌سایت بلافاصله محتوای مربوط به حق تکثیر را حذف خواهد کرد.

أنت قد تعجبك