SQL语言分五类
DQL语言:全称(Data Query Language)即数据查询语言,主要涉及select语句查询的。
- 基础查询
- 条件查询
- 排序查询
- 常见函数
- 分组函数
- 连接查询
- 子查询
- 分页查询
- union联合查询
DML语言:全称(Data manipulation Language)即数据操纵语言,主要用于数据的增、删、改、没有查。
- 插入语句
- 删除语句
- 修改语句
DDL语言:全称(Data Definition Language)即数据定义语言,主要关于库和表的定义,比如删除库表,定义表等。
- 库和表的管理
- 常见数据类型的介绍
- 常见的一些约束
TCL语言:全称(Transaction Control Language)即事务控制语言,主要涉及事务的控制
- 事务和事务处理
DCL语言:全称(Data Control Language)即数据控制语言,主要涉及的是权限控制
基础查询
1.查询表中的单个字段。
SELECT 字段名 FROM 表名;
SELECT stu_class FROM qinfb_class;
2.查询表中的多个字段。
SELECT stu_class,stu_year FROM qinfb_class;
3.查询表中的所有字段。
SELECT * FROM qinfb_class;
4.着重号查询,当数据库中定义的表名,或者表中定义的字段名和mysql数据库定义的关键字同名冲突时,需要启用着重号进行区分,一般情况下有无着重号,没有任何影响。
SELECT `stu_class` FROM qinfb_class;
5.查询表中有无此常量值。
SELECT 2019; //查询整数
SELECT 'Web项目应用';//查询字符串
6.查询计算表达式(加减乘除求余等)。
SELECT 100*2;
SELECT 50%2;
7.查询函数。
SELECT VERSION();
8.给查询字段起别名,便于辨认和理解,使用as关键字。
(使用别名的好处就是当查询的字段名和其他表中字段同名时,使用别名可以进行区分开来。)
SELECT stu_class AS 班级,stu_year AS 学年 FROM qinfb_class;
9.给数据库中不存在的常量值起别名。
SELECT 1+13*2 AS 计算结果为;
10.第二种起别名的方式,用空格,直接省略AS关键字也是可以的。
SELECT stu_class 班级,stu_year 学年 FROM qinfb_class;
11.值得注意的是这种多个空格或字符拼凑的起别名的方式,需要使用双引号括起来。
SELECT stu_class "(class) 班 级 是 :" FROM qinfb_class;
12.去重,去掉重复出现的数据,使用DISTINCT 关键字。
SELECT DISTINCT major_name FROM qinfb_class;
13.+号的拼接作用:数值型字符串+数值型,会自动将数值型字符串转换数值进行运算。
SELECT '123'+13;
14.字符串+数值,字符串会转为0,再和数值进行运算。
SELECT 'name'+123;
15.字符串+字符串,字符串会转为0,所以就是0+0=0
SELECT 'name'+'age';
16.字段+字段的拼接,会导致混乱结果,不会报错。
SELECT stu_class+stu_year FROM qinfb_class;
16.正确的拼接表中的字段需要使用CONCAT()函数,这个函数的功能就是方便我们进行拼接。
SELECT CONCAT(stu_id,stu_pwd) AS "账号 密码" FROM qinfb_student;
17.使用CONCAT()函数拼接字符串。
SELECT CONCAT('A','B','C') AS 拼接的结果为:;
18.SQL语句随意换行不受影响。
SELECT stu_class,stu_pwd
FROM qinfb_student;
SELECT stu_class,
stu_pwd
FROM
qinfb_student;
条件查询
语法:
SELECT 字段
FROM 表面
WHERE 筛选条件
筛选条件分类:
(1)按条件表达式筛选:
使用到的条件运算符:
> 大于
< 小于
!= 不等于
<> 不等于
>= 大于或不等于
<= 小于或等于
(2)按逻辑表达式筛选:
逻辑运算符一般用于拼接条件运算符
使用到的逻辑运算符:
&& 与
|| 或
! 非
标准用法:
and 与(需要2个条件都为true,结果为true)
or 或
not 非
(3)模糊筛选:
like 有没有以...开头的一个字符
between and 在一个大概范围内
in 判断某字段的值是否属于in列表中的某一项
is null 不存在
1.查询工资大于3000的所有员工信息
SELECT *
FROM employees
WHERE salary > 3000;
2.查询不等于这个ID号的所有学生ID。
SELECT
stu_id
FROM
qinfb_student
WHERE
stu_id <> 1903010331;
---------------------------------------------也可以
SELECT
stu_id
FROM
qinfb_student
WHERE
stu_id != 1903010331;
3.查询工资在6000到8000之间的员工名、工资以及奖金
SELECT
employee_name,
salary,
bonus
FROM
employees
WHERE
salary >= 6000 AND salary <= 8000;
4.查询部门变化不是在90到110之间,或者工资高于12000的员工信息
SELECT
*
FROM
employees
WHERE
dep_id < 90 OR dep_id > 110 OR salary > 12000;
----------------------------还可以这样表达
SELECT
*
FROM
employees
WHERE
NOT(dep_id >= 90 AND dep_id <= 110) OR salary > 12000;
5.查询员工名单中包含字符a的所有员工信息。
LIKE是模糊查询的一种,特点:一般和通配符搭配使用
常见的2个通配符:
% 百分号:任意符合条件的多个字符
_ 下划线:任意符合条件的单个字符
SELECT
*
FROM
employees
WHERE
name LIKE '%a%';
6.查询员工id中第一字符为3,第五个字符为9的员工名和工资
SELECT
name,
salary
FROM
employees
WHERE
name LIKE '__3_9%';
7.查询员工编号在100到120之间的员工信息。
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120;
page 33
网友评论