1、表一对一时,在任意一个表建立外键,去关联另外一个表的主键
(在student表建立外键b_id==》右键关系==》第三步点击三个点,student表里的外键b_id就是book表里的主键b_id)
2、表一对多时,在任意多的表建立外键,去关联另外一个表的主键
3、字段类型
char/varchar : 非unicode编码 英文占一个字节,中文占两个字节
- varchar : 可变长度
- char : 数据长度不可变
nvarchar/nchar : unicode编码,中文英文都占一个字节
decimal(n1,n2) : n1个数字,n2个小数位,一般用于设置带有小数位的数据
bit : 只能存储 0 和 1,一般用于一个数据只能有两个值的时候
4、约束
实现数据的有效性检查
主键 :
- 非空约束(Not Null)
- 唯一约束 : 右击列名-索引/值-常规类型-唯一键
- 默认值约束 : 可设置为空,而需要列添加默认
- 操作 : 常规-默认值或绑定-设置大小
- 检查约束 : 对设置的值进行要求,若满足要求,则数据可以加入表中
- 操作 : 右击列名-CHECK约束-写约束表达式
- 外键约束 : 对关系进行有效性检查,当然有关系时,也可以不做外键。
外键添加操作
- 新建一个外键表
- 在主键表中添加外键表的主键名(使得两个表之间发生关系)
- 添加外键 : 右击外键名-关系-设置外键表与主键表-设置相关的列
当出现表中的列与现有主键或UNIQUE约束不匹配的错误时,要注意可能是没有设置外键的引用唯一约束
5、DDL : 数据定义语言:各种数据库对象的创建、create | alter | drop
--为emp表增加一个新的字段”昵称”为nickname,类型为varchar(20)
ALTER TABLE emp ADD nickname varchar(20)
--1、将emp表的字段username删除
ALTER TABLE emp DROP username;
--2、如果tb_user表存在,则删除tb_user表
DROP TABLE IF EXISTS tb_user;
--3、将emp表的nickname字段修改为username,类型为varchar(30)
ALTER TABLE emp CHANGE nickname username varchar(30)
6、DML : 数据管理语言:对表数据的增删改查,insert | update | delete
添加数据
--2). 给全部字段添加数据
INSERT INTO 表名 VALUES (值1, 值2, ...);
--3). 批量添加数据
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;
修改数据
--1、修改id为1的数据,将name修改为itheima
update emp set name = 'itheima' where id =1;
--2、 修改id为1的数据, 将name修改为小昭, gender修改为 女
update employee set name = '小昭' , gender = '女' where id = 1;
删除数据
DELETE FROM 表名 [ WHERE 条件 ] ;
--1、删除gender为女的员工
delete from employee where gender = '女';
--2、删除所有员工(删除emp表)
delete from employee;
• DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数
据。
7、DQL数据查询语言,用来查询数据库中表的记录。 SELECT
SELECT字段列表
FROM表名列表
WHERE条件列表
GROUP BY 分组字段列表
HAVING分组后条件列表
ORDER BY 排序字段列表
LIMIT分页参数
基本查询(不带任何条件)
--1、查询员工表emp中所有员工信息
select * from emp
条件查询( WHERE )
--1、查询员工表emp中id为001的员工信息
select * from emp where id = 001;
--2、查询员工表emp中没有身份证的员工信息
select * from emp where idcade is null;
--2、查询员工表emp中有身份证的员工信息
select * from emp where idcade is not null;
聚合函数( count 、 max 、 min 、 avg 、 sum )null值不参与聚合函数运算
count、max、min、avg、sum
--1、查询emp表中年龄最大的员工的年龄
select max(age) from emp
--2、查询emp表中年龄最小的员工信息
select * from emp where age =(select min(age) from emp)
--3、查询emp表员工的平均工资
select avg(mgr) from emp
----4、查询emp表员工的总记录数
select count(*) from emp
分组查询( group by )
排序查询( order by )