oracle v¥bh,【oracle笔记2】约束
約束
*約束是添加在列上的,用來約束列的。
1. 主鍵約束(唯一標識)
***非空***
***唯一***
***被引用***(外鍵時引用主鍵)
*當表的某一列被指定為主鍵后,該列就不能為空,不能有重復的出現(xiàn)。
*創(chuàng)建表時指定主鍵的兩種方式:
>
create table stu(
sid char(6) primary key,
sname varchar(20),
age ? ? ? int,
gender ? ? ? ? varchar(10)
);
指定sid列為主鍵列,即為sid列添加主鍵約束。
>
create table stu(
sid char(6),
sname varchar(20),
age ? ? ?int,
gender varchar(10),
primary key (sid)
);
指定sid列為主鍵列,即為sid列添加主鍵約束。
*修改表時指定主鍵:alter table stu add constraint 主鍵名 primary key(sid);
*這里回憶一下學過的修改操作。前綴都是alter table 表名 :
add --->添加列
modify 列名 新列類型-->修改列類型
rename column 舊列名 to 新列名-->修改列名
drop column 列名--->刪除列
rename to 新表名--->修改表名
*刪除主鍵:alter table stu drop primary key;刪除主鍵的時候,不用指定列名 ,因為主鍵的唯一性。
2.主鍵自增長
*因為主鍵的特性是:必須唯一、不能為空。所以我們通常會指定主鍵類為整數(shù)型,然后設置其自增長,這樣可以保證在插入數(shù)據(jù)時主鍵列的唯一和非空特性。
oracle并沒有mysql那樣可以設置自增主鍵,需要自己創(chuàng)建序列才能實現(xiàn)自增。
這是從網上看來的一個例子:
/*創(chuàng)建自增序列*/
CREATE SEQUENCE CMB_CHINA_CITYS_ID
MINVALUE 1 --最小值
NOMAXVALUE --不設置最大值
START WITH 1 --從1開始計數(shù)
INCREMENT BY 1 --每次加1
NOCYCLE --一直累加,不循環(huán)
NOCACHE; --不建緩沖區(qū)
說明:CMB_CHINA_CITYS_ID:列名
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下是mysql設置主鍵自增的機制
*創(chuàng)建表時指定主鍵自增長:
create table stu(
sid? int primary key auto_increment,
sname varchar(20),
age int,
gender ? varchar(10)
);
*修改表時設置主鍵自增長:alter table stu change sid sid int auto_increment;
*修改表時刪除主鍵自增長:alter table stu change sid sid int;
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.非空約束
*因為某些列不能設置Null值,所以可以對列添加非空約束。
*例如:
create table stu(
sid? int primary key,
sname ? varchar(20)not null,
age int,
gender ? varchar(10)
);對sname設置了非空約束。
4.唯一約束
*數(shù)據(jù)庫某些列不能設置重復的值,所以可以對列添加唯一約束。
*例如:
create table stu(
sid? int primary key,
sname ? varchar(20)not null unique,
age int,
gender ? varchar(10)
);對sname設置了非空約束。
https://blog.csdn.net/jssg_tzw/article/details/40981393這篇文章對唯一性約束講的很清楚。
補充:(Duplicate重復,數(shù)據(jù)庫報錯時查的單詞,原因是主鍵的唯一性,不可添加重復的數(shù)據(jù)。)
總結
以上是生活随笔為你收集整理的oracle v¥bh,【oracle笔记2】约束的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络基础大学教材,《计算机网络技术
- 下一篇: from rfc 2068 hypert