数据库知识点第四章SQL语言总结

 

第一节     SQL语言概述    

SQL语言的特点    

SQL语言的功能    

第二节     SQL支持的数据类型    

数据类型    

第三节    数据定义功能    

数据库    

数据库创建    

数据库修改    

数据库删除    

表    

表的创建    

表级完整性约束    

表的修改    

表的删除    

第四节    数据查询功能    

单表查询    

Where 查询条件    

聚合函数    

多表查询    

内连接    

自连接    

外连接    

子查询    

基于集合的测试    

比较查询    

带有Any 或all的子查询    

带有exists的子查询    

查询集合运算    

第五节    视图    

创建视图    

优点    

第六节    数据更改功能    

数据插入    

单行插入    

多行插入    

数据更新    

无条件更新    

有条件更新    

数据删除    

无条件删除    

有条件删除    

  • SQL语言概述

SQL(structured query language)语言全称是结构化查询语言

它是一种在关系型数据库中定义和操纵数据的标准语言

SQL语言的特点

  1. 一体化
  2. 高度非过程化
  3. 面向集合的操作方式
  4. 提供多种方式使用
  5. 语言简洁

 

SQL语言的功能

  1. 数据定义
  2. 数据查询
  3. 数据操作
  4. 数据控制

 

  • SQL支持的数据类型

数据类型

  1. 数值型
  2. 日期时间型
  3. 字符串型
  4. 其他类型

 

  • 数据定义功能

数据库

数据库创建

Create database <数据库名>

数据库修改

Alter database <数据库名>

数据库删除

Drop database <数据库名>

表的创建

Create table <表名>

所有列名省略,须与定义或存储的列名顺序一致

列名未省略,须与语句中列名顺序一致

 

表级完整性约束

NOT NULL:限制列取值非空。

PRIMARY KEY:指定本列为主键。

FOREIGN KEY:定义本列为引用其他表的外键。

UNIQUE:限制列取值不能重复。

DEFAULT:指定列的默认值。

CHECK:限制列的取值范围。

NOT NULL和DEFAULT只能是列级完整性约束;

 

NOT NULL

例:sname char(10) NOT NULL

 

PRIMARY KEY

例1:SNO char(7) PRIMARY KEY

例2:PRIMARY KEY(SNO)

      PRIMARY KEY(SNO,CNO)

 

FOREIGN KEY

例:定义SC表的Sno外键。

    FOREIGN KEY(Sno)

      REFERENCES Student(Sno)

 

UNIQUE

  1. 限制一个列或者是多个列的组合取值不重复
  2. 用在事实上具有唯一性的属性列上,比如身份证号码、驾驶证号码等。
  3. 有UNIQUE约束的列允许有一个空值;
  4. 在一个表中可以定义多个UNIQUE约束;
  5. 可以在一个列或多个列上定义UNIQUE约束

 

DEFAULT

为已创建好的表添加DEFAULT约束

作用:提供列的默认值。

 

CHECK

用于限制列的取值在指定范围内,即约束列的取值符合应用语义。

人的性别:“男”或“女”

如果CHECK约束是定义多列之间的取值约束,则只能在“表级完整性约束定义”处定义。

  例1:CHECK( MaxSalary >= MinSalary )

  例2:Sex   nchar(1) CHECK( Sex = '男' OR Sex = '女'),

 

表的修改

Alter table <表名>

表的删除

Drop table <表名>

  • 数据查询功能

单表查询

Select 用于指定输出的字段

From 用于指定数据的来源

Where 用于指定数据的行选择条件

Group by 用于对检索到的记录进行分组

Having 勇于指定对分组后结果的选择条件

Order by 用于对查询的结果进行排序

Having子句 必须位于 Group by子句 之后

DESC 降序 ASC 升序

Where 查询条件

比较

=  >  >=  <=  <  <>  !=

确定范围

Between and

Not between and

确定集合

In

Not in

字符匹配

Like

Not like

_ :匹配任意一个字符

% :匹配0到多个字符

[ ] :匹配[ ]中的任意一个字符 如  [abdg] [b-e]

[^ ] : 不匹配[ ]中的任意一个字符 如  [^abdg] [^b-e]

空值

判断空值:

列名 is [not] null

多重条件

AND 与OR

OR 优先级小于 AND

 

消除取值相同的行

DISTINCT

 

聚合函数

Count(*) 统计表中元组的个数

Count([distinct]<列名>) 统计本列的列值个数,去重

Sum <列名> 计算列值的和值

Avg <列名> 计算列值的平均值

Max <列名> 计算列值的最大值

Min <列名> 计算列值的最小值

除count(*),其他函数计算过程均忽略null值

多表查询

内连接

ANSI方式

From 表1 [inner] join 表2 on <连接条件>

theta方式

From 表1,表2 where <连接条件>

 

自连接

From 表1 as t1

Join 表1 as t2

On t1.列名=t2.列名

 

外连接

ANSI方式:

From 表1 left | right join 表2 on <连接条件>

 

Top子句

只列出结果集中的前几行结果

WITH TIES:包括并列的结果

使用WITH TIES必须使用order by对查询结果进行排序

 

子查询

基于集合的测试

Where <列名> [not] in (子查询)

 

比较查询

Where <列名> 比较运算符 (子查询)

 

带有Any 或all的子查询

运算符

>any

<any

>=any

<=any

=any

!=any或<>any

>all

<all

>=all

<=all

!=all或<>all

 

带有exists的子查询

Where [not] exists (子查询)

Exists含义:当子查询中有满足条件的数据时,返回真值,否则返回假值

查询集合运算

并Union

交Intersect

差Except

 

  • 视图

创建视图

Create view <视图名>

As

  Select语句

 

优点

  1. 简化数据查询语句
  2. 使用户能从多角度看待同一数据
  3. 提高了数据的安全性
  4. 提供了一定程度的逻辑独立性
  5. 视图数据始终与基本表数据保持一致
  6. 节省存储空间

 

  • 数据更改功能

数据插入

单行插入

Insert into <表名> values

多行插入

Insert into <表名> select 语句

先建新表,后查询原表,插入数据

 

数据更新

无条件更新

有条件更新

基于本表的更新

基于其他表的更新

使用多表连接

使用子查询

 

数据删除

无条件删除

有条件删除

基于本表条件的删除

基于其他表条件的删除

使用多表连接

使用子查询

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值