一、基础查询
1、语法
select 查询列表
from 表名;
2、特点
(1)查询列表可以是:表中的字段,常量值、表达式、函数;
(2)查询的结果是一个虚拟的表格;
3、SQL 语句特点
(1)SQL 语言大小写不敏感;
(2)SQL 可以写在一行或者多行;
(3)关键字不能被缩写也不能分行;
(4)各个子句一般要分行写;
(5)使用缩进提高语句的可读性;
二、案例
1、查询表中的单个字段
SELECT last_name FROM employees;
2、查询表中的多个字段(选择特定的列)
SELECT last_name, salary, email FROM employees;
3、查询表中的所有字段
方式一:使用 * 号代替所有列的字段
SELECT * FROM employees;
方式二:依次列出表中所有字段
SELECT `employee_id`,`first_name`,`last_name`,`email` FROM employees;
注意: ` 为着重号,为了区分关键字与字段的不同。
4、查询常量值(数值、字符串)
SELECT 100;
SELECT 'Tony';
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要
5、查询表达式
SELECT 100 * 98;
6、查询函数
SELECT VERSION();
7、查询,为字段起别名
为了方便可以重命名一个列,便于显示或计算,别名需要紧跟列名,也可以在列名和别名之间加入关键字 "AS",别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
方式一:使用 AS
SELECT 100%98 AS 结果;
SELECT last_name AS 姓, first_name AS 名 FROM employees;
方式二:使用空格
SELECT last_name 姓, first_name 名 FROM employees;
使用别名的好处:
① 便于理解;
② 如果要查询的字段有重名的情况,使用别名可以区分开来;
案例:查询 salary,显示结果为out put。如果别名有空格,#等特殊符号,别名需要用双引号引起来:
SELECT salary AS "out put" FROM employees;
8、去重:在字段前面使用 distinct 去重关键字
案例:查询员工表中涉及到的所有的部门编号
SELECT DISTINCT `department_id` FROM `employees`;
9、+ 号的作用
MySQL 中的 + 号,仅仅只有一个功能:运算符
select 100 + 90; 当两个操作数都为数值型,则做加法运算
select '123' + 90; 只要其中一方为字符型,试图将字符型数值转换成数值型,如果转换成功,则继续做加法运算;
select 'John' + 90; 如果转换失败,则将字符型数值转换成0
select null + 90; 只要其中一方为 null,则结果肯定为 null
案例:查询员工名 和 姓 连接成一个字段,并显示为 姓名
SELECT
last_name + first_name AS 姓名
FROM
`employees` ; # 0,转换成数字都为 0
上面的这种情况是不能拼接,使用 concat() 函数可以进行拼接:
SELECT CONCAT('a', 'b', 'c') AS 结果; # abc
10、IFNULL 函数:判断是否非空
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
SELECT IFNULL(`commission_pct`, 0) AS 奖金率, `commission_pct` FROM `employees`
第一个参数是要判断的值,第二个是默认值,当第一个值为 null 时,就会返回默认值,否则返回本身的值;
11、is null 函数:判断是否为空
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0