SQL的快速入门(基础篇:简单的增删改查)

导读:本篇文章讲解 SQL的快速入门(基础篇:简单的增删改查),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言:本篇主要简单概述了什么SQL,SQL里面又有哪些分类,如何进行简单的增删改查以及简要阐述SQL的一些其他功能,为基础篇。更深入的探讨另外有,进阶篇,和面试常问的更实用的SQL调优篇。

进阶篇:SQL的进阶(更深入学习DQL)_心有谦谦结-CSDN博客

一、SQL是什么?

SQL(Structured Query Language)结构化查询语言,是一种用来操作数据库的特定语法,是关系型数据库的标准语言。

二、SQL包含六个部分:

1、DQL 数据查询语言

注:在数据库中,SQL语句大小写不敏感,也就是说select 和 SELECT 作用都是一样的。

>> 下面对如何操作员工表emp进行一定了解:

EMPNO 员工编号       ENAME 姓名           JOB 职位 

HIREDATE 入职时间      SAL 工资       COMM  奖金

SQL的快速入门(基础篇:简单的增删改查)

(1)简单查询

1)含义:从哪个表查询出哪些列的数据,* 星号表示查询所有的列

语法格式:SELECT  {*, column [alias],…}  FROM table_name [where …]

示例:

①查询出所有的员工的所有信息

SELECT * FROM emp

②查询所有员工的名字和工作

SELECT ENAME, JOB FROM emp

2)消除结果中重复的数据 DISTINCT 

语法格式:SELECT DISTINCT 列名,… FROM  table_name

示例:查询emp表中有什么工作(因为很多人做着相同的工作,这时就会需要消除重复)

SELECT DISTINCT JOB FROM emp

3)在加减乘除的运算上

对于NUMBER型的数据可以加减乘除,和日常数学规则差不多 —> 加 +  减 –  乘 *  除 /

①乘除优先加减

②同级运算从左到右

③带括号()优先级最高

示例:

①查询员工一个月的所有收入(这就包括了基本工资和奖金)

SELECT ENAME, SAL + COMM  FROM emp

SQL的快速入门(基础篇:简单的增删改查)

4)取别名:用关键字 AS(AS是可以省略的)

1* 有这么几个作用:

  • 改变表的名字
  • 用于表示计算结果的含义
  • 作为列的别名

2* 之前的查询结果可以取个别名:

SELECT ENAME, SAL + COMM  AS 月收入 FROM emp

SQL的快速入门(基础篇:简单的增删改查)

AS 关键字,一般用来给列 或 表取别名

也可以省略AS:

SELECT ENAME, SAL + COMM   月收入 FROM emp  e

3* 特别注意:使用别名时,要熟知SQL的执行顺序

SELECT语句执行顺序: 先执行FROM—>接着执行WHERE—>再执行SELECT—>最后执行ORDER BY

所以,这样的SQL是错的,SELECT ENAME AS name FROM emp  WHERE name = ‘坦克’

(2)过滤查询

1)使用比较运算符过滤

不等于 != 

不等于 <>

等于 = 

大于 >

小于 <

大于或等于 >=

小于或等于 <=

示例:

①查询工资大于1000的所有员工信息

SELECT * FROM emp WHERE SAL > 1000

②查询工作不是战士的所有员工信息

SELECT * FROM emp WHERE JOB != ‘战士’

 注:字符串和日期要用单引号

2)逻辑运算符

AND(或&&)

OR(或||)

NOT(或!)

示例:

①查询工资在1000~2000(包括1000和2000)的员工

SELECT * FROM emp WHERE SAL >= 1000 AND SAL <= 2000
SELECT * FROM emp WHERE SAL > 1000 && SAL < 2000

注意:到这里了,综合一下以上的优先级:

括号 > 所有的比较运算符 > NOT > AND > OR

3)范围查询 BETWEEN 是个闭区间

语法格式:SELECT <columnList> FROM table_name WHERE 列名 BETWEEN minvalue AND maxvalue

示例:上面的 -> ①查询工资在1000~2000(包括1000和2000)的员工 <- 还可以这样写

SELECT * FROM emp WHERE SAL BETWEEN 1000 AND 2000

②查询出所有在1981年雇佣的雇员信息。
SELECT * FROM emp WHERE hiredate  BETWEEN ‘1981-01-01’ AND ‘1981-12-31’

4)集合查询

使用IN运算符,判断列的值是否在指定的集合中

语法格式::SELECT <columnList> FROM table_name WHERE IN  (值1,值2….)

示例:

①查询工作为射手,辅助,战士的所有员工

SELECT * FROM emp WHERE JOB IN (‘射手’,’辅助’,’战士’)

②查询工资为950,3000的所有员工

SELECT * FROM emp WHERE SAL IN (950, 3000)

5)空值查询  IS NULL

示例:查询奖金为空的员工

SELECT * FROM emp WHERE COMM IS NULL

6)模糊查询

使用LIKE运算符执行通配查询,查询条件可包含文字字符或数字

  • %通配符:可表示任意个数的任意字符
  • _通配符:可表示一个任意字符

示例:

①查询名字带有 ‘大’ 的所有员工 
SELECT * FROM emp WHERE ENAME LIKE ‘%大%’

SQL的快速入门(基础篇:简单的增删改查)

②查询名字带有’赵丽?’的所有员工
SELECT * FROM emp WHERE ENAME LIKE ‘赵丽_’

SQL的快速入门(基础篇:简单的增删改查)

 ③查询名字带有’赵丽??’的所有员工
SELECT * FROM emp WHERE ENAME LIKE ‘赵丽__’

SQL的快速入门(基础篇:简单的增删改查)

注:通配符:用来实现匹配部分的特殊字符

(3)结果集排序

先有结果数据,再使用ORDER BY排序,ORDER BY 子句出现在SELECT语句的最后。

ASC : 升序(可以省略,默认不写就是升序)

DESC: 降序

语法格式:SELECT <selectList> FROM table_name WHERE 条件 ORDER BY 列名1 [ASC/DESC],列名2 [ASC/DESC]…;

示例:

①查询到所有员工信息后,按工资降序

SELECT * FROM emp ORDER BY SAL DESC

SQL的快速入门(基础篇:简单的增删改查)

②查询工作是‘射手’的员工后,按工资降序

SELECT * FROM emp WHERE JOB = ‘射手’ ORDER BY SAL DESC

SQL的快速入门(基础篇:简单的增删改查)

(4)分页查询

语法格式:LIMIT ?, ?

参数1:开始页

参数2:每页多少条数据

示例:

SELECT * FROM emp  LIMIT 0, 5

SQL的快速入门(基础篇:简单的增删改查)

SELECT * FROM emp  LIMIT 0, 10
SQL的快速入门(基础篇:简单的增删改查)

(5)聚合函数(分组函数,统计函数,聚集函数)

作用于一组数据,并对一组数据返回一条记录。

1)COUNT:统计结果记录数  (COUNT(*))

2)MAX:  求最大值

3)MIN:  求最小值

4)SUM: 求和

5)AVG:  求平均值

———————————————————————————-

示例:

1)COUNT:统计结果记录数  (COUNT(*))

①COUNT(column_name) 函数返回指定列的有值的数目

SELECT COUNT(SAL)FROM emp

SQL的快速入门(基础篇:简单的增删改查)

②COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目

SELECT COUNT(DISTINCT SAL)FROM emp

SQL的快速入门(基础篇:简单的增删改查)

2)MAX:  求最大值

查询基本工资最高的员工

SELECT *, MAX(SAL) FROM emp

SQL的快速入门(基础篇:简单的增删改查)

3)MIN:  求最小值

查询基本工资最低的员工

SELECT *, MIN(SAL) FROM emp

4)SUM: 求和

查询一个月老板总共要发多少基本工资
SELECT SUM(SAL) FROM emp

SQL的快速入门(基础篇:简单的增删改查)

【注意】SUM(SAL)中不能加”,不然会被认为是字符串,这一点在实际开发中的SQL拼接中最容易出错。

5)AVG:  求平均值

查询整个公司员工的平均工资

SELECT AVG(SAL) FROM emp

SQL的快速入门(基础篇:简单的增删改查)

2、DML 数据库操作语言

(1)保存操作

含义:把哪些值插入到哪个表的哪些列中

语法格式:INSERT INTO table_name (column1,column2,column3…) VALUES  (value1,value2,value3…);

注意:要插入的列和值一定要一一对应.(时间和字符串一定要使用单引号)

示例:

在emp表中新增一条数据,姓名是李白,工作是刺客,入职时间是2020-10-12,工资保密,奖金100

INSERT INTO emp (ENAME, JOB, HIREDATE, SAL, COMM) VALUES (‘李白’, ‘刺客’, ‘2020-10-12’, null, 100)

注:

①列名与值,个数和位置都要一一对应,对不想设置值的列可以不写,但是写了至少要给默认值null占位。

比如ENAME —— “李白”,SAL —— null

②时间和字符串一定要加单引号 ”

(2)更新操作

含义:更新哪个表设置哪些列的等于哪些值条件是什么

语法格式:UPDATE  table_name SET  columnName = value [, columnName = value, …] [WHERE  condition];

注:where子句作为条件,如果省略了where子句,则全表的数据都会被修改。

示例:

① 修改emp表中的工作为辅助,工资为0(注意不加where条件,即视为修改表中的所有数据)

UPDATE emp SET JOB = ‘辅助’ , SAL = 0 

②修改emp表中名字叫百里玄策的工作为辅助,工资为0(则只会修改名字为百里玄策的数据)

UPDATE emp SET JOB = ‘辅助’, SAL = 0  WHERE ENAME = ‘百里玄策’

(3)删除操作

含义:从哪个表中删除数据

语法格式:DELETE FROM tablename [WHERE condition];

示例:

①从emp表删除数据(注意如果没有where条件即删除该表的全部数据,谨慎!!!)

DELETE FROM emp

②从emp表删除名字叫 吕布 的数据

DELETE FROM emp WHERE ENAME = ‘吕布’

3、TPL 事务处理语言

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

4、DCL 数据控制语言

它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

5、DDL 数据定义语言

其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

6、CCL 指针控制语言

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117808.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!