資料庫約束

2022-06-15 07:54:09 字數 3702 閱讀 8457

資料庫約束

對使用者操作表的資料進行約束

預設值約束

1

create

table

user

(2 uid int

,3 uname varchar(10

),4 address varchar(30) default

'山東省'5

)6drop

table

user;7

select

*from

user;8

insert

into

user(uid,uname) values(1,'張三'

);9insert

into

user

values(2,'

李四','

河南省'

);10

insert

into

user

values(3,'

李四',null);

非空約束

1

create

table

user

(2 uid int

notnull

,3 uname varchar(10

),4 address varchar(30) default

'山東省'5

)6insert

into

user(uid,uname) values(1,'

張三');

唯一約束

1

create

table

user

(2 uid int

unique

,3 uname varchar(10

),4 address varchar(30) default

'山東省'5

)6insert

into

user(uid,uname) values(1,'張三'

);7insert

into

user(uid,uname) values(2,'

張三');

主鍵約束(唯一+非空)

注意:1)被約束的表稱為副表,約束別人的表稱為主表,外來鍵設定在副表上的!!!

2)主表的參考字段通用為主鍵!

3)新增資料:先新增主表,再新增副表

4)修改資料:先修改副表,再修改主表

5)刪除資料:先刪除副表,再刪除主表

乙個表內只能有乙個主鍵。

1

create

table

user

(2 uid int

primary

key,

3 uname varchar(10

),4 address varchar(30) default

'山東省'5

)6select

*from

user;7

insert

into

user(uid,uname) values(1,'

張三');

自增長約束auto_increment

1

create

table

user

(2 uid int

primary

keyauto_increment,

3 uname varchar(10

),4 address varchar(30) default

'山東省'5

)6insert

into

user(uname) values('

張三');

零填充

1

create

table

user

(2 uid int(3) zerofill primary

keyauto_increment,

3 uname varchar(10

),4 address varchar(30) default

'山東省'5

)6insert

into

user(uname) values('

張三');

delete from 清空表不能刪除約束

1

delete

from

user;

truncate table 清空表可以刪除約束

1

truncate

table

user;

外來鍵約束(約束兩種表的資料)

1

create

table

dept(

2 deptid int

primary

keyauto_increment,

3 deptname varchar(10)4

)5insert

into dept(deptname) values('

軟體開發部');

6insert

into dept(deptname) values('

軟體測試部');

7insert

into dept(deptname) values('

軟體運維部');

8select

*from

dept;

9create

table

empt(

10 eid int

primary

keyauto_increment,

11 ename varchar(5

),12 deptid int,13

constraint dept_empt_fk foreign

key(deptid) references

dept(deptid)

14 )

新增副表

1

insert

into empt(ename,deptid) values('

張三',1);2

select

*from empt

修改主表

1

update dept set deptname=

2where deptid=1;

2update empt set deptid=

3where eid=

1;

刪除主表

1

delete

from dept where deptid=

2;

資料庫約束

mysql有兩種常用的引擎型別 myisam和innodb。目前只有innodb引擎型別支援外來鍵約束。innodb中外鍵約束定義的語法如下 constraint symbol foreign key index name index col name,references tbl name ind...

資料庫約束

約束的簡介 資料的完整性是指資料的正確性和一致性,可以通過定義表時定義完整性約束,也可以通過規則,索引,觸發器等。約束分為兩類 行級和表級,處理機制是一樣的。行級約束放在列後,表級約束放在表後,多個列共用的約束放在表後。完整性約束是一種規則,不占用任何資料庫空間。完整性約束存在資料字典中,在執行sq...

資料庫 約束

約束說白了就是限制條件 當你不給某引數賦值時,該引數會採用預設值。例子 建立資料庫 create database tx 選擇使用的資料庫 use tx go goods表 create table goods goodsid nvarchar 50 primary key,主鍵 goodsname...