DQL——数据查询语言
查询不会修改数据库表记录
一、 基本查询
1、字段(列)控制
(1) 查询所有列
SELECT * FROM 表名;
SELECT * FROM emp;
–> 其中“*”表示查询所有列
(2)查询指定列
SELECT 列1 [, 列2, … 列N] FROM 表名;
SELECT empno, ename, sal, comm FROM 表名;
(3)完全重复的记录只一次
当查询结果中的多行记录一模一样时,只显示一行。一般查询所有列时很少会有这种情况,但只查询一列(或几列)时,这总可能就大了!DISTINCT(去除重复)
SELECT DISTINCT * | 列1 [, 列2, … 列N] FROM 表名;
SELECT DISTINCT sal FROM emp;
–> 保查询员工表的工资,如果存在相同的工资只显示一次!
(4)列运算
A、数量类型的列可以做加、减、乘、除运算
SELECT sal*1.5 FROM emp;
SELECT sal+comm FROM emp;
select empno,ename,job,ifnull(mgr,'BOSS'),hiredate,sal,comm,deptno from emp;
select *,sal+ifnull(comm,0) from emp;
如果数据中有NULL ,需要运算时,可以用IFNULL 替换。
B、字符串类型可以做连续运算
SELECT CONCAT(’$’, sal) FROM emp;
select CONCAT(ename,job) from emp;
select CONCAT('我叫',ename,'、我的工作是',job) from emp;
C、转换NULL值
有时需要把NULL转换成其它值,例如com+1000时,如果com列存在NULL值,那么NULL+1000还是NULL,而我们这时希望把NULL当前0来运算。
SELECT IFNULL(comm, 0)+1000 FROM emp;
–> IFNULL(comm, 0):如果comm中存在NULL值,那么当成0来运算。
D、给列起别名
你也许已经注意到了,当使用列运算后,查询出的结果集中的列名称很不好看,这时我们需要给列名起个别名,这样在结果集中列名就显示别名了
SELECT IFNULL(comm, 0)+1000 AS 奖金 FROM emp;
–> 其中AS可以省略(空格即可)
select CONCAT('我叫',ename,'、我的工作是',job) as 描述 from emp;
select ename as 姓名,job as 工作 from emp;
select ename 姓名,job 工作 from emp;