```sql /* 1-9题 40分 1-4 创建表、修改、添加、删除字段,记录插入、记录删除、记录更新 创建主键、外键、唯一约束 5.tj11 查询 6.tj12 查询 7.查询+视图 8.触发器 9.存储过程、存储函数 */ #1-4 #创建表(最后一个字段后没有,) CREATE TABLE 表名( 字段名 数据类型 约束 [ZEROFILL] DEFAULT 默认值 COMMENT 备注, 字段名 数据类型 约束 [ZEROFILL] DEFAULT 默认值 COMMENT 备注 ); #插入记录 INSERT INTO 表名(字段1, 字段2) VALUES(数值1, 数值2); #删除表 DROP TABLE 表名; #清空表 TRUNCATE 表名; #修改字段数据类型 ALTER TABLE 表名 MODIFY 字段名 数据类型 约束; #修改字段名+数据类型 ALTER TABLE 表名 CHANGE 字段名 新字段名 数据类型 约束; #删除字段 ALTER TABLE 表名 DROP 字段名; #添加字段 ALTER TABLE 表名 ADD 字段名 数据类型 约束; #添加主键 ALTER TABLE 表名 MODIFY 字段名 数据类型 PRIMARY KEY; ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY(字段名); #添加自动增长(字段已为主键) ALTER TABLE 表名 MODIFY 字段名 数据类型 AUTO_INCREMENT; #添加自动增长(字段不为主键) ALTER TABLE 表名 MODIFY 字段名 数据类型 PRIMARY KEY AUTO_INCREMENT; #设置自动增长的起始值 ALTER TABLE 表名 AUTO_INCREMENT = 数值; #设置默认值 ALTER TABLE 表名 ALTER SET DEFAULT 默认值; #添加外键约束 ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(字段名) REFERENCES 外键表(主键) [ON UPDATE CASCADE/SET NULL ON DELETE CASCADE/SET NULL] #添加唯一约束 ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE; ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(字段名); #插入记录 INSERT INTO 表名() VALUES(DEFAULT, 数值, 数值); INSERT INTO 表名() SET 字段名=数值, 字段名=数值, 字段名=数值; #更新记录 UPDATE 表名 SET 字段名 = 数值 WHERE 条件; #删除记录 DELETE FROM 表名 WHERE 条件; #5-7题 查询、视图 SELECT 字段名 FROM 表名 WHERE 分组前条件 GROUP BY 分组字段 HAVING 分组后条件 ORDER BY 排序的字段名/字段的位置编号(1、2、3) LIMIT 起始位置,记录个数 #位置和C语言数组一样 起始从0开始 #创建视图 CREATE VIEW 视图名 AS 查询; #修改视图 ALTER VIEW 视图名 AS 查询; #删除视图 DROP VIEW 视图名; #8 触发器 DELIMITER $$ DROP TRIGGER IF EXISTS 触发器名; CREATE TRIGGER 触发器名 BEFORE/AFTER UPDATE/DELETE/INSERT ON 表 FOR EACH ROW BEGIN #需要附带的操作写在BEGIN END 之间 END $$ DELIMITER ; #9 存储过程、存储函数 DELIMITER $$ DROP PROCEDURE IF EXISTS 存储过程名; CREATE PROCEDURE 存储过程名(IN/OUT 参数名 数据类型, IN/OUT 参数名 数据类型) BEGIN #需要执行的操作写在BEGIN END 之间 END $$ DELIMITER ; DELIMITER $$ DROP FUNCTION IF EXISTS 存储函数名; CREATE FUNCTION 存储函数名(参数名 数据类型, 参数名 数据类型) RETURNS 返回值类型 DETERMINISTIC/NOT DETERMINISTIC #相同参数返回值确定或者不确定 BEGIN RETURN 返回值;#存储函数必须有返回值 END $$ DELIMITER ; ```