DDL(数据定义语言)

  1. 数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象。用于操纵表结构的数据定义语言命令有:
  • create— 创建(在数据库中创建新表、表视图或其他对象)
  • alter— 更改 (修改现有的数据库对象,如表)
  • drop— 删除 (删除数据库中的整个表、表或其他对象的视图)

    DML(数据操纵语言)

    数据操纵语言用于检索、插入和修改数据,数据操纵语言是最常见的SQL命令。
    数据操纵语言命令包括:

  • insert— 插入 (创建记录)

  • delete— 删除 (删除记录)
  • update— 修改(修改记录)
  • select— 检索 (从一个或多个表检索某些记录)

    DCL(数据控制语言)

    数据控制语言为用户提供权限控制命令。
    用于权限控制的命令有:

  • crant— 授予权限

  • revoke— 撤销已授予的权限

SQL 语法规则


  • SQL语句总是以关键字开始,如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。
  • SQL语句以分号结尾。
  • SQL不区分大小写,意味着update与UPDATE相同。

运行顺序

  • select子句最后运行,其他子句按书写顺序运行

SQL语法

SELECT(选择)

select 字段 from 表;
当为多列时,字段之间用【,】逗号隔开
当为所有列时,用【*】代替即可

  1. SELECT CustomerName, City FROM Customers;

SELECT DISTINCT(选择不同)

select distinct 字段 from 表;
用于仅返回不同的(different)值

  1. SELECT distinct Country FROM Customers;

WHERE 条件子句

用于过滤记录或提取满足指定标准的记录

  1. SELECT * FROM Customers
  2. WHERE Country='Mexico' OR PostalCode='05021'
运算符 描述
= 等于
<> 不等于。 注意:在某些版本的SQL中,这个操作符可能写成!=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 为列指定多个可能的值

AND,OR , NOT

  • 如果由AND分隔的所有条件为TRUE,则AND运算符显示记录。
  • 如果使用AND运算符组合N个条件。对于SQL语句执行的操作(无论是事务还是查询),所有由AND分隔的条件都必须为TRUE。
  • 如果由OR分隔的任何条件为真,则OR运算符显示记录。
  • 如果使用OR运算符组合N个条件。对于SQL语句执行的操作(无论是事务还是查询),OR分隔的任何一个条件都必须为TRUE。
  • 如果条件不为TRUE,则NOT运算符显示记录。 案例:选择来自”Customers” 的国家不是 “Germany” 且不是 “USA”的所有字段
    1. SELECT * FROM Customers
    2. WHERE NOT Country='Germany' AND NOT Country='USA';

ORDER BY (按关键字排序)

用于按升序(ASC)或降序(DESC)对结果集进行排序
默认情况下按升序排序记录
案例:多列排序

  1. select * from customers
  2. order by country asc,city desc;


INSERT INTO (在表中插入)

主键字段问题,目标与实际字段数不符
为表中的所有列添加值

  1. INSERT INTO table_name
  2. VALUES (value1, value2, value3, ...);

仅在指定的列中插入数据

  1. INSERT INTO Customers (CustomerName, City, Country)
  2. VALUES ('Cardinal', 'Stavanger', 'Norway');

使用另一个表填充一个表

  1. INSERT INTO first_table_name [(column1, column2, ... columnN)]
  2. SELECT column1, column2, ...columnN
  3. FROM second_table_name

NULL (空值)

NULL 值与 0 或者包含空格(spaces)的字段是不同的
检测是否空值则需要运用IS NULL或IS NOT NULL运算符

UPDATE(更新表中的记录)

如果您省略WHERE子句,所有记录将被更新!
为第一个客户(CustomerID = 1)更新了“CustomerName”和“City”

  1. UPDATE Customers
  2. SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
  3. WHERE CustomerID = 1;

Delete(删除表中的记录)

如果省略了WHERE子句,表中所有记录都将被删除!


运算符

算术运算符

假设变量 a 的值是:10,变量 b 的值是:20,以下为各运算符执行结果:

运算符 描述 例子
+ 加法,执行加法运算。 a + b 得到 30
- 减法,执行减法运算。 a - b 得到 -10
* 乘法,执行乘法运算。 a * b 得到 200
/ 用左操作数除右操作数。 b / a 得到 2
% 用左操作数除右操作数并返回余数。 b % a 得到 0

比较运算符

假设变量 a 的值是:10,变量 b 的值是:20,以下为各运算符执行结果:

运算符 描述 例子
= 检查两个操作数的值是否相等,如果是,则条件为真(true)。 (a = b) is false.
!= 检查两个操作数的值是否相等,如果值不相等则条件为真(true)。 (a != b) is true.
<> 检查两个操作数的值是否相等,如果值不相等则条件为真(true)。 (a <> b) is true.
> 检查左操作数的值是否大于右操作数的值,如果是,则条件为真(true)。 (a > b) is false.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件为真(true)。 (a < b) is true.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真(true)。(大于等于) (a >= b) is false
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真(true)。(小于等于) (a <= b) is true.
!< 检查左操作数的值是否不小于右操作数的值,如果是,则条件变为真(true)。(不小于) (a !< b) is false.
!> 检查左操作数的值是否不大于右操作数的值,如果是,则条件变为真(true)。(不大于) (a !> b) is true.

逻辑运算符

运算符 描述
ALL ALL运算符用于将值与另一个值集中的所有值进行比较。
AND AND运算符允许在SQL语句的WHERE子句中指定多个条件。
ANY ANY运算符用于根据条件将值与列表中的任何适用值进行比较。
BETWEEN BETWEEN运算符用于搜索在给定最小值和最大值内的值。
EXISTS EXISTS运算符用于搜索指定表中是否存在满足特定条件的行。
IN IN运算符用于将值与已指定的文字值列表进行比较。
LIKE LIKE运算符用于使用通配符运算符将值与类似值进行比较。
NOT NOT运算符反转使用它的逻辑运算符的含义。 例如:NOT EXISTS, NOT BETWEEN, NOT IN等等,这是一个否定运算符。
OR OR运算符用于组合SQL语句的WHERE子句中的多个条件。
IS NULL IS NULL运算符用于将值与NULL值进行比较。
UNIQUE UNIQUE运算符搜索指定表的每一行的唯一性(无重复项)。

否定条件运算符


表达式

是计算值的一个或多个值、运算符和SQL函数的组合,类似于公式

布尔表达式

基于匹配单个值获取数据

数值表达式

用于在任何查询中执行任何数学运算

日期表达式

返回当前系统日期和时间值


USE 语句

用于选择SQL架构中的任何现有数据库,数据库名称在RDBMS中必须是唯一的