进阶1 基础查询
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
0. 概述
- 语法
类似于编程语言中的打印SELECT 查询列表 FROM 表名;
- 特点
- 查询列表可以是表中的字段、常量值、表达式、函数
- 查询的结果是一个虚拟的表格
#在做查询之前建议先用USE 库名;打开或启用指定的库
USE myemployees;
1. 查询表中的单个字段
SELECT last_name FROM employees;
2. 查询表中的多个字段
SELECT last_name,salary,email FROM employees;
3. 查询表中的所有字段
SELECT * FROM employees;#但是*不能改变字段显示的顺序
#为了避免混淆字段与关键字字段名可以用``引起来
4. 查询常量值常量值并不来自于某个表
#字符型和日期型的常量值必须用单引号''引起来
SELECT 100;
SELECT 'john';#MySQL中不区分字符和字符串一律都用单引号''
5. 查询表达式
SELECT 100%98;#2
6. 查询函数
语法
SELECT 函数名(实参列表); 相当于执行了该函数的函数体并同时查询出对应的返回值
SELECT VERSION();#调用该函数得到它的返回值并显示
7. 为字段起别名方便理解
①便于理解
②如果要查询的字段有重名的情况使用别名可以区分开来
#方式1
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#方式2 省略AS
SELECT 100%98 结果;
SELECT last_name 姓,first_name 名 FROM employees;
#e.x. 如果别名与关键字重名建议加上单引号''
SELECT salary AS 'out put' FROM employees;#SELECT salary AS out put FROM employees;
8. 去重
注在distinct存在的情况下不允许同时查询两个字段
#案例查询员工表中涉及到的所有的部门编号
SELECT DISTINCT department_id FROM employees;#加上关键字distinct
9. +号的作用
- 其他编程语言
①运算符
②连接符/拼接符 - MySQL
仅仅只有一个功能运算符select 100+99;#输出199 两个操作数都为数值型则做加法运算 select '123'+99;#只要其中一方为字符型试图将字符型转换为数值型 如果转换成功则继续做加法运算输出222 如果转换失败则将字符型转换为0 select 'John'+99;#输出99 select null+10;#只要其中一方为null则结果肯定为NULL
#案例查询员工名和姓连接成一个字段并显示为姓名
SELECT last_name+first_name AS 姓名 FROM employees;#输出结果每行都是0
SELECT concat(last_name,' ',first_name) AS 姓名 FROM employees; #使用cancat(),如果其中有一个为null,最后的结果也为NULL
#案例查询所有员工的年薪
SELECT employee_id,concat(first_name,' ',last_name),salary*12 AS "ANNUAL SALARY" FROM employees;
#补充ifnull()函数判断是否为空如果不规定为null时的返回值则为null时返回1不为null时返回0
SELECT IFNULL(commission_pct,0) AS 奖金率,
commission_pct
FROM employees;