MySQL进阶之数据的增删改查(DML)
增
INSERT INTO stu(studentNo, loginPwd, studentName, sex, gradeId, phone, address, bornDate, mail, identityCard) VALUE ('123456','00000','小简','秘密','1','1888888888','长沙','2000-1-1','747945307@qq.com','43032000000000');
INSERT INTO 表名(字段1,字段2) VALUE (值1,值2);
-- 如非数值,请加上单引号,如:('值1','值2')
插入多行
INSERT INTO 表名(字段1,字段2) VALUE (值1,值2),(值1,值2);
-- 这样就可以一次插入多行
将查询的结果插入新表
格式1
INSERT INTO 表名(字段1,字段2) SELECT 字段1,字段2 FROM 原表名;
-- 使用方法和会出现的问题就不需要多说了,自行尝试
格式2
SELECT 字段1,字段2 INTO 新表名 FROM 原表名;
删
-- DELETE FROM 表名 WHERE [条件];
-- WHERE [条件]可以不写,不写就是无条件删除所有,有条件就是删除符合条件的!!!
DELETE FROM stu WHERE studentNo = '888888';
删除表中所有数据
-- TRUNCATE TABLE 表名;
TRUNCATE TABLE stu;
注意:使用此语句删除表中数据,将会重置自增列,并且执行效率优于DELETE
。
改
更新语句我们使用UPDATE
关键词。
-- UPDATE 表名 SET 字段名 = '字段值',字段名 = '字段值' WHERE [条件]
-- WHERE [条件]可以不写,不写就是无条件修改所有,有条件就是修改符合条件的!!!
UPDATE stu SET studentNo = '888888' WHERE studentNo = '123456';
查
SELECT * FROM stu WHERE studentNo = '888888';
这是一段简单的查询语句。同上,WHERE
可以省略,如果不要WHERE
条件,就是无条件查询所有。
我们还可以写复杂一点。
SELECT * FROM stu WHERE studentNo = '888888' GROUP BY studentNo ORDER BY studentNo ASC ;
我们分解,挨个瞧一瞧。
注:[ ]
内表示非必要语句。
SELECT *或<字段名列表> FROM <表名或视图> [WHERE <查询条件>] [GROUP BY 需要分组的字段] [ORDER BY 需要排序的字段 [ASC或DESC] ] ;
*
表示所有。FROM
后主要是接数据来源,可以单个也可以多个。WHERE
用于条件筛选。GROUP BY
可以让查询的数据根据指定字段分组。HAVING
用于筛选组,就是对于GROUP BY
分出的组进行筛选等等。ORDER BY
用于排序,根据某一列排序,ASC
是升序,DESC
是降序