SQL--DML增删改&&DQL查询表中数据

た 入场券 2022-09-06 15:18 309阅读 0赞

DML&&DQL

  • 1 添加数据
  • 2 删除数据
  • 3 修改数据
  • 4 查询表中记录
    • 4.1 查询语法
    • 4.2 基础查询
      • 4.2.1 多个字段查询
      • 4.2.2 去除重复
      • 4.2.3 计算列
      • 4.2.4 起别名
    • 4.3 条件查询
      • 4.3.1 运算符
      • 4.3.2 LIKE模糊查询
    • 4.4 排序查询
    • 4.5 聚合函数
    • 4.6 分组查询
    • 4.7 分页查询

1 添加数据

  1. INSERT INTO 表名(列名1,列名2,...列名n) VALUES (值1,值2,值3);
  2. INSERT INTO stu VALUES(1,'李四',21,90,'2000-4-21',NULL);
  3. INSERT INTO stu VALUES(2,'张三',22,91,'2000-4-22',NULL);
  4. SELECT * FROM stu;

在这里插入图片描述

2 删除数据

  1. //删除
  2. DELETE FROM 表名 [WHERE 条件];
  3. //删除所有记录
  4. DELETE FROM 表名;
  5. TRUNCATE TABLE 表名;//先删除表,然后创建一张一样的表

在这里插入图片描述

在这里插入图片描述

3 修改数据

  1. UPDATE 表名 SET 列名1 = 1,列名2 = 2... WHERE 条件;

在这里插入图片描述

4 查询表中记录

对整个表的内容进行查询:

  1. SELECT * FROM 表名;

4.1 查询语法

  1. SELECT
  2. 字段列表
  3. FROM
  4. 表名列表
  5. WHERE
  6. 条件列表
  7. GROUP BY
  8. 分组字段
  9. HAVING
  10. 分组之后的条件
  11. ORDER BY
  12. 排序
  13. LIMIT
  14. 分页限定

4.2 基础查询

创建一个学生表,源码及创建结果如下:

  1. CREATE TABLE student (
  2. id INT,
  3. -- 编号
  4. NAME VARCHAR (20),
  5. -- 姓名
  6. age INT,
  7. -- 年龄
  8. sex VARCHAR (5),
  9. -- 性别
  10. address VARCHAR (100),
  11. -- 地址
  12. math INT,
  13. -- 数学
  14. english INT -- 英语
  15. );
  16. INSERT INTO student (
  17. id,
  18. NAME,
  19. age,
  20. sex,
  21. address,
  22. math,
  23. english
  24. )
  25. VALUES
  26. (
  27. 1,
  28. '马云',
  29. 55,
  30. '男',
  31. '杭州',
  32. 66,
  33. 78
  34. ),
  35. (
  36. 2,
  37. '马化腾',
  38. 45,
  39. '女',
  40. '深圳',
  41. 98,
  42. 87
  43. ),
  44. (
  45. 3,
  46. '马景涛',
  47. 55,
  48. '男',
  49. '香港',
  50. 56,
  51. 77
  52. ),
  53. (
  54. 4,
  55. '柳岩',
  56. 20,
  57. '女',
  58. '湖南',
  59. 76,
  60. 65
  61. ),
  62. (
  63. 5,
  64. '柳青',
  65. 20,
  66. '男',
  67. '北京',
  68. 60,
  69. 98
  70. ),
  71. (
  72. 6,
  73. '刘德华',
  74. 45,
  75. '男',
  76. '香港',
  77. 60,
  78. 70
  79. ),
  80. (
  81. 7,
  82. '马德',
  83. 33,
  84. '女',
  85. '杭州',
  86. 99,
  87. 99
  88. ),
  89. (
  90. 8,
  91. '张三丰',
  92. 66,
  93. '男',
  94. '南极',
  95. 56,
  96. 65
  97. );
  98. SELECT
  99. *
  100. FROM
  101. student;

在这里插入图片描述

4.2.1 多个字段查询

查询上例表中姓名和地址两个字段

  1. SELECT name,address FROM student;

在这里插入图片描述

4.2.2 去除重复

去除地址重复的结果集,使用DISTINCT关键字

  1. SELECT DISTINCT address FROM student;
  2. SELECT DISTINCT name,address FROM student;

在这里插入图片描述

4.2.3 计算列

计算每个人的math和english之和

  1. SELECT name,math,english,math+english FROM student;
  2. //如果有NULL参与的结果都为null
  3. //如果数学为null,赋值为0
  4. SELECT name,math,english,IFNULL(math,0) + english FROM student;

在这里插入图片描述

4.2.4 起别名

  1. //起别名,AS 别名
  2. SELECT name,math,english,IFNULL(math,0) + english AS 总分 FROM student;

在这里插入图片描述

4.3 条件查询

4.3.1 运算符

  1. -- 查询年龄大于20
  2. SELECT * FROM student WHERE age > 20;
  3. -- 查询年龄大于等于20
  4. SELECT * FROM student WHERE age >= 20;
  5. -- 查询年龄等于20
  6. SELECT * FROM student WHERE age = 20;
  7. -- 查询年龄不等于20
  8. SELECT * FROM student WHERE age != 20;
  9. SELECT * FROM student WHERE age <> 20;
  10. -- 查询年龄大于等于20小于等于30
  11. SELECT * FROM student WHERE age >= 20 && age <= 30;
  12. SELECT * FROM student WHERE age >= 20 AND age <= 30;
  13. SELECT * FROM student WHERE age BETWEEN 20 AND 30;
  14. -- 查询年龄为55岁,45岁,21
  15. SELECT * FROM student WHERE age = 55 OR age = 45 OR age = 21;
  16. SELECT * FROM student WHERE age = 55 || age = 45 || age = 21;
  17. SELECT * FROM student WHERE age IN (55,45,21);
  18. -- 查询某处为NULL的数据
  19. SELECT * FROM student WHERE english IS NULL;
  20. -- 查询不为NULL
  21. SELECT * FROM student WHERE english IS NOT NULL;

4.3.2 LIKE模糊查询

  1. -- 查询姓马的有哪些?
  2. SELECT * FROM student WHERE NAME LIKE '马%';
  3. -- 查询姓名第二个字是化的人
  4. SELECT * FROM student WHERE NAME LIKE '_化%';
  5. -- 查询姓名是三个字的人
  6. SELECT * FROM student WHERE NAME LIKE '___';
  7. -- 查询姓名包含三的人
  8. SELECT * FROM student WHERE NAME LIKE '%三%';

4.4 排序查询

  1. //语法
  2. ORDER BY 字句;
  3. ORDER BY 排序字段1 排序方式1 , 排序字段2 排序方式2 ...

1 ASC为升序,DESC为降序
2 如果不注明排序方式则默认按照升序排序

在这里插入图片描述

4.5 聚合函数

聚合函数:将一列数据作为一个整体进行纵向的计算

  1. //1、count:计算个数
  2. //1)一般选择非空的列:主键
  3. //2)count(*)
  4. SELECT COUNT(id) FROM student;
  5. SELECT COUNT(IFNULL(math,0)) FROM student;
  6. //2、max:计算最大值
  7. SELECT MAX(math) FROM student;
  8. //3、min:计算最小值
  9. SELECT MIN(math) FROM student;
  10. //4、sum:计算和
  11. SELECT SUM(math) FROM student;
  12. //5、avg:计算平均值
  13. SELECT AVG(math) FROM student;

1 聚合函数的计算,排除NULL值

4.6 分组查询

  1. //语法
  2. GROUP BY 分组字段;

1、分组之后的查询的字段为:分组字段或聚合函数
2、WHERE在分组之前进行限定,如果不满足条件,则不参与分组;HAVING在分组之后进行限定,如果不满足结果则不会被查询出来
3、WHERE后不可以跟聚合函数,HAVING可以跟聚合函数进行判断

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.7 分页查询

  1. //语法
  2. LIMIT 开始的索引 , 每页查询的条数;
  3. //公式
  4. 开始的索引 = (当前的页码 - 1 * 每页显示条数
  5. -- 每页显示3条记录
  6. SELECT * FROM student LIMIT 0 , 3; -- 第一页
  7. SELECT * FROM student LIMIT 3 , 3; -- 第二页

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,309人围观)

还没有评论,来说两句吧...

相关阅读