MySQL高级查询

修改表

在创建数据库之后,有时候可能会因为某些原因需要修改表结构,这时,如果将表删除重建,往往还需要考虑表中的数据,风险比较大,此时需要在原来已存在的数据表结构上对其修改,MySQL使用ALTER 关键字实现。

修改表名:在一个数据库中,表名是唯一的。可以通过SQL语句对已创建的表修改表名,语法如下:
ALTER TABLE<旧表名> RENAME [TO] <新表名>;

添加字段:随着业务需求的变化,可能需要向已存在的表中添加新的字段,添加字段的语法如下:
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];

修改字段:数据表中一个字段中包含字段名和数据类型,因此如果实现修改字段,可以包括修改字段名和修改数据存储的类型,语法如下:
ALTER TABLE 表名 CRANGE 原字段名 数据类型 [属性];

删除字段:删除字段是将数据表中的某个字段从表中移除,语法如下:
ALTER TABLE 表名 DROP 字段名;

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

DML语句回顾

插入数据记录:在使用数据库之前,先要为数据表中添加数据,在SQL Server 中使用INSERT语句为表插入数据,语法如下:
INSERT INTO 表名 [(字段名列表)] VALUES (值列表);(插入单行数据)
其中:
–》表的字段名是可选的,如果省略,则依次插入所有字段。
–》多个列表和多个值之间用逗号分隔。
–》值列表必须和字段名列表数量相同,且数据类型相符。
–》如果插入的是表中部分数据,字段名列表必须填写。

与SQL Server中不同的是,在MySQL中INSERT 语句支持一次插入多条数据,插入时可指定多个值列表,每个值列表之间用逗号分隔。
INSERT INTO 新表(字段名列表)VALUES(值列表1),…,(值列表n);(插入多行数据)

将查询结果插入到新表:以下两种句式可以实现将已有数据表中的数据备份到其他表中:
句式1语法:
INSERT INTO 新表(字段1,字段2,…)
SELECT 字段1,字段2,…
FROM 原表;

句式2语法:
SELECT 字段1,字段2,…
INTO 新表
FROM 原表;

以上句式2在MySQL中不支持,可以使用另外替代句式来实现同样的功能,语法如下:
CREATE TABLE 新表 (SELECT 字段1,字段2,…FROM 原表);

更新数据记录:对表中的数据进行更新是一类频繁发生的操作,在MySQL中更新数据的语句和SQL Server中相同。语法如下:
**UPDATE 表名 SET 字段1=值1,字段2=值2,…字段n=值n(WHERE 条件);
**

删除数据记录:从数据表中删除数据 使用DELETE语句,同样也可以使用WHERE 子句添加删除条件,MySQL中的删除语句和SQL Server中相同,语法如下:
DELETE FROM 表名 [WHERE 条件];
除此之外,也可以使用TRUNCATE语句删除表中所有行:
TRUNCATE TABLE 表名;

数据查询

SQL Server中数据查询与金额SELECT语句,语法如下:
**SELECT<字段名列表>
FROM<表名或视图>
[WHERE<查询条件>]
[GROUP BY<分组的字段名>]
[HAVING<条件>]
**
其中:
–》字段名列表为要查询的字段名,各字段之间用逗号分隔,若查询表中所有字段,则使用" * "号表示。
–》FROM后的表名为要查询的数据的来源,可以单个或多个。
–》WHERE 子句为可选项,指定查询的条件。
–》GROUP BY子句表名查询出来的数据按指定字段进行分组。
–》HAVING子句用于筛选组。
–》ORDER BY子句指定按什么顺序显示查询出来的数据,什么字段的升序(ASC)或降序(DESC)。

LIMIT子句
在MySQL中,查询语法与SQL Server稍有不同,语法如下:
SELECT<字段名列表>
FROM<表名或视图>
[WHERE<查询条件>]
[GROUP BY<分组的字段名>]
[ORDER BY<排序的字段名>[ASC 或 DESC] ]
[LIMIT [ 位置偏移量,]行数];

–》位置偏移量指从结果集中第几条数据开始显示(第1条记录的位置偏移量是0),此参数可选,当省略时从第一条记录开始显示。
–》行数值显示记录的条数。

常用函数

聚合函数:MySQL中的聚合函数和SQL Server中相同,用来对已有数据进行汇总。
在这里插入图片描述
字符串函数:字符串函数是最常用的函数之一,用来对字符串进行葛总处理。
在这里插入图片描述
时间日期函数:除了聚合函数和日期函数之外,日期函数也是一类常用函数。
在这里插入图片描述
在这里插入图片描述
数学函数:在使用SQL语句进行数据操作时,有时也会需要进行数值运算。
在这里插入图片描述

子查询

简单子查询的语法:子查询在WHERE语句中的一般用法如下:
SELECT … FROM 表1 WHERE 字段1 比较运算符 (子查询);
其中,子查询语句必须放置在一对圆括号内:比较运算符包括 >,=,<,>=,<=.
因为 子查询作为WHERE 条件的一部分,所以还可以和UPDATE,INSERT,DELETE一起使用,语法类似于SELECT语句。

IN子查询:使用IN 关键字可以使父查询匹配子查询返回的多个单字段值。
使用=,>等比较运算符,要求子查询只能返回一条或空的记录。当子查询跟随在比较运算符之后时,不允许子查询返回多条记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值