mysql中的暗黑語法 SQL語法(2)

2021-10-17 20:31:35 字數 2075 閱讀 3903

一、約束:

概念:對錶中的資料進行限定,保證資料的正確性、有效性和完整性。

分類:1、主鍵約束:primary key

2、非空約束:not null

3、唯一約束:unique

4、外來鍵約束:foreign key

---非空約束:not null,值不能為null

1. 建立表時新增約束

create tablestu(

id int, name varchar(20) not null -- name為非空 );

2. 建立表完後,新增非空約束

alter table stu modify name varchar(20) not null;

3. 刪除name的非空約束

alter table stu modify name varchar(20);

---唯一約束:unique,值不能重複

1. 建立表時,新增唯一約束

create table stu(

id int,

phone_number varchar(20) unique -- 新增了唯一約束

* 注意:mysql中,唯一約束限定的列的值可以有多個null

2. 刪除唯一約束

alter table stu drop index phone_number;

3. 在建立表後,新增唯一約束

alter table stu modify phone_number varchar(20) unique;

--- 主鍵約束:primary key。

1. 注意:

1. 含義:非空且唯一

2. 一張表只能有乙個字段為主鍵

3. 主鍵就是表中記錄的唯一標識

2. 在建立表時,新增主鍵約束

create table stu(

id int primary key,-- 給id新增主鍵約束

name varchar(20)

3. 刪除主鍵

alter table stu modify id int ; -- 錯誤

alter table stu drop primary key;--正確方式

4. 建立完錶後,新增主鍵

alter table stu modify id int primary key;

5. 自動增長:

1. 概念:如果某一列是數值型別的,使用 auto_increment 可以來完成值得自動增長

2. 在建立表時,新增主鍵約束,並且完成主鍵自增長

create table stu(

id int primary key auto_increment,-- 給id新增主鍵約束

name varchar(20)

3. 刪除自動增長

alter table stu modify id int;

4. 新增自動增長

alter table stu modify id int auto_increment;

--- 外來鍵約束:foreign key(讓表於表產生關係,從而保證資料的正確性。)

1. 在建立表時,可以新增外來鍵

語法:create table 表名(

外來鍵列constraint 外來鍵名稱 foreign key (外來鍵列名稱) references 主表名稱(主表列名稱)

2. 刪除外來鍵

alter table 表名 drop foreign key 外來鍵名稱;

3. 建立表之後,新增外來鍵

alter table 表名 add constraint 外來鍵名稱 foreign key (外來鍵欄位名稱) references 主表名稱(主表列名稱);

4. 級聯操作

1. 新增級聯操作

語法:alter table 表名 add constraint 外來鍵名稱

foreign key (外來鍵欄位名稱) references 主表名稱(主表列名稱) on update cascade on delete cascade ;

2. 分類:

1. 級聯更新:on update cascade

2. 級聯刪除:on delete cascade

mysql中的暗黑語法 MySQL的一些語法總結

初學mysql,今天遇到了乙個問題,然後彙總了一下mysql的一些語法 1.date和datetime型別是不同的 date只記錄日期 包括年月日 datetime記錄日期和時間 包括年月日時分秒 注 這一點和sql server 不同 2.now 函式和sysdate 函式也是不同的 now 函式...

怎麼查詢mysql的語法 MySQL查詢語法

select distinct productname from custom where product price between 5 and 10 order by product price desc product name limit 3 offset 1 limit 限定從1行開始選出...

mysql和sqlserver的sql語句區別

mysql 檢視系統內所有資料庫 show databases 查詢資料庫內所有表 show tables 顯示表結構 desc 表名 sqlserver 檢視系統內所有資料庫 select name,database id,create date from sys.databases 查詢資料庫內...