开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情
SQL语言
突然觉得应该系统地再去学一遍MySQL,从零开始.
SQL语言简介
SQL语言分为数据定义语言、数据控制语言、数据操作语言、数据查询语言,分别实现对数据库数据操作
SQL语言基础
- 数据定义语言(DDL)
- Data Definition Language
- 用于定义和管理数据对象,包括数据库、数据表、函数、视图、索引、触发器等.例如: CREATE、DROP、ALTER等语句
- 数据控制语言(DCL)
- Data Control Language
- 用来管理数据库的语言,包含授权用户访问、拒绝用户访问、撤销授予的权限.例如: GRANT、DENY、REVOKE、COMMIT、ROLLBACK等语句
- 数据操作语言(DML)
- Data Manipulation Language
- 用于操作数据库对象中所包含的数据,增、删、改.例如: INSERT、DELETE、UPDATE语句
- 数据查询语言(DQL)
- Data Query Language
- 用于查询数据库对象中所包含的数据,能够进行单表查询、连接查询、嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回到客户机中显示
常量和变量
- 常量
- 字符常量
- 字符串常量使用单引号或双引号
- \n 换行
- \’ 一个单引号
- \” 一个双引号
- \ 一个\ 如果没有转义字符 就认为\是一个转义字符
- % 一个% 如果没有转义字符就认为这是一个通配符
- _ 一个 如果没有转移字符 就认为是一个通配符
- 数值常量
- 布尔常量
- 字符常量
- 变量
- 用户自定义变量使用@开始,使用set给变量赋值
- 系统变量
- 全局系统变量
- 针对所有默认设置
- 会话系统变量
- 针对当前用户生效
- 全局系统变量
运算符
- 算术运算符
- 加(+)、减(-)、乘()、除(/)、取模(%)
- 比较运算符
- 等于(=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、不等于(!=或<>)
- 逻辑运算符
- 与(and或&&)、或(or或||)、非(not或!)
- 运算符优先级
- 算术运算符优先级: 先乘除,后加减,括号优先
- 逻辑运算符优先级: 先与操作,再或操作,括号优先
系统内置函数
- 数学函数
- ABS(x) : 返回x的绝对值
- CEIL(x),CEILING(x) : 返回大于或等于x的最小整数(向上取整)
- FLOOR(x) : 返回小于或等于x的最大整数(向下取整)
- RAND() : 返回0~1的随机数
- SIGN(x) : 返回x的符号(负数[-1]、正数[1]、0[0])
- PI() : 返回圆周率
- TRUNCATE(x,y) : 返回数值x保留到小数点后y位的值
- POW(x,y),POWER(x,y) : 返回x的y次方
- SQRT(x) : 返回x的平方根
- EXP(x) : 返回自然常数e的x次方
- 字符串函数
- CHAR_LENGTH(s) : 返回字符串s的字符数
- LENGTH(s) : 返回字符串s的占用的空间的大小
- CONCAT(s1,s2,.....) : 将字符串s1,s2等多个字符串合并为一个字符串
- CONCAT_WS(x,s1,s2,....) : 同COUCAT(s1,s2,.....),但是每个字符串之间要加上x
- 日期和时间函数
- NOW() : 获取系统当前日期和时间
- unix_timestamp() : 将日期转为时间戳
- 聚合函数
- Count() : 统计满足条件的记录数量
- Sum() : 统计总数
Avg() 求平均值 select avg(age) from s where email is not null Max() 求最大值 Min() 求最小值 select avg(age),MAX(age),MIN(age) from s
group_concat() 将满足条件的记录,显示成一行,使用逗号分开