SQL语句建表、设置主键、外键、check、default、unique约束· 什么是数据库?
存放数据的仓库。
· 数据库和数据结构有什么区别?
数据结构要解决在内存中操作数据的问题,数据库要解决在硬盘中操作数据的问题。数据结构研究⼀些抽象数据模型(ADT)和以及定义在该模型上的⼀些操作,数据库是由表、关系、操作组成。
· 什么是主键?
主键⽤来标识记录的唯⼀性。
· 什么是外键?
外键⽤来标识表与表之间的联系。
· 什么是check约束?
check约束限制了输⼊值的范围。
· 什么是default约束?
给某个属性⼀个默认值。
· 什么是unique约束?
限制某个属性的唯⼀性。
· unique约束与主键有什么区别?
主键不可为null。
关于以上知识的⼀些sql语句:
--部门表
create table dept
(
dept_id int primary key,
dept_name nvarchar(100) not null,
dept_address nvarchar(100)
)
--员⼯表
create table emp
(--不能写成{
emp_id int constraint pk_emp_id_hahaha primary key,--设置主键并命名
emp_name nvarchar(20) not null,--名字不能为空
emp_sex nchar(1),
--↓设置外键,该外键来⾃于dept表(主键表)
dept_id int constraint fk_dept_id_heihei foreign key references dept(dept_id),
)
create table student
(
stu_id int primary key,
stu_sal int check (stu_sal >=1000and stu_sal <=8000),--check约束
stu_sex nchar(1) default ('男') --()可以省略,在数据库中字符串必须⽤''括起来
)
--向student表中插⼊数据
insert into student(stu_id,stu_sal) values (1,1000);--可以插⼊
insert into student(stu_id,stu_sal) values (2,10000);--插⼊失败,与check约束冲突
insert into student values (2,6000,'⼥');--可以插⼊
insert into student values (3,6000);--错误,列的个数不匹配。
-
-再重建⼀个表
create table student2
(
stu_id int primary key,
stu_sal int check (stu_sal >=1000and stu_sal <=8000),--check约束
stu_sex nchar(1) default ('男'), --()可以省略,在数据库中字符串必须⽤''括起来
stu_name nvarchar(200) unique--qunique约束
)
insert into student2 values (1,6000,'男','张三');--ok
insert into student2 values (2,6000,'男','张三');--error违反了唯⼀约束
创建唯一约束sql语句insert into student2 values (3,6000,'男','李四');--ok
insert into student2 values (null,6000,'男','王五');--error主键不能为null,出错的信息是“不能将值 NULL 插⼊列 'stu_id'”insert into student2 values (4,6000,'男',null);--ok 说明唯⼀键允许为空
insert into student2 values (5,6000,'男',null);--error SqlServer2005只允许⼀个unique列为空
--再重建⼀个表
create table student3
(
stu_id int primary key,
stu_sal int check (stu_sal >=1000and stu_sal <=8000),--check约束
stu_sex nchar(1) default ('男'), --()可以省略,在数据库中字符串必须⽤''括起来
stu_name nvarchar(200) unique not null--qunique约束和not null约束可以组合使⽤
)
insert into student3 values (3,6000,'男',null);--error 证明了unique可以与not null组合使⽤
注:本⽂参考了,也加⼊了⾃⼰对SQL的⼀些理解,有写的不对的地⽅希望⼤家能够指出来。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。