MySQL进阶学习笔记 一(包括各种函数的使用—单行、字符、聚合、加密)

 

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");

如果错误,请在评论区指出,谢谢啦!

 

 

你可能感兴趣的:(MySQL)