MOOC战德臣数据库课程自用笔记_4_SQL概述与简单SQL语句

SQL

一. SQL概述

集DDL,DML,DCL于一体得数据库语言

1. DDL语句引导词

  • Create(建立)
  • Alter(修改)
  • Drop(撤销)

模式的定义和删除,包括定义 Database,Table,View,Index,完整性约束条件等,也包括定义对象(RowType 行对象,Type 列对象)

2. DML语句引导词

  • Insert
  • Delete
  • Update
  • Select
  1. 各种方式的更新和检索操作,如直接输入记录,从其他 Table (由SubQuery建立)输入
  2. 各种复杂条件的检索,如连接查找,模糊查找,分组查找,嵌套查找等
  3. 各种聚集操作,如平均,求和等,分组聚集,分组过滤等

3. DCL语句引导词

  • Grant(授权)
  • Revoke(收回授权)

安全性控制:授权和撤销授权

二. SQL语句

包括两件事:

  1. 定义数据库和表(使用DDL)
  2. 向表中追加元组(使用DML)

1. DDL(Data Definition Language)

DDL 通常由 DBA 来使用,也有经 DBA 授权后由应用程序员来使用

DDL基本语句
  • 创建数据库:Create Database
  • 创建 DB 中的 Table(定义关系模式):Create Table
  • 定义 Table 及其各个属性的约束条件(定义完整性约束)
  • 定义 View (定义外模式及 E-C 映像)
  • 定义 Index,Tablespace…等(定义物理存储参数)
  • 上述各种定义的撤销和修正
DDL示例

创建 DB

Create Database 数据库名;

创建 Table

Create Table 表名(列名 数据类型[Primary key | Unique][Not null][,列名 数据类型[Not null],...]);

Primary key:主键约束。每个表只能创建一个主键约束
Unique:唯一性约束(即候选键)。可以有多个唯一性约束
Not null:非空约束。是指该列不允许有空值出现

2. DML(Data Manipulation Language)

DML通常由用户或者应用程序员使用,访问经授权的数据库

DML基本语句
  • 向 Table 中追加新的元组:Insert
  • 修改 Table 某些元组中的某些属性:Update
  • 删除 Table 中的某些元组:Delete
  • 对 Table 中的数据进行各种条件的检索:Select
DML示例

向表中追加元组,如果列名省略,则需与定义或存储的列名顺序一致,若列名未省略,需与语句中的列明顺序一致

Insert into 表名[(列名[,列名]...)] 
Values([,],...);

三. 数据库定义的修正与撤销SQL语句

1. 修正基本表

Alter Table 表名 
[Add [[列名 数据类型],...]]
[Drop 完整性约束名]
[Modify [[列名 数据类型],...]];
  • Add :增加新列
  • Drop :删除完整性约束
  • Modify :修改列定义

例子:删除学生姓名必须唯一的约束

Alter Table Student
Drop Unique(Sname);

2. 删除表

Drop Table 表名;

3. 删除数据库

Drop Database 数据库名;

4. 指定/关闭当前使用数据库

use|close 数据库名;

四. 基本查询SQL语句

1. 简单查询

相当于 ∏ 列 名 , . . . , 列 名 ( δ 检 索 条 件 ( 表 名 ) ) \prod_{列名,...,列名}(\delta_{检索条件}(表名)) ,...,(δ()),检索条件注意运算符优先级以及 ( ) () () 的使用

Select 列名[[, 列名]...] 
From 表名
[Where 检索条件];

2. 查询结果使用 Distincet 去重复记录

Select Distinct 列名[[, 列名]...] 
From 表名
[Where 检索条件];

3. 查询结果使用 Order By 排序

按照指定列名进行排序,asc 或者省略不写为升序,desc 为降序

Select 列名[[, 列名]...] 
From 表名
[Where 检索条件]
Order By 列名 [asc|desc];

4. 模糊查询

使用 Like 或者 Not Like 关键字

Select 列名[[, 列名]...] 
From 表名
Where [Not] Like "匹配字符串";

匹配规则:

  • % :匹配0个或多个字符
  • _ :匹配任意单个字符
  • \ :转义字符,将一些特殊字符当作普通字符来看待

5. 连接查询

相当于 ∏ 列 名 , . . . , 列 名 ( δ 检 索 条 件 ( 表 名 1 × 表 名 2 × . . . ) ) \prod_{列名,...,列名}(\delta_{检索条件}(表名1×表名2×...)) ,...,(δ(1×2×...))

Select 列名[[, 列名]...] 
From 表名1, 表名2,...
Where 检索条件;

多表连接时,两个表中的属性名相同,则需要采用 表名.属性名 方式来限定该属性是属于哪个表

6. as 重名处理

Select 列名 as 列别名 [[, 列名 as 列别名]...] 
From 表名1 as 表别名1, 表名2 as 表别名2,...
Where 检索条件;

as 可以省略

7. 与 Insert , DeleteUpdate 结合的嵌套子查询

批数据插入操作

Insert into 表名[(列名[, 列名]...)]
子查询;

删除一定查询条件数据

Delete From 表名 
Where 属性名 in 
(子查询);

更新指定要求的数据

Update 表名
Set 列名 = 表达式|(子查询)
	[[, 列名 = 表达式|(子查询)]...]
[Where 条件表达式];
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哇咔咔负负得正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值