码迷,mamicode.com
首页 > 数据库 > 详细

第20讲:SQL语法与关键知识点

时间:2020-05-06 19:56:33      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:基本   判断   区分   员工信息   group   删除表   设定   ast   多少   

什么是SQL

SQL 的全称为 Structured Query Language 结构化查询语言,它是一个数据领域的 DSL,也就是说它是一种特殊的构建语法,可以用来支持对数据领域的各种通用操作

SQL的分类

技术图片
SQL按照用途的不同可以分为四大类:
1.DDL,DDL 是一种数据定义语句,里面主要包含库表创建的语句;
2.DML,DML 是数据操作的语法,里面包含增删改查的基本操作语句;
3.DCL,DCL 是数据库的控制语句,主要用于对一些权限的设定;
4.TCL,TCL 包含一些关于树的相关处理语句

查询语句

基本查询语句

SELEST?*FROM?titles;

技术图片

我们还可以对单独的字段进行查询,比如查询某个title字段的内容,可以通过 selest title 查询,如果有多个字段,你还可以使用逗号进行隔开

select?title from?titles;

再一个是条件查询,比如 select * from titles,你可以指定条件比如 where title=‘Engineer‘,这里注意 where 条件是很关键的

SELECT * FROM `titles` where title=‘Engineer‘

还有就是排序,查询出来的数据可以根据emp_no进行排序,通常可以使用 order 语句,by 后面可以添加排序的字段和升降序(默认是升序)

SELECT * FROM `titles` order by emp_no;

然后是分页,很多网站在查询数据时都涉及分页,分页其实就是使用了一个 limit,我们可以使用 offset 指定分页的偏移量是多少。这里显示的是第5行到第14行的数据

SELECT * FROM `titles` limit 10 OFFSET 5;

技术图片
最后是去重,如果表中的数据是有重复,就可以使用 distinct 来完成对数据的去重操作,以上便是基本的查询语句

SELECT distinct gender FROM employees;

技术图片

条件查询语句

在查询出结果之后,有的时候我们就需要在结果中筛选一个特定条件的子集,这个时候就需要使用条件查询,条件查询语句就是在 select 语句之后,甚至是 updata、delete 语句之后,添加上一个至关重要的 where 语句,它可以限定一些你想要的条件,那么条件都包含哪些呢?
比如比较查询的值是大于多少、小于多少等等,或者说我的条件是一个字符串,那么我们可以使用一些通配符对字符串进行通配

SELECT * FROM employees WHERE emp_no > 10001;

除此之外,还可以使用一个范围的限定,比如说筛选某个价格在 10 元到 20 元之间产品,就可以使用 between and 语句来完成。再有一个就是对子集的限定,可以使用 in 结构,将某一个字段包含在一个特定的子集内,子集里面即可以是一个单列的数据项,也可以是另外的一个数据结构

SELECT * FROM employees WHERE emp_no BETWEEN 10002 AND 10006;
SELECT * FROM employees WHERE emp_no IN (10002, 10006);

最后就是逻辑关系,当我们需要多个条件匹配到一起的时候,就需要使用 and、or 或者是 not 语句来完成条件的各种复杂的关系判断

SELECT * FROM employees WHERE emp_no IN (10002, 10006) AND gender=‘M‘;

聚合查询语句

聚合查询在我们的工作中也非常有用,通常它用来统计一些特定数据,比如说统计员工表中男女员工的人数,你就可以使用 group by 来对某一个字段进行分类,从而计算表中的一些相关数据
在这里举一个简单的例子,我们去查询员工信息表,你可以看到在表中有性别项、我们根据性别统计这家公司里男女员工到底有多少人

SELECT COUNT(gender), gender FROM employees GROUP BY gender;

技术图片
执行完之后你可以看到这家公司男女员工总共有多少人,当然我们还可以限定一定的条件,这个时候就不能再使用 where了,因为它是限定 group by 的,所以为了区分就有了一个新的关键词 having,having 可以指定到底是哪一个子分类获取数据,以上聚合查询

插入语句

INSERT INTO `employees`(`emp_no`, `birth_date`, `first_name`, `last_name`, `gender`, `hire_date`) VALUES (999,‘1991-03-01‘,‘beck‘,‘zhai‘,‘M‘,‘2020-01-01‘);

更新语句

UPDATE employees SET first_name="li", last_name="ming" WHERE first_name="beck";

删除语句

DELETE FROM employees;   #删除整个表
DELETE FROM employees WHERE first_name="li";   #删除表里first_name为"li"的数据

第20讲:SQL语法与关键知识点

标签:基本   判断   区分   员工信息   group   删除表   设定   ast   多少   

原文地址:https://www.cnblogs.com/my_captain/p/12838274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!