### 创建数据库表
```mysql
CREATE TABLE IF NOT EXISTS `clyh`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT `姓名` ,
`password` VARCHAR(12) NOT NULL DEFAULT '' COMMENT `密码`,
PRIMARY KEY (id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
```
### 删表
```mysql
DROP TABLE clyh;
```
### 分页查询
```mysql
SELECT * FROM clyh
LIMIT 5,0;
//5表示查询条数,0表示开始查询条数
```
### SELECT DISTINCT
```sql
select distinct name from clyh;
```
### SELECT TOP
```sql
# 此语句适用于SQL Server / MS Access语法,类似于MySQL的limit,Oracle的ROWNUM
select top 5 name from clyh #获取数据表中前5条数据
```
### JOIN
==SQL join 用于把来自两个或多个表的行结合起来==
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
```sql
#inner join --> on 条件满足才能返回改行
#left join --> on 条件不完全满足,例如表A left 表B 表A中有的on条件的行都会输出,而表B只能输出on条件有的
#right join --> on 与left join相反
#full join --> on 列出所有on条件的行,不管表中是否有符合条件的值或存在的值
```
![](image/微信截图_20200730223614.png)
![](image/微信截图_20200730213105.png)
+ inner join
![](image/微信截图_20200730213202.png)
+ left join
![](image/微信截图_20200730213242.png)
### 删除记录
```mysql
DELETE FROM clyh WHERE id=1;
```
### UNION
```mysql
//UNION会连接两个及两个以上的查询结果,并过滤重复的部分只留下一个
SELECT name FROM clyh
UNION
SELECT name FROM chen
ORDER BY name;
//UNION ALL 不会过滤重复的部分
SELECT name FROM clyh
UNION ALL
SELECT name FROM chen
ORDER BY name;
```
### MySQL函数
##### 字符串函数
+ ASCII(S) 返回字符串S的第一个字符的ASCII码
![](image/搜狗截图20200709114328.png)
+ CHAR_LENGTH(s) 返回字符串s的字符数
![](image/搜狗截图20200709114628.png)
+ CHARACTER_LENGTH(s) 返回字符串s的字符数
![](image/搜狗截图20200709114922.png)
+ CONCAT(s1,s2...sn) 字符串s1,s2等多个字符串合为一个字符串
![](image/搜狗截图20200709115615.png)
+ CONCAT_WS(x, s1,s2...sn) concat with split 同样是和并字符串,不过可以添加分隔符。x为分隔符
![](image/搜狗截图20200709115817.png)
+ FIELD(s,s1,s2...) 返回字符串s在该字符串列表中的位置
![](image/搜狗截图20200712111223.png)
+ FIND_IN_SET(s1,s2) 返回字符串s1在字符串s2==集合==中的位置
![](image/搜狗截图20200709120441.png)
+ FORMAT(x,n) 函数可以将数字 x 进行格式化 "#,###.##", 将 x 保留到小数点后 n 位,最后一位四舍五入。
![](image/搜狗截图20200709120726.png)
+ INSERT(s1,x,len,s2) 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
![](image/搜狗截图20200709121132.png)
+ LOCATE(s1,s) 从字符串 s 中获取 s1 的开始位置
![](image/搜狗截图20200709121628.png)
+ LCASE(s) 将字符串 s 的所有字母变成小写字母
![](image/搜狗截图20200709121732.png)
+ LEFT(s,n) 返回字符串 s 的前 n 个字符
![](image/搜狗截图20200709125326.png)
+ LOWER(s) 将字符串 s 的所有字母变成小写字母,同lcase
![](image/搜狗截图20200712111545.png)
+ LPAD(s1,len,s2) 在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len.如果s2的长度加上s1的长度仍然小于len,那么继续加上s2直到达到len
![](image/搜狗截图20200712112337.png)
+ LTRIM(s) 去掉字符串 s 开始处的空格
![](image/搜狗截图20200712113409.png)
+ MID(s,n,len) 从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len)
![](image/搜狗截图20200712113633.png)
+ POSITION(s1 IN s) 从字符串 s 中获取 s1 的开始位置(找到s中第一个s1)
![](image/搜狗截图20200712113820.png)
+ REPEAT(s,n) 将字符串 s 重复 n 次
![](image/搜狗截图20200712113946.png)
+ REPLACE(s,s1,s2) 将字符串 s2 替代字符串 s 中的字符串 s1
![](image/搜狗截图20200712114059.png)
+ REVERSE(s) 将字符串s的顺序反过来
![](image/搜狗截图20200712114228.png)
+ RIGHT(s,n) 获取字符串s右边开始长度为n的字符串
![](image/搜狗截图20200712114347.png)
+ RPAD(s1,len,s2) 从字符串s1结尾地方开始,添加字符串s2,直到长度达到len.如果len小于字符串s1的长度,那么直接截取s1长度为len。例如len为2,那么下面的结果为ab
![](image/搜狗截图20200712114542.png)
+ RTRIM(s) 去除s结尾处的空格
![](image/搜狗截图20200712114900.png)
+ SPACE(n) 返回 n 个空格
![](image/搜狗截图20200712115733.png)
+ STRCMP(s1,s2) 比较字符串 s1 和 s2的第一个字符串大小,如果s1的大于s2的返回1,相等返回0,小于返回-1
![](image/搜狗截图20200712120122.png)
+ SUBSTR(s, start, length) 从字符串 s 的 start 位置截取长度为 length 的子字符串,同mid
![](image/搜狗截图20200712120405.png)
+ SUBSTRING(s, start, length) 同substr,mid
![](image/搜狗截图20200712120447.png)
+ SUBSTRING_INDEX(s, delimiter, number)
返回从字符串 s 的第 number 个出现的分隔符 delimiter 前后的子串。
如果 number 是正数,返回第 number 个字符左边的字符串。
如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。
![](image/搜狗截图20200712120858.png)
+ TRIM(s) 去除字符串首尾空格
![](image/搜狗截图20200712121029.png)
+ UCASE(s) 将字符串转换为大写,与lcase相反,lcase是将字符串大写变成小写
![](image/搜狗截图20200712121112.png)
+ UPPER(s) 同ucase(s)
![](image/搜狗截图20200712121248.png)
##### 数字函数
+ COUNT(DISTINCT,EXPR)
+ COUNT(EXPR)
![](image/微信截图_20200730220054.png)
![](image/微信截图_20200730220126.png)
高级应用:![](image/微信截图_20200730221744.png)
==使用别的字段==
![](image/微信截图_20200730222216.png)
+ SUM(count_name) 计算列值的总和
![](image/微信截图_20200730221130.png)
高级应用:select sum(password) from (select password from clyh where id < 3) as password;![](image/微信截图_20200730221239.png)
##### 日期函数
##### 高级函数
+ GROUP BY 结果按某个字段进行分组,一般与聚合函数一起使用,分组后通过聚合函数可以计算同一组的数量
![](image/微信截图_20200730223722.png)
+ HAVING 与 WHERE一样用于指定条件因为WHERE语句无法与聚合函数一起使用,所以用HAVING
![](image/微信截图_20200730224032.png)
+ UCASE 转换成大写
![](image/微信截图_20200730224206.png)
+ LCASE 转换成小写
![](image/微信截图_20200730224312.png)
一键复制
编辑
Web IDE
原始数据
按行查看
历史