1.主键约束
定义为主键(primary key)的列不允许有重复值出现,而且不能为空
创建clerk表,
create table clerk
(
cleid int primary key, --主键
cleName nvarchar(50), --名字
age int --年龄
)
向clerk表中添加 cleid为:1000的数据项
insert into clerk values(1000,'古巨基',48);
在添加cleid仍为:1000就会出错,如
insert into clerk values(1000,'赵薇',49);
2.插入部分列表
如果有些字段的信息未知,则可以省略,但是省略字段不能是主键哦
格式为:
insert into 表名 (字段列表)values(值)
这里“字段列表”和“值”要一 一对应
如不知道年龄(age)值时,
insert into clerk (cleid,cleName)values(1001,'林心如');
3.更新多个字段
更新上表cleid为1001的年龄为18,姓名为“赵薇”
update clerk set age=18,cleName='赵薇' where cleid=1001
4.查询带NULL的数据
对下表的age=NULL的数据的姓名修改为“陆如萍”
update clerk set cleName='陆如萍' where age is NULL
注意,判断NULL时不是用“=NULL”,而是用“is NULL”
5.设置外键
假设要设计两张表:dept部门表和emp员工表。部门表里主键设置为deptno, 员工表主键为empno,但是员工都有各自的归属部门,即员工表里存在部门表信息,且为了唯一标识部门信息,要调用deptno字段存储,这种为了和其他表关联而将对方的主键设置为自己表的列属性的行为称为设置外键(自己的理解)
--创建dept部门表
create table dept
(
deptno int primary key, --部门ID
dname nvarchar(30), --部门名称
loc nvarchar(30) --部门位置
)
--创建emp员工表
create table emp
(
empno int primary key, --员工ID
empname nvarchar(30), --员工姓名
job nvarchar(30), --员工职位
mar int, --直系领导
hiredata datetime, --工作日期
salary numeric(10,2), --薪水
comm numeric(10,2), --奖金
deptno int foreign key references dept(deptno) --deptno在dept表中已作为主键,为了让部门表和员工表关联,则设deptno为外键
)
--插入数据
insert into dept values(1000,'无线产品部','三楼');
insert into dept values(1003,'策划部','四楼');
--插入数据
insert into emp values(798,'李子维','画家',800,'2008-11-1',100000,100,1003);
insert into emp values(799,'莫俊杰','诗人',800,'2003-11-1',100000,100,1000);
insert into emp values(800,'黄雨暄','策划',800,'2003-11-1',100000,100,1003);
--显示数据
select * from dept
--显示数据
select * from emp