mysql笔记

char(8),是定长,使用场景,存储身份证号,一定是18位
varchar(18),是可变长度,最多18位
decimal(5,3),总共5位数,小数占3位

primary key = unique + not null

一对一

create table husband(
id int auto_increment primary key,
name varchar(100)
);

create table wife(
id int auto_increment primary key,
name varchar(100),
hid int unique,
foreign key(hid) references husband(id)
)

一对一的关系通过建立外键表,加上unique形成
一对多的关系只通过建立外键表即可
多对多的关系通过建立中间表

数据库的设计规范:

第一范式:有主键来区分每一行
第二范式:每一行的属性应跟主键有关系,依赖主键
第三范式:在一个关系中不重复出现已在其他关系中出现的属性(非主键信息)

内连接两种写法:

内连接连不上不连!

两个表之间加上inner join,

select e.empno,e.ename,d.dname,e.deptno from EMP e,DEPT d
where e.deptno = d.deptno;

或者两个表之间加上 逗号

select e.empno,e.ename,d.ename,e.deptno
from EMP e inner join DEPT d
on e.deptno = d.deptno;


外连接:

select * from EMP e right outer join DEPT d
on e.deptno = d.deptno;
select * from EMP e left outer join DEPT d
on e.deptno = d.deptno;
外连接连不上将外键表对应行置为空

视图:

create view stuscore(stuscore为任意名字) as
select 语句
作用:
1.提高了重用性,就像一个函数
2.对数据库重构,却不影响程序的运行
3.提高了安全性能,可以对不同的用户
4.让数据更加清晰

事务:

所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位,事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性

你可能感兴趣的:(mysql笔记)