-- 修改表名 (ALTER TABLE 旧表名 RENAME AS 新表名)
ALTER table school RENAME as student;
-- 增加表的字段 (ALTER TABLE 表名 ADD字段名 列属性)
ALTER TABLE student ADD sex CHAR (5);
-- 修改字段的约束
ALTER TABLE student MODIFY age VARCHAR(11);
-- 字段重名名
ALTER TABLE student CHANGE age agel INT(1);
-- 删除表的字段
ALTER TABLE student DROP agel;
-- 给表student创建外键(约束)
ALTER TABLE `student`
ADD
CONSTRAINT `foreign-key` FOREIGN KEY(`ID`) REFERENCES `grade`(`ID`);
设置外键后,被引用的表不能删除,除非先删除引用的表,先删除表grade时提示:
注:数据库中一般不推荐使用外键,表多了之后就容易混乱,想要使用外键,可根据实际在项目中编写代码来实现。
-- INSERT
INSERT INTO `student` (`name`,`class`,`ID`,`sex`) VALUES ('李四','2',2001,'男');
INSERT INTO `student` (`name`,`ID`) VALUES ('王八',2002);
INSERT INTO `student` VALUES ('王五','2',2003,'女');
-- UPDATE
-- 一般的修改
UPDATE student SET `name` = '张三' WHERE id = 1001;
-- 不指定条件的情况下或修改表中的所有内容
UPDATE student set `name` = 'lisi';
-- 修改多个属性用逗号隔开
UPDATE student set `name` = 'zhangsan' ,`class` = '2' WHERE id = 1001;
删除数据可以使用delete和truncate
delete和truncate的区别:
相同点:都能删除数据,不会删除表的结构。
不同点:
delete是数据操作语言(DML)命令;而truncate是数据定义语言(DDL)命令。
truncate 删除后自增列的值会归零,即重新开始自增。表和索引所占用的空间会恢复到初始大小。
truncate不会影响事务。truncate不能进行回滚操作。
delete命令支持WHERE子句;truncate命令不支持WHERE子句。
delete采用行级锁定,truncate采用表级锁定
-- delete和truncate
DELETE FROM student WHERE ID = '2001';
TRUNCATE TABLE grade;
注意查询中各个语句的顺序:
select 表达式 from 表名 -- 表达式可以是文本值、列、NULL、函数、计算表达式、系统变量……
(1)简单查询
-- SELECT
-- 查询全部学生
SELECT * FROM student;
-- 查询指定字段
SELECT studentno,studentname FROM student;
-- 别名,给查询的列或表起个别名
SELECT studentno AS 学号,studentname AS 学生姓名 FROM student AS s;
(2)concat()函数:将多个字符串连接成一个字符串。
SELECT CONCAT('姓名:',studentname) AS 学生名字 FROM student;
(3)对查询结果去重
-- 查询哪些同学参加了考试
SELECT DISTINCT studentno FROM result;
(4)对学生成绩+1查看
SELECT studentno,studentresult+1 as 加分后的成绩 FROM result;