数据库之表设计——(JDBC系列学习笔记二)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月的一天

你的鼓励将是我前进的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值