SQL简述02——SQL基础知识

SQL的分类

(一)DDL数据定义语言

作用:用于检索或修改数据

命令:

  • SELECT:用于检索数据
  • INSERT:用于添加数据到数据库
  • UPDATE:用于修改数据库数据
  • DELETE:用于删除数据库数据

(二)DML数据操作语言

作用:用于定义数据结构,比如:创建、修改或删除数据库对象,包括:用于创建用户和重建数据库对象

命令:

  • CREATE TABLE:创建表
  • ALTER TABLE:修改表
  • DROP TABLE:删除表
  • CREATE INDEX
  • DROP INDEX

(三)DCL数据控制语言

作用:用于定义用户权限

命令:

  • ALTER PASSWORD
  • GRANT
  • REVOKE
  • CREATE SYNONYM

语句介绍

(一)SELECT

作用:

SELECT语句用于从数据库中选取数据

语法:

  1. SELECT 列名称 FROM 表名称
  2. SELECT * FROM 表名称

补充:

结果集:SELECT语句将取出的数据存储在一个结果表,也称结果集result set

(二)DISTINCT

作用:

DISTINCT用于不重复的显示查询结果集,即重复数据只显示一次

语法:

SELECT DISTINCT 列名称 FROM 表名称

(三)WHERE语句

作用:

WHERE能有条件的从表中选取数据

语法:

SELECT 列名称 FROM 表名称 WHERE 列运算符值

补充:

列运算中的常见运算符:

运算符 含义
= 等于(注意只有一个等号)
!= 或 <> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 模糊搜索
AND 并且
OR 或者
NOT 取反

引号的使用:

  • 数值类型无需加单引号
  • 字符类型要加单引号
  • 别名使用双引号
  • 双引号还被用来将文本放入日期格式

(四)ORDER BY语句

作用:

ORDER BY能给查询的结果集排序

语法:

  1. ORDER BY DESC
  2. ORDER BY ASC

补充:

  1. ORDER BY默认是升序排列(从小到大)
  2. DESC代表降序排列
  3. ASC代表升序排列
  4. Oracle数据库中,null默认为最大值
  5. 指定NULLS FIRST,则表示null值的记录将排在最前(不管是asc,还是desc)
  6. 指定NULLS LAST,则表示null值的记录将排在最后(不管是asc,还是desc)

(五)INSERT语句

作用:

INSERT INTO用于向表中插入数据

语法:

  1. INSERT INTO 表名称 VALUES (值1, 值2…)
  2. INSERT INTO 表名称 (列1, 列2…) VALUES (值1, 值2…)

(六)UPDATE语句

作用:

UPDATE用于更新表中记录

语法:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

(七)DELETE语句

作用:

DELETE用于删除表中的行

语法:

DELETE FROM 表名称 WHERE 列名称 = 某值

进阶语句介绍

(一)SELECT TOP语句

作用:

SELECT TOP子句用于规定要返回的记录的数目,该子句对大型表来说非常有用

语法:

SELECT 列名称 FROM 表名称 WHERE ROWNUM <= number

(二)LIKE操作符

作用:

LIKE操作符用于在WHERE子句中搜索列中指定模式,加上通配符可以实现很多灵活的条件查询

语法:

SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 某值

补充:

通配符:

  • %代表一个或多个字符
  • _代表一个字符

(三)IN操作符

作用:

IN操作符允许你在WHERE子句中规定多个值

语法:

SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1, 值2…)

(四)BETWEEN…AND操作符

作用:

BETWEEN...AND选取介于两个值之间的数据范围内的值,这些值可以是数据、文本或日期

语法:

SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2

补充:

不同数据库对该字段的处理稍有不同,在Oracle数据库中,查找到的数据包含AND字符前后的两个边界数据

(五)别名

作用:

为表名称或列名称指定别名,创建别名主要是为了更强的可读性

语法:

SELECT 列名称 别名 FROM 表名称

(六)SQL连接

作用:

SQL JOIN用于把两个或多个表的行结合起来

语法:

Join的四种类型:

  • JOIN,如果表中至少有一个匹配,则返回行
  • LEFT JOIN,即使右表没有匹配,也从左表返回所有行
  • RIGHT JOIN,即使左表没有匹配,也从右表返回所有行
  • FULL JOIN,只要其中一张表存在匹配,就返回行

(七)UNION操作符

作用:

SQL UNION操作符合并两个或多个SELECT语句的结果,UNION内部的SELECT语句必须拥有相同数量的列,列必须拥有相似的数据类型

同时,每个SELECT语句的列的顺序必须相同

语法:

SELECT 列名称 FROM 表名称
UNION
SELECT 列名称 FROM 表名称

补充:

UNION默认选取不同的值,如果需要允许重复值,使用UNION ALL

SQL函数

(一)分组函数

常用函数 作用
AVG 求平均值
COUNT 返回查询的行数
MAX 返回查询列的最大值
MIN 返回查询列的最小值
SUM 返回查询列的总和

分组函数常结合GROUP BY使用

(二)转换函数

常用函数 作用
TO_DATE 将字符串转换为日期
TO_CHAR 转换日期或数值为字符串
TO_NUMBER 转换字符串为数字

举例:

1
2
3
4
-- 获取系统当前时间
select sysdate from dual
-- 日期格式化
select sysdate ATIME, to_char(sysdate, 'YYYYMMDDHH24MISS') STIME from dual