基础查询
语法:select 被查询的东西 from 表名;
特点:
1)被查询的东西可以是:表中的字段、常量、常量值、表达式、函数
2)查询的结果是一个虚拟的表格
如何导入数据:
1)选中一个数据库,右击‘导入‘-‘执行SQL脚本‘;
2)打开以后点击‘浏览‘ - ‘执行‘ - ‘完成‘;
3)完成以后刷新左边栏,查看数据内容。
1. 如何查询表中的单个字段
实例1:
请查询 employees 表中的last_name
SELECT last_name; |
(会报错,因为系统不认识你是谁)
SELECT last_name FROM employees ; |
(执行成功)
2. 如何查询表中的多个字段
实例1:
请查询 employees 表中的job_id和salary
SELECT job_id, salary FROM employees ; |
(执行成功)
3. 查询表中的所有字段
例1:
请查询 employees 表中所有字段
SELECT * FROM employees; |
这里的 * 指全部
弊端:使用*查询,被查询的结果顺序不可以调换,相对而言不够灵活
SELECT salary, last_name, first_name, job_id, manager_id, hiredate FROM employees ; |
修改/调整格式:选中需要的数据,F12/FN+F12/CTRL+12/shift+fn+f12
弊端:书写太麻烦,我不认识英文,我懒得打英文
例1:
查询employees表中所有字段
SELECT `salary`, `phone_number`, `employee_id`, `first_name`, `last_name`, `email`, `job_id`, `commission_pct`, `manager_id`, `department_id`, `hiredate` FROM `employees` ; |
例2:
请你们把jobs的表内容按照3-4-1-2的顺序查看
SELECT min_salary, `max_salary`, job_id, job_title FROM jobs ; |
按照顺序查看表中的全部内容
SELECT * FROM jobs;
``:着重号,其实这个是可以去掉的;着重号代表的是:这是一个字段名。
什么时候会用到着重号呢?
例1:
SELECT NAME
(这个name不是字段名,这是一个关键字,这个字段名就叫name)
例2:
查询select表中的select
SELECT SELECT FROM SELECT;
-- 查询 列名(SELECT) SELECT
SELECT `select` FROM SELECT;
SELECT INT FROM INT;
-- 查询int表中的int字段
SELECT NAME FROM 表名;
(这里没有用``,它会认为这个name他是一个关键字本身,阅读性比较差)
4. 起别名 ‘AS’ 和 ‘空格’
-- 方便去理解
SELECT nanjing AS 南京;
1)字段名一上来是英文,有些英文不好的不方便理解
2)字段名是运算过程,我就不太理解它的意思,那么我们可以给他一个别名,方便理解
5. 查询常量
数值:
select 100;
(它没有来自于某个表,它显示的字段名就是默认为它本身)
字符:
SELECT baby; (错误,没有一个叫做baby的字段)
SELECT ‘baby‘; (没有报错,baby被引用,变成了一个常量值)
SELECT ‘old baby‘;
6. 查询表达式
SELECT 1+1; -- 2 SELECT 88*999; -- 87912 |
例1:
查询100除以98的余数
SELECT 100%98; -- 2
-- 给它添加别名
方法①:
SELECT 100%98 AS 结果;
方法②:
SELECT 100%98 结果;
例2:
查询`employees`表中的salary,显示别名结果为out man
SELECT salary AS OUT MAN FROM employees ; |
(报错了,原因是别名中有特殊符号,空格,‘#‘)
(解决的办法就是给他加上双引号)
SELECT salary AS "OUT MAN" FROM employees ; |
好处:
- 便于理解
- 如果要查询的字段有重名的情况,可以使用别名来分开
7. 查询函数
AVG() SUM() VERSION()...
例1:
用函数查询MySQL的版本
SELECT VERSION(); -- 8.0.13
SELECT AVG(); -- 结果错误,因为没有值
SELECT SUM(); -- 错误,没有值,不能求和
例2:
用sum函数求35*11-14+36的和
SELECT SUM(35*11-14+36);
8. + 号的作用
例1:
查询员工名和姓连接成一个字段,并显示为姓名
SELECT first_name + last_name AS 姓名 FROM `employees` ; |
(没有报错,但是结果不是想象中的结果)
(原因在于+号,这个+号和我们想象中的+号不一样)
注意:MySQL中的+号,仅仅只有一个功能,就是运算符
情况①
SELECT 100+90;
左右两边都是数值型,可以执行,两个操作数都为数值,做加法运算
情况②
SELECT ‘123‘+99;
如果其中一方为字符型,它会试图将字符型数值转换成数值型
如果转换成功,则继续做加法运算
情况③
SELECT ‘bb‘+99;
转换失败,则将字符型数值转换成0,再做加法运算
例2:
查询员工名和姓连接成一个字段,并显示为姓名
SELECT first_name + last_name AS 姓名 FROM `employees` ; |
9. concat函数
将两个字段进行’拼接‘,用到了一个函数:concat函数
语法:concat(str1,str2,...)
使用concat实现连接
继续上面的练习:
SELECT CONCAT(first_name, last_name) AS 姓名 FROM employees ; |