修改表
在创建数据库之后,有时候可能会因为某些原因需要修改表结构,这时,如果将表删除重建,往往还需要考虑表中的数据,风险比较大,此时需要在原来已存在的数据表结构上对其修改,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 关键字可以使父查询匹配子查询返回的多个单字段值。
使用=,>等比较运算符,要求子查询只能返回一条或空的记录。当子查询跟随在比较运算符之后时,不允许子查询返回多条记录。