MySQL高级查询
修改表名
在一个数据库中,表名是唯一的。可以通过SQL语句对以创建的表修改表名,语法如下。
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
其中,TO为可选参数,使用与否不影响结果,仅修改表名,表结构不变。
添加字段
随着业务需求的变化,可能需要向已经存在的表中添加新的字段,添加字段的语法如下。
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
修改字段
数据表中一个字段中包含字段名和数据类型,因此如果实现修改字段,可以包括修改字段名和修改数据存储的类型,其语法如下。
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
其中,“原字段名” 指修改前的字段名,"新字段名"指修改后的字段名,"数据类型"指修改后的数据类型,如果不需要修改数据类型,则和原数据类型保持一致,但"数据类型"不能为空。
删除字段
删除字段就是将数据表中某个字段从表种移除,语法如下。
ALTER TABLE 表名 DROP 字段名;
添加主外键
1.添加主键约束
语法:
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
2.添加外键约束
语法:
ALTER TABLE 表名 ADD FOREIGN 外键字段 PEFERENCES 关联表名(关联字段);
提示:
在MySQL中,InnDB存储类型的表支持外键,MyISAM存储类型的表不支持外键,因此对于MyISAM存储类型的表,也可以建立逻辑关联的方式保证数据的完整性和一致性,这种关联实际上是按照设计之初就定义好的固有逻辑,按照这种固有逻辑存储数据即可,不需要在数据库层面进行"硬绑定"。
插入数据记录
使用数据库之前,要先为数据表添加数据,语法如下。
1.插入单行数据
INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
提示:
表的字段名是可选的,如果省略,则依次插入所有字段。
多个列表和多个值之间使用逗号分割。
值列表必须和字段名列表数量相同,且数据类型相符。
如果插入的是表中部分数量相同,字段名列表必须填写
2.插入多行数据
INSERT INTO 表名 (字段名列表) VALUES (值列表1),(值列表2),(值列表3)......,(值列表n);
3.将查询结果插入到新表
CREATE TABLE 新表 (SELECT 字段1,字段2,...... FROM 原表);
更新数据记录
对表中的数据进行更新是一类频繁发生的操作,语法如下。
UPDATE 表名 SET 字段1=值1,字段2=值2,......,字段n=值n [WHERE 条件];
删除数据记录
从数据表中删除数据使用DELETE语句,同样也可以使用WHERE子句添加删除条件。语法如下。
DELETE FROM 表名 [WHERE 条件];
除此之外,还可以使用TRUNCATE语句删除所有行
TRUNCATE FROM 表名
提示:
TRUNCATE语句实现删除表中所有数据,删除后将重置自增列,表结构及其字段,约束,索引保持不变,执行速度比DELETE语句块。