1、数据完整性:
(1)数据的准确性和可靠性。
(2)完整性约束;
a.实体完整性: 实体完整性约束保证数据记录之间是准确的(能够唯一标识- 一个实体)。
实体:记录
主键约束:唯一的,不为空 primary key
--表创建之后添加主键约束
--字段选择? 唯一的、不要选择业务字段
--主键添加:一张表中只能有一一个主键,但是可以有联合主键(多个字段整体作为主键)
alter table student add CONSTRAINT PK_SID primary key(sid);
唯一约束:不能重复,可以添加多个,可以为空
alter table userinfo add CONSTRAINT UQ CARD unique(card);
主键自增:
create table student(
sid int primary key auto_increment,
sname varchar()
)
删除主键约束:
alter table student drop primary key;
b.域完整性
域:字段
类型约束:varchar、char 等
非空约束:不能为空, not null
默认值:default
c.引用完整性:一张表中通用列的取值必须参考另外一张表主键字段
--外键约束添加(参考另一张表中主键)
--外键关联字段名称可以不样但是类型必须致。
alter table student add CONSTRAINT FK_ CID foreign key(cid)
REFERENCES classroom(cid);
d.自定义完整性
chek约束:在MySQL中不能使用
Alter table student add constriaint check(age between 1 and 150);
2、函数
(1)单行函数
数学函数:提供快速计算的函数
select PI() *2 *2;
select CEIL(-12.3); --向上取整
select FLOOK(12.3); --向下取整
select ROUND(2.5,1); --四舍五入
select MOD(5,2): --取模
select RAND(); --随机数
select POW(2,3); --幂运算
字符函数
--获取长度
select LENGTH("hello a world");
select length(ename) from emp;
select LOWER('THIS');
select UPPER('this');
日期函数
select NOW(); --获取当前时间
select SYSDATE(); --获取系统时间
(2)聚合函数
-- min() max() avg() count() sum()
select ename,max(sal) from emp; --语法错误
select max(sal) from emp;
select count(*) from emp; --记录数
select count(comn) from emp; --记录非空总数
(3)分组函数
select avg(sal) from emp group by deptno;
--查询平均工资大于2000的部门的编号和平均工资;
select deptno,avg(sal) from emp group by deptno having sal avg(sal) >2000;
(4)加密函数
--java:Base64.encode() Base64.decode() 可逆加密
--MD5 不可逆
select password("123");
如果错误,请在评论区指出,谢谢啦!