三、MySql03 SQL 高级(一)

三、SQL 高级(一)

3.1 修改数据表结构

3.1.1 修改数据表的表名

  • 修改数据表的表名 语法
ALTER TABLE 旧表名 RENAME [TO] 新表名;
  • [TO] 为可选,使用与否不影响效果
  • 此语句只修改表的名称,不会修改表的结构

3.1.2 修改数据表的字段

  • 修改表中的字段包含字段名和数据类型
  • 修改数据表字段 语法
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
  • 若不需要修改数据类型,则与原类型保持一致,不可为空
  • 若修改时未添加属性,则修改后的字段无任何属性约束

3.1.3 给数据表添加字段

  • 向已有的数据表添加字段
  • 给数据表添加字段 语法
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];

3.1.4 删除数据表的字段

  • 删除数据表当中的某个已有字段
  • 删除数据表的字段 语法
ALTER TABLE 表名 DROP 字段名

3.1.5 添加主外键约束

  • 添加主键约束 语法
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段)
  • 添加外键约束 语法
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 关联表名(关联字段)

3.2 DML 语句

DML 语句:执行 增、删、改、语句

3.2.1 插入数据语句

使用 INSERT 语句向数据表中插入数据

  • 插入单行数据 语法
INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
  • 字段名列表时可选项,若省略,则依次插入所有字段
  • 值列表必须和字段名列表的数量相同,且数据类型一致
  • 多个字段名和多个值之间使用逗号隔开
  • 插入多行数据 语法
INSERT INTO 表名 [(字段名列表)] VALUES(值列表1),(值列表2),...,(值列表n);
  • 将查询结果插入新列表 语法1
INSERT INTO 表名(字段1,字段2,...) SELECT 字段1,字段2,... FROM 原表;
  • 将查询结果插入新列表 语法2
SELECT 字段1,字段2,...  INTO 新表 FROM 原表;
  • 将查询的数据插入到新创建的表中 语法
CREATE TABLE 新表(SELECT 字段1,字段2,...  FROM 原表)

3.2.2 更新数据语句

使用 UPDATE 语句更新数据表中的数据

  • 更新数据语句 语法
UPDATE 表名 SET 字段1=值1,字段2=值2,...,字段n=值n [WHERE 条件]

3.2.3 删除数据语句

从数据表中删除数据可以使用 DELETE 语句 或 TRUNCATE 语句

  • 使用 DELETE 语句删除数据 语法
DELETE FROM 表名 [WHERE 条件]
  • 使用 TRUNCATE 语句清除整个表 语法
TRUNCATE TABLE 表名
  • 该语句可清空表内的所有数据

3.3 数据查询

3.3.1 DQL 语句

3.3.3 分页查询

回顾数据查询语句 (SELECT 语句) 语法如下

SELECT *或<字段名列表> FROM <表名或视图> [WHERE <查询条件>] [GROUP BY <分组的字段名>] [HAVING <条件>] [ORDER BY <排序的字段名>] [ASC 或 DESC] [LIMIT [位置偏移量,]行数];
  • WHERE 子句为可选项,如果选择该选项,则将限定查询条件,查询结果必须满足此查询条件
  • GROUP BY 子句表明查询出来的数据按指定字段进行分组
  • HAVING 子句用于筛选组
  • ORDER BY 子句指定按什么顺序显示查询出来的数据,需要指定排序字段。默认按照升序排列,也可以通过代码指定 升序(ASC)或 降序(DESC)
  • LIMIT 来指定查询结果返回条数
    • 位置偏移量表示结果从结果集的第几条数据开始选取(记录的偏移位置从0开始开始计算,表示第一条记录,第二条记录的偏移位置是1,以此类推)
    • 行数指以偏移位置为起点,选取记录的条数

3.3.2 常用函数

基于已有数据进行数据的统计分析计算等需求

1、字符串函数

  • 可以对字符串进行各种处理
  • MySQL 中常用的字符串处理函数
函数名函数说明函数示例
CONCAT(str1,str2,…,strn)将字符串 str1、str2、…、strn连接为一个完整的字符串SELECT CONCAT(‘L’,‘Q’,‘E’);
返回:LQE
LOWER(str)将字符穿 str 中所有字符变为小写SELECT LOWER(‘LqE’)
返回:lqe
UPPER(str)将字符串 str 中所有的字符变为大写SELECT UPPER(‘lQe’)
返回:LQE
SUBSTRING(str,num,len)返回字符串 str 的第 num个位置开始,长度为 len 的子字符串SELECT SUBSTRING(‘ABCDEFG’,3,4)
返回:CDEF
INSERT(str,pos,len,newstr)将字符串 str 从 pos 位置开始,将len 个字符长度的子串替换为字符串 newstrSELECT INSERT(‘1234’,3,0,‘ABCDE’)
返回:12ABCDE34

2、时间日期函数

  • 获取当前日期,对日期进行操作
  • MySQL 中常用的日期函数
函数名函数说明示例
CURDATE()获取当前日期SELECT CURDATE();
返回:2023-03-11
CURTIME()获取当前时间SELECT CURTIME();
返回:01:54:30
NOW()获取当前日期和时间SELECT NOW();
返回:2023-03-11 01:55:12
WEEK(date)返回参数 date 为一年中的第几周SELECT WEEK(NOW());
返回: 10
YEAR(date)返回参数 date 的年份SELECT YEAR(NOW());
返回:2023
HOUR(time)返回参数 time 的小时值SELECT HOUR(NOW());
返回:1
MINUTE(time)返回参数 time 的分钟值SELECT HOUR(NOW());
返回:57
DATEDIFF(date1,date2)返回参数 date1 和参数 date2 之间相隔的天数SELECT DATEDIFF(NOW(),‘2019-8-8’)
返回:1311
ADDDATE(date,n)计算参数 date 在 n 天后的日期SELECT ADDDATE(NOW(),4);
返回:2023-3-15 01:58:36

3、聚合函数

  • 对已有数据进行汇总,常见的有求和、平均值、最大值、最小值等
  • MySQL 中常用的聚合函数
函数名函数说明
COUNT()返回某字段的行数
MAX()返回某字段的最大值
MIN()返回某字段的最小值
SUM()返回某字段的和
AVG返回某字段的平均值

4、数学函数

  • 可以进行数值运算
  • MySQL 中常见的数学函数
函数名函数说明示例
CELL(x)返回大于或等于数值 x 的最小整数,向上取整SELECT CELL(2.1)
返回:3
FLOOR(x)返回小于或等于数值 x 的最大整数,向下取整SELECT FLOOR(2.9)
返回:2
RAND()返回 0~1 的随机数SELECT RANG();
返回:0.15013303621684485
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值