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是降序
posted @ 2022-04-21 17:10  JanYork(小简)  阅读(13)  评论(0编辑  收藏  举报