MySQL学习三:常用函数,三大范式

文章目录

  • 6. MySQL函数
      • 常用函数
  • 7. 三大范式

6. MySQL函数

常用函数

数学函数

SELECT ABS(-8);  /*绝对值*/

SELECT CEILING(9.4);  /*向上取整*/

SELECT FLOOR(9.4);  /*向下取整*/

SELECT RAND();  /*随机数,返回一个0-1之间的随机数*/

SELECT SIGN(0); /*符号函数: 负数返回-1,正数返回1,0返回0*/

字符串函数

SELECT CHAR_LENGTH('狂神说坚持就能成功'); /*返回字符串包含的字符数*/

SELECT CONCAT('我','爱','程序');  /*合并字符串,参数可以有多个*/

SELECT INSERT('我爱编程helloworld',1,2,'超级热爱');  /*替换字符串,从某个位置开始替换某个长度*/

SELECT LOWER('KuangShen'); /*小写*/

SELECT UPPER('KuangShen'); /*大写*/

SELECT LEFT('hello,world',5);  /*从左边截取*/

SELECT RIGHT('hello,world',5);  /*从右边截取*/

SELECT REPLACE('狂神说坚持就能成功','坚持','努力');  /*替换字符串*/

SELECT SUBSTR('狂神说坚持就能成功',4,6); /*截取字符串,开始和长度*/

SELECT REVERSE('狂神说坚持就能成功'); /*反转*/

日期和时间函数

SELECT CURRENT_DATE();   /*获取当前日期*/
SELECT CURDATE();   /*获取当前日期*/

SELECT NOW();   /*获取当前日期和时间*/
SELECT LOCALTIME();   /*获取当前日期和时间*/
SELECT SYSDATE();   /*获取当前日期和时间*/

/*获取年月日,时分秒*/
SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());
SELECT HOUR(NOW());
SELECT MINUTE(NOW());
SELECT SECOND(NOW());

7. 三大范式

问题 : 为什么需要数据规范化?
不合规范的表设计

  • 信息重复
  • 更新异常
  • 插入异常
    无法正确表示信息
  • 删除异常
    丢失有效信息

第一范式 (1st NF)

  • 第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小数据单元,则满足第一范式。
  • 字段值还可以继续拆分的,就不满足第一范式。
  • 范式,设计的越详细,对于某些实际操作可能更好,但不一定都是好处。

第二范式(2nd NF)

  • 必须满足第一范式的情况下。
  • 第二范式要求,除主键外的每一列都必须完全依赖与主键。
  • 若果要出现不完全依赖,只有可能发生在联合主键的情况下。

第三范式(3rd NF)

如果一个关系满足第二范式,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式.

你可能感兴趣的:(MySQL)