数据库系统工程师—8.1 SQL概述与数据库定义

SQL概述与数据库定义

SQL的基本组成

  • 数据定义语言
    • DDL提供定义关系模式和视图、删除关系和视图、修改关系模式的命令
  • 交互式数据操纵语言
    • DML提供查询、插入、删除和修改的命令。
  • 事务控制
    • 提供定义事务开始结束的命令。
  • 嵌入式SQL和动态SQL
    • 用于嵌入到某种通用的高级语言中混合编程。其中,SQL负责操纵数据库,高级语言负责控制程序流程。
  • 完整性
    • DDL包括定义数据库中的数据必须满足的完整性约束条件的命令,对于破坏完整性约束条件的更新将被禁止。
  • 权限管理
    • DDL中包括说明对关系和视图的访问权限
  • SQL语言中完成核心功能的9个动词
    • 数据查询:Select
    • 数据定义:Create、Drop、Alter
    • 数据操纵:Insert、Update、Delete
    • 数据控制:Grant、Revoke

SQL的数据类型

表的创建、修改和删除

创建

create table table_name(
    id int(10) primary key,
    name varchar(200),
    class int(10) references t2(class),
    grade varchar(10),
    foreign key grade references t3(grade) on delete [set null] | [casecade]
);

约束

  • 实体完整性约束:primary key
    • 可以添加到列后面,即列级完整性约束条件
    • 或在最后,即表级完整性约束条件(主码属性组只能使用表级)
  • 参照完整性约束:foreign key
    • 列级完整性约束条件 references 表名(列名)
    • 表级完整性约束条件 foreign key 列名 references 表名(列名)   (有几个写几个)
      • on delete set null:表示删除被参照关系的元组时,将参照关系的相应属性值置为空值
      • on delete casecade:表示删除被参照关系的元组时,同时删除参照关系中的元组
  • 属性值上的约束
    • NOT NULL:表示不允许取空值
    • UNIQUE:表示取值唯一
    • NOT NULL UNIQUE:表示取值唯一且不为空 (等价于primary key)
    • CHECK:限制列中值的取值范围
      • CHECK (Sex=’男’ OR Sex=’女’),CHECK (余额>=0),CHECK (年龄>=18 AND 年龄<=60)
  • 全局约束
    • 基于元组的检查子句
      • CREATE TABLE E(
        Eno CHAR(8) PRIMARY KEY, 入职日期 DATE, 离职日期 DATE,
        CHECK (入职日期<=离职日期) );
    • 基于断言的语法格式
      •  create assertion name check();

修改

增删改

alter table table_name(
    add name varchar(100),  #新增列
    modify class int(10),   #修改类型
    drop name,              #删除列
    add constraint C_no check(......) #新增约束,命名为C_no
);

删除

 drop table table_name;

索引的创建和删除

create [unique] | [cluster] index 
index_name on 表名(列名); 

drop index index_name;
  • index类型
    • unique:唯一索引
    • cluster:聚簇索引,使得索引项的顺序是与表中记录的物理顺序一致的索引组织
  • 在列名后,可添加
    • ASC 升序,默认
    • DESC 降序

视图的创建和删除

create view view_name 
as (select 语句)
[with check option];

drop view view_name;
  • 子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY子句和DISTINCT短语
  • WITH CHECK OPTION表示对UPDATE,INSERT,DELETE操作时保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)
页面链接:https://www.datazzh.top/archives/2088/2025/04/20/

评论

  1. Kim4000
    Windows Chrome
    2 天前
    2025-4-23 19:38:28

    Awesome

  2. Nolan2077
    Windows Chrome
    2 天前
    2025-4-23 23:17:02

    Good

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇