DQL:查询表中的记录
*select * from 表名;
1.语法:
- select
字段列表 - from
表名列表 - where
条件列表 - group by
分组之后的条件 - order by
排序 - limit
分页限定
2.基础查询
2.1 多个字段的查询
- select 字段名1,字段名2… from 表名
注意:
如果查询所有字段,则可以使用*来代替字段列表。
2.2 去除重复
- distinct
2.3 计算列
- 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
- ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
*表达式1:哪个字段需要判断是否为null
*如果该字段为null后的替换值。
2.4 起别名
- AS :AS也可以省略
CREATE TABLE student(
id INT,-- 编号
NAME VARCHAR(20),-- 姓名
age INT,-- 年龄
sex VARCHAR(5),-- 性别
address VARCHAR(100),-- 地址
math INT, -- 数学
english INT -- 英语
);
INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES (1,'马云',55,'男','
杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),(3,'马景涛',55,'男','香港',56,77),(4,'柳岩
',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',96,NULL),(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65);
DROP TABLE student;
SELECT * FROM student;
-- 查询 姓名 和 年龄
SELECT
NAME, -- 姓名
age -- 年龄
FROM
student; -- 学生表
SELECT * FROM student;
SELECT address FROM student;
-- 去除重复的结果集
SELECT DISTINCT address FROM student;
SELECT NAME ,address FROM student;
-- 计算 math 和 english 分数之和
SELECT NAME,math,english,math + english FROM student;
-- 如果有null 参与的运算,计算结果都为null
SELECT NAME,math,english,math + IFNULL(english,0) FROM student;
-- 起别名
SELECT NAME,math,english,math + IFNULL(english,0) AS 总分 FROM student;
SELECT NAME 姓名,math 数学,english 英语,math + IFNULL(english,0) 总分 FROM student;