MySQL-函数/约束

MySQL-函数

distinct-去重  //放在select后

1、字符串函数

SELECT 函数(参数)

CONCAT(S1,S2,S3...)-字符串拼接,拼接成一个字符串。

LOWER(str)-将字符串str全部转换为小写。

UPPER(str)-将字符串str全部转换为大写。

LPAD(str,n,pad)-左填充,用字符串pad对str的左边进行填充,达成n个字符串长度。

RPAD(str,n,pad)-右填充,用字符串pad对str的右边进行填充,达成n个字符串长度。

TRIM(str)-去掉字符串头部和尾部的空格。

SUBSTPING(str,start,len)-返回从字符串str从start位置起的len个长度的字符串。

2、数值函数

SELECT 函数(参数)

CEIL(x)-向上取整

FLOOR(x)-向下取整

MOD(x,y)-返回x/y的模

RAND()-返回0~1内的随机数

ROUND(x,y)-求参数x的四舍五入的值,保留y位小数

3、日期函数

SELECT 函数(参数)

CUPDATE()-返回当前日期

CUPTIME()-返回当前时间

NOW()-返回当前日期和时间

YEAR(date)-获取指定date的月份

MONTH(date)-获取指定date的月份

DAY(date)-获取指定date的日期 //DAY(now())得到的那一天

DATE-ADD(date,INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值

DATEDIFF(date1,date2)返回起始时间date1和结束时间date2之后的天数

4、流程控制函数

IF(value,t,f)-如果value为true,则返回t,否则返回f

IFNULL(value1,avlue2)-如果value1不为空,返回value1,否则返回value2

CASE WHEN [val1] THEN [res1] ...ELSE [default] END-如果val1为true,返回res1,…否则返回default默认值

CASE [expr] WHEN [val1 ] THEN [res1] ... ELSE [default] END-如果expr的值等于val1,返回res1,…否则返回default默认值

MySQL-约束

NOT NULL-非空约束
UNIQUE-唯一约束
PRIMARY-主键约束
DEFAULT-默认约束  //默认约束为1,defauat‘1’
CHECK-检查约束  //check(age>0 && age<120)
FOREIGN KEY-外键约束  

1、外键约束:

添加外键

1.CREATE TABLE 表名(
          字段名 数据类型,
           .....
          [CONSTRAINT] [外键名称] FOREIGN KEY [外键字段名] REFFRENCES 主表(主表名)
);

2.ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);

删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

MySQL-多表查询

1、多表关系

一对多:
多对多:创建第三个表关联其他两个
一对一:创建UNIQUE唯一主键

2、多表查询

SELECT * FROM 表名,表名;  //多表查询

SELECT * FROM 表名1,表名2 WHERE 表名1.id = 表名2.id;   //笛卡儿积

3、多表查询分类

连接查询 
内连接:A,B的交集部分
外连接:左连接,右连接
自连接
子查询

4、内连接

隐式内连接

SELECT 字段列表 FROM 表1,表2 WHERE 条件 ....;
//  条件:表名1.id = 表名2.id ,可以取别名

显式内连接

SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件....;   //inner可省略

5、外连接

左外连接

SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件...;

右外连接

SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件...;

6、自连接

语法

SELECT 字段列表 FROM 表A 别名A JOIN 表B 别名B ON 条件....;

子连接查询,可以是内连接查询,也可以是外连接查询。

7、联合查询-union,union all

语法

SELECT 字段列表 FROM 表A.....
UNION[ALL]
SELECT 字段列表 FROM 表B......;


对于联合查询的多张表的列数和字段类型必须保持一致 。
union all 全部数据合在一起,union是要去重。

8、子查询

SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。

SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

子查询结果不同,分为;
标量子查询(结果为单个值)
列子查询
行子查询
表子查询

1.标量子查询

单个值可以是数字、字符串、日期等

常用操作符:= <> < > >= <=

2.列子查询

返回结果是一列(多列)

常用操作符:
IN:指定范围内,多选一
NOT IN:不在指定范围内
ANY:返回列表中,任意一个满足即可
SOME :与ANY一样
ALL:返回列表的所有值都必须满足

//使用:in(2,4)、all (条件)

3.行子查询

返回结果是一行(多行)

常用操作符:=、<>、IN、NOT IN

4、表子查询

返回多行多列

常用操作符:IN


 

相关推荐

  1. MySQL-函数/约束

    2024-06-11 10:46:03       9 阅读
  2. MySql-约束

    2024-06-11 10:46:03       37 阅读
  3. MySQL-约束

    2024-06-11 10:46:03       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 10:46:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 10:46:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 10:46:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 10:46:03       18 阅读

热门阅读

  1. 深度解读ChatGPT基本原理

    2024-06-11 10:46:03       8 阅读
  2. Server-side encryption (SSE)

    2024-06-11 10:46:03       11 阅读
  3. Python实现Stack

    2024-06-11 10:46:03       11 阅读
  4. Git实际应用场景分析

    2024-06-11 10:46:03       13 阅读
  5. .net core webapi跨域

    2024-06-11 10:46:03       7 阅读
  6. 云计算 目录

    2024-06-11 10:46:03       9 阅读
  7. React@16.x(22)HOOK,useState 的原理

    2024-06-11 10:46:03       13 阅读
  8. 【Redis】Redis的数据淘汰策略有哪些

    2024-06-11 10:46:03       10 阅读
  9. SQL的执行顺序

    2024-06-11 10:46:03       7 阅读
  10. Web前端与PHP:深度解析与未来展望

    2024-06-11 10:46:03       11 阅读
  11. 特别名词Test Paper3

    2024-06-11 10:46:03       9 阅读