修改表名:
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语句回顾
插入数据记录:
INSERT INTO 表名 [(字段名列表)] VALUES (值列表);(插入单行数据)
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 原表);
更新数据记录:
**UPDATE 表名 SET 字段1=值1,字段2=值2,…字段n=值n(WHERE 条件);
**
DELETE FROM 表名 [WHERE 条件];
除此之外,也可以使用TRUNCATE语句删除表中所有行:
TRUNCATE TABLE 表名;
数据查询
SQL Server中数据查询与金额SELECT语句,语法如下:
**SELECT<字段名列表>
FROM<表名或视图>
[WHERE<查询条件>]
[GROUP BY<分组的字段名>]
[HAVING<条件>]
**
LIMIT子句
在MySQL中,查询语法与SQL Server稍有不同,语法如下:
SELECT<字段名列表>
FROM<表名或视图>
[WHERE<查询条件>]
[GROUP BY<分组的字段名>]
[ORDER BY<排序的字段名>[ASC 或 DESC] ]
[LIMIT [ 位置偏移量,]行数];
IN和NOTIN子查询
当子查询要返回多个行来与外层查询进行比较运算时,可以使用运算符 IN 和 NOT IN。它们会测试某个给定的比较值是否存在于某一组值里。如果外层查询里的行与子查询返回的某一个行相匹配,那么 IN 的结果为真。如果外层查询里的行与子查询返回的所有行都不匹配,那么 NOT IN 的结果为真。
MySQL高级查询
最新推荐文章于 2024-02-21 16:02:22 发布