第三章 关系数据库语言SQL

本文详细介绍了SQL数据库的体系结构,包括关系模式、基本表、视图、索引等概念,并阐述了SQL的数据定义(CREATE、ALTER、DROP)操作。创建和撤销SQL模式、基本表、索引的方法,以及数据查询(SELECT)、更新(INSERT、DELETE、UPDATE)的语法都进行了说明。此外,还涉及到了视图、嵌入式SQL、存储过程和安全性方面的内容,如使用存储矩阵、视图和授权来确保数据安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.1 SQL数据库的体系结构

在SQL中:

  • 关系模式—基本表
  • 存储模式—存储文件
  • 子模式—视图
  • 元组—行
  • 属性—列
  • 一个SQL模式是表和约束的集合
    • 基本表
      实际存储在数据库中的表
    • 视图
      由若干基本表或其他视图构成的表的定义
    • 导出表
      执行查询时产生的表
  • 一个基本表可以跨一个或多个存储文件,一个存储文件可以存放一个或多个基本表
  • SQL核心有 SQL DDL(数据定义语言)、SQL DML(数据操作语言)、SQL DCL(数据控制语言)、嵌入式SQL语言的使用规定

3.2 SQL的数据定义(CREATE、ALTER、DROP)

3.2.1 SQL模式的创建和撤销

  • 创建SQL模式
    CREATE SCHEMA 模式名 AUTHORIZATION 用户名
    如:CREATE SCHEMA ST AUTHORIZATION chen;
  • 创建SQL模式也可以被叫做创建数据库,CREATE DATABASE …
  • 撤销模式
    DROP SCHEMA 模式名 【CASCADE|RESTRICT】
    如:DROP SCHEMA ST CASCADE;
  • CASCADE表示在执行drop语句时,把该模式及其下属的基本表、视图、索引等所有元素全部撤销
  • RESTRICT表示只有当该模式中没有任何下属元素时,才会撤销该模式,否则拒绝执行drop

3.2.2 基本表的创建、修改、撤销以及完整性约束

  • 创建
    CREATE TABLE 表名 (列名(类型),列名(类型)… ,完整性约束条件);
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ⚠️ 创建表格时最好表明 主键和外键,虽然不是必须的,但是题目中有就写上去。如create table SC时,最后应该写上 :
    PRIMARY KEY(S#,C#),
    FOREIGN KEY(S#) REFERENCES S(S#),
    FOREIGN KEY(C#) REFERENCES C(C#);

  • 修改
    在这里插入图片描述

    ⚠️ 删除原有的列用
    ALTER TABLE tablename DROP 列名 【CASCADE|RESTRICT】
    ⚠️ 增加新的列,注意不可以定义为NOT NULL,因为增加新的一列时,原有元组在新的列上的值都被定义为了NULL

    在这里插入图片描述
    在这里插入图片描述

  • 撤销
    DROP TABLE 基本表名 【CASCADE|RESTRICT】

  • 断言
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 触发器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.2.3 索引的创建和撤销

  • 索引属于物理存储的概念
  • 索引是由于之前在SQL86、89中没有关键码的概念而用索引机制弥补的。
  • 索引的创建
    CREATE 【UNIQUE】INDEX 索引名 ON 基本表名(<列名序列>)
    如在创建学生基本表S的时候没有使用主键语句,那么可以建立索引起到主键作用:
    CREATE UNIQUE INDEX S#_INDEX ON S(S#);
    这里的UNIQUE表示每个索引值对应唯一的数据记录
  • 一个索引键可以对应多个列,索引可以升序或降序
    如对基本表SC中的(S#,C#)建立索引:
    CREATE UNIQUE INDEX SC_INDEX ON SC(<S# ASC,C# DESC>);
  • 索引表的撤销
    DROP INDEX 索引名;

3.3 SQL的数据查询(SELECT)

  • select语句使用时有三种写法:连接查询、嵌套查询、带存在量词的嵌套查询

  • 聚合函数

    • COUNT(*)
    • COUNT(列名)
    • SUM(列名)
    • AVG(列名)
    • MAX(列名)
    • MIN(列名)
  • 聚合函数不可以复合使用

  • UNION、INTERSECT、EXCEPT
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • where age>18 and age<20 可以写成 between 18 and 20,不在某个范围内可以写成not between 18 and 20

  • 字符串的匹配操作

    • %是与零个或多个字符组成的字符串匹配
    • _是与单个字符匹配
    • LIKE、NOT LIKE
    • 在LIKE比较重使用ESCAPE关键字定义转义字符 \
    • 匹配所有以’ab%cd’开头的字符串
      LIKE ‘ab%cd%’ ESCAPE ‘’
    • 匹配所有以’ad\cd’开头的字符串
      LIKE ‘ad\cd%’ ESCAPE ‘’
  • 判是否为空值 IS NULL/ IS NOT NULL

  • SOME / ALL / IN / NOT IN
    = SOME 即 IN , <> ALL 即 NOT IN

  • EXISTS / NOT EXISTS

  • UNIQUE / NOT UNIQUE

  • 连接操作
    请添加图片描述 请添加图片描述在这里插入图片描述
    在这里插入图片描述

    R和S左外连接 + 自然连接 ===》 R NATURAL LEFT OUTER JOIN S
    INNER JOIN如果没有提及连接条件,就是笛卡尔积
    FULL OUTER JOIN ON false 就是外部并,但是要把两个关系的属性全部包括进去
    R LEFT OUTER JOIN S USING(B) 使用B的属性进行左外连接 USING中的属性是公共属性,但可以不是全部公共属性,公共属性只出现一次。

递归查询都没看过(好像不考)

3.4 SQL的数据更新(INSERT、DELETE、UPDATE)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5 视图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 嵌入式SQL

3.7 存储过程与SQL/PSM

3.8 安全性

  1. 使用存储矩阵
    在这里插入图片描述

  2. 使用视图
    在这里插入图片描述

  3. 使用授权
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值