数据库

SQL语言的学习

2021-05-20  本文已影响0人  似朝朝我心

SQL语言分五类

DQL语言:全称(Data Query Language)即数据查询语言,主要涉及select语句查询的。


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

上一篇 下一篇

猜你喜欢

热点阅读