一、E-R关系模型
1、Entry 实体
2、Relationship 关系
3、一个实体转换为数据库中的一个表
4、关系描述两个实体之间的对应规则:一对一,一对多,多对多
二、数据库的3范式
1NF :列不可拆分
2NF:唯一标识
3NF:引用主键
说明:后一个范式都是在前一个范式的基础上建立的。
三、数据完整性
1、数据字段的类型:int,decimal,char,varchar,text,datetime,bit
eg:decimal(5,2) 一共包含五位数,小数占两位
char和varchar的区别:char字符数固定,不够会自动补齐;varchar字符可变
2、数据字段的约束;primary key,not null,unique,default,foreign key
五、命令脚本操作
eg:
select gender,count(*) from Student group by gender having gender=1;
select * from Student where gender=1 and isDelete=0 order by desc;
执行顺序
六、高级
1、关系
foreign key(stuid) references Student(id),建立外键
外键级联操作
restrict(限制):默认值,抛异常
cascade(级联):如果主表的记录删除,则从表中的相关联的记录都被删掉
set null:将外键设置为空
no action:啥都不干
2、连接查询
3、自关联
create table areas(
aid int primary key,
atitle varchar(20),
pid int,
foreign key(pid) references areas(id)
);
4、视图
视图的本质就是对查询的一个封装,用途就是查询
create view stuscore as select students.*,scores.score from scores inner join students on scores.stuid = students.id
5、事务
1>当一个业务逻辑需要多个SQL完成时,如果其中的某条SQL语句出错,则希望整个操作都退回,例如:转账问题;
2>使用事务可以完成退回功能,保证业务逻辑的正确性
3>四大特性(ASID)原子性,隔离性,一致性,持久性
4>要求:表的类型必须是innodb或者bdb类型
查看表的创建语句:show create table students;
修改表的类型:alter table “表名” engine = innodb;
事务语句:
开启 begin;提交 commit;回滚 rollback;
6、索引
show index from tablename;
create index indexname on mytable(username(length))
drop index [indexname] on table;
网友评论