mysql索引和数据完整性答案_第5章MySQL索引与完整性约束.ppt
第5章MySQL索引與完整性約束
5.3.4 CHECK完整性約束 CHECK完整性約束在創(chuàng)建表的時候定義。可以定義為列完整性約束,也可定義為表完整性約束。 語法格式: CHECK(expr) 【例5.13】創(chuàng)建表student,只包括學(xué)號和性別兩列,性別只能是男或女。 create table student ( 學(xué)號 char(6) not null, 性別 char(1) not null check(性別 in ('男', '女')) ); 5.3.4 CHECK完整性約束 【例5.14】創(chuàng)建表student1,只包括學(xué)號和出生日期兩列,出生日期必須大于1990年1月1日。 create table student1 ( 學(xué)號 char(6) not null, 出生日期 date not null check(出生日期>'1990-01-01') ); 5.3.4 CHECK完整性約束 前面的CHECK完整性約束中使用的表達式都很簡單,MySQL還允許使用更為復(fù)雜的表達式。例如,可以在條件中加入子查詢,下面舉個例子。 【例5.15】創(chuàng)建表student2,只包括學(xué)號和性別兩列,并且確認(rèn)性別列中的所有值都來源于student表的性別列中。 create table student2 ( 學(xué)號 char(6) not null, 性別 char(1) not null check( 性別 in ( select 性別 from student) ) ); 5.3.4 CHECK完整性約束 如果指定的完整性約束中,要相互比較一個表的兩個或多個列,那么該列完整性約束必須定義表完整性約束。 【例5.16】創(chuàng)建表student3,有學(xué)號、最好成績和平均成績3列,要求最好成績必須大于平均成績。 create table student3 ( 學(xué)號 char(6) not null, 最好成績 int(1) not null, 平均成績 int(1) not null, check(最好成績>平均成績) ); 5.3.5 命名完整性約束 CONSTRAINT關(guān)鍵字用來指定完整性約束的名字,語法格式為: CONSTRAINT [symbol] symbol為指定的名字,這個名字在完整性約束的前面被定義,在數(shù)據(jù)庫里這個名字必須是唯一的。如果它沒有被給出,則MySQL自動創(chuàng)建這個名字。只能給表完整性約束指定名字,而無法給列完整性約束指定名字。 【例5.17】創(chuàng)建與【例5.8】中相同的xs1表,并為主鍵命名。 create table xs1 ( 學(xué)號 varchar(6) null, 姓名 varchar(8) not null, 出生日期 datetime null, constraint primary_key_xs1 primary key(姓名) ); 5.3.6 刪除完整性約束 如果使用一條DROP TABLE語句刪除一個表,所有的完整性約束就都自動被刪除了。被參照表的所有外鍵也都被刪除了,使用ALTER TABLE語句,完整性可以獨立地被刪除,而不必刪除表本身。刪除完整性約束的語法和刪除索引的語法一樣。 【例5.18】刪除創(chuàng)建的表xs1的主鍵。 alter table xs1 drop primary key; 刪除前后的效果如下: 第5章 MySQL索引與完整性約束 MySQL索引 5 . 1 5 . 2 MySQL索引創(chuàng)建 MySQL數(shù)據(jù)完整性約束 5 . 3 5.1 MySQL索引 5.1.1 索引及作用 1. 索引 索引是根據(jù)表中一列或若干列按照一定順序建立的列值與記錄行之間的對應(yīng)關(guān)系表。在列上創(chuàng)建了索引之后,查找數(shù)據(jù)時可以直接根據(jù)該列上的索引找到對應(yīng)行的位置,從而快速地找到數(shù)據(jù)。 例如,如果用戶創(chuàng)建了xs表中學(xué)號列的索引,MySQL將在索引中排序?qū)W號列,對于索引中的每一項,MySQL在內(nèi)部為它保存一個數(shù)據(jù)文件中實際記錄所在位置的“指針”。因此,如果要查找學(xué)號為“081241”的學(xué)生信息,MySQL能在學(xué)號列的索引中找到“081241”的值,然后直接轉(zhuǎn)到數(shù)據(jù)文件中相應(yīng)的行,準(zhǔn)確地返回該行的數(shù)據(jù)。 5.1.1 索引及作用 2.索引作用 在數(shù)據(jù)庫系統(tǒng)中建立索引主要有以下作用: 快速讀取數(shù)據(jù); 保證數(shù)據(jù)記錄的唯一性; 實現(xiàn)表與表之間的參照完整性; 在使用GROUP BY、ORDER BY子句進行數(shù)據(jù)檢索時,利用索引可減少排序和分組的時間。 5.1.1
總結(jié)
以上是生活随笔為你收集整理的mysql索引和数据完整性答案_第5章MySQL索引与完整性约束.ppt的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么时装linux可用空间变大,[合集]
- 下一篇: qt中使窗口的大小随窗口的内容大小进行调