语法:
select 查询列表 from 表名;
特点:
1.查询列表可以是:表中的字段、常量值、表达式、函数(会得到函数的返回值)
2.查询的结果是一个虚拟的表格
# 1 查询表中的单个字段
Select 字段 from 表名
# 2查询表中的多个字段
Select 字段,字段 from 表名
# 3 查询表中所有字段
select * from 表名
# 4 查询常量值
select 100;
select ‘john’;
注意:字符型和日期型的常量值必须用单引号包含起来,数值型不需要
# 5 查询表达式
select 100%98;
# 6 查询函数
select Version();
# 7 起别名 便于理解,而且当如果要查询的字段有重名的情况,可以使用别名区分开来
方式一:使用as
select last_name as 姓 , first_name as 名 from employees
方式二:使用空格
select last_name 姓 , first_name 名 from employees
# 8 去重
select distinct 字段 from 表名
# 9. +号的作用
/*
java中的+
1.运算符,两个操作都为数值型
2.连接符,只要有一个操作数为字符串
mysql里面仅仅只有一个功能:运算符
select 100+99;两个都为数值则做加法
select ‘123’+90;其中一方自字符型,试图将字符型数值换成数值型
如果转换成功。则继续做加法,失败则将字符型数值转换成0
select null+0; 只要齐整有一个为null则结果是null
*/
# 10 拼接字符串:将last_name和first_name拼接起来显示名字 注意:null和任何的字段拼接结果都是null
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
USE employees; SELECT CONCAT(`last_name`,' ', `first_name`) AS 姓名 FROM `employees`;
# 11.ifnull 可以用来替换上面的,如果为拼接的时候为null那么就需要ifnull函数来拼接
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
SELECT CONCAT (`last_name`, ' ', IFNULL(`first_name`, "没有名字")) AS 姓名 FROM `employees`;
# 12.where 条件查询
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/* 语法: select 查询列表 from 表名 where 筛选条件 分类: 一、按条件表达式筛选 条件运算符:"> " , "<", "=" , " != <>", ">=","<=" 注:<> 是不等于 二、按照逻辑表达式筛选 逻辑运算符:与或非 and or not 三、模糊查询 like, between and , in ,is null */
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
# 模糊查询 /* like 1.一般和通配符使用 % 任意匹配0到多个字符 _ 任意匹配一个字符 [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符: 转移字符或者 escape '' 转义 between and 1. 使用between and 可以提高语句的简洁渡 2. 包含临界值 in 1.用于去判断某字段的值是否属于in列表中的某一项 2. in列表的值类型必须统一 is null is not null =或者<> 不能用于判断是否等于null is 不能当做 是某个值 这个意义用,也就是不能当做 = 号用 */ # between and -------------------- SELECT `from_date`,`first_name`,salaries.salary FROM `salaries`,`employees` WHERE salaries.salary BETWEEN 300 AND 50000; # in ----------------- SELECT `gender`,CONCAT(`last_name`,' ', `first_name`) FROM `employees` WHERE `gender` IN ('M');
# 13 order by 排序查询 一般放在最后面(limit除外)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/* select * from employees order by 字段 desc/asc 1. asc是升序,desc是降序,如果不写默认是升序 */
13.1 按表达式排序
13.2 按照别名排序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
SELECT *, first_name AS 性 FROM `employees` ORDER BY LENGTH(性) DESC;
13.3 按照函数排序(length)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
SELECT *, first_name AS 性 FROM `employees` ORDER BY LENGTH(性) DESC;
13.4 按照多个字段排序,先按谁排,就放在前面
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
SELECT *, first_name AS 性 FROM `employees` ORDER BY LENGTH(性) DESC , LENGTH(last_name) DESC;