数据库第四章总结

1,SQL的语言特点

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

2,SQL语言功能

        数据定义功能、数据控制功能、数据查询功能和数据操纵功能

3,列级完整性约束

NOT NULL :限制列取值非空         < 列名 >  < 类型 > NOT NULL
DEFAULT :给定列的默认值          DEFAULT 常量表达式
UNIQUE :限制列取值不重         UNIQUE [(< 列名 > [, … n] )]
CHECK :限制列的取值范围         CHECK( 逻辑表达式 )
PRIMARY KEY :指定本列为主键         PRIMARY KEY [( < 列名 > [, n] )]
FOREIGN KEY :定义本列为引用其他表的外键        

[ FOREIGN KEY ( <外键列名> )]

 REFERENCES <表名> (<主键列名>)

注:NOT NULLDEFAULT只能是列级完整性约束

                        其他约束均可在表级完整性约束处定义

4,修正表的定义

ALTER TABLE <表名>

[ADD [COLUMN] <新列名><数据类型>[完整性约束] ]

[ADD <表级完整性约束>]

[DROP[ COLUMN ]<列名>]

[DROP CONSTRAINT<完整性约束名>]

[ALTER COLUMN<列名>数据类型>]

注:ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件

        DROP COLUMN子句用于删除表中的列

        DROP CONSTRAINT子句用于删除指定的完整性约束条件

        ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型

5,指定当前数据库           Use 数据库名;     

关闭当前数据库        Close 数据库名;

6,SQL结构查询化语言

结果排序问题        order by 列名 [asc | desc]

结果唯一性问题        DISTINCT

模糊查询问题        列名 [not ] like“字符串”       

注:匹配规则

%匹配零个或多个字符

_匹配任意单个字符

\”  转义字符,用于去掉一些特殊字符的特定含义

多表联合查询           Select的多表联合检索语句

                                Select列名[[,列名].….]

                                From表名1,表名2,…

                                Where 检索条件;

重名之处理        Select 列名 as 列别名[[,列名 as 列别名].….]

                          From表名1 as 表别名1,表名2 as 表别名2,...

                          Where 检索条件;

7,

元组新增Insert:新增一个或一些元组到数据库的Table中

元组更新Update: 对某些元组中的某些属性值进行重新设定

元组删除Delete:删除某些元组

8,子查询

(NOT) IN子查询        表达式  [not ] in  (子查询)

θ some / θ all子查询        表达式 θ some (子查询)        注:语法中, θ是比较运算符:<,>,>=,<=,=,<>

                       ​​​​​​​        ​​​​​​​        ​​​​​​​  表达式 θ all (子查询)

(NOT) EXISTS子查询        [not] Exists (子查询)

9,聚集函数

COUNT、SUM、AVG、MAX、MIN

10,利用SQL实现关系代数

并运算UNION

交运算INTERSECT

差运算EXCEPT

11,空值的处理

is [not ] null                注:空值是不能进行运算的!!!!

12,视图

定义视图

       create view view_name[(列名[,列名]..)]

            as   子查询 [with check option]

视图不能更新的情况:

如果视图的select目标列包含聚集函数,则不能更新
如果视图的select子句使用了unique或distinct,则不能更新
如果视图中包括了group by子句,则不能更新
如果视图中包括经算术表达式计算出来的列,则不能更新
如果视图是由单个表的列构成,但并没有包括主键,则不能更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值