【读书笔记】数据库之关系数据库语言(SQL3)

0.前言

最近开始复习数据库,因为保送武大的研究生要笔试数据库和英语听力。遂将读书所得记于此以备忘,希望自己能坚持这个习惯。 参考书:《数据库原理与技术》 尹为民,金银秋主编,武汉大学出版社。

1. 关于SQL

结构化查询语言SQL(Structured Query Language)是基于关系代数与关系演算的语言,是通用的、功能极强的,高度非过程化的关系数据库语言。其数据定义、查询、操纵、控制的核心功能只用了九个动词:

SQL功能核心动词
数据查询SELECT
数据定义CREATE ALTER DROP
数据操控INSERT UPDATE DELETE
数据控制GRANT REVOKE

2. SQL的数据定义

2.1 SQL模式的定义域撤销

1.SQL模式(SCHEMA)

一个SQL模式是所属基本表、视图等的集合。SQL模式由模式名和模式拥有者的用户名或账号来确定,并包含模式中的每一个元素(表、视图、索引等)的定义。定义了一个SQL模式就是定义了一个存储空间。

2.SQL模式的定义
CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<CREATE DOMAIN 子句>|<CREATE TABLE子句>|<CREATE VIEW子句>|……]
3.SQL模式的删除
DROP SCHEMA <模式名>{CASCADE|RESTRICT}

2.2 表(TABLE)的建立和删除

1.表的建立

CREATE TABLE [模式名.]<表名>

<列名><数据类型>[列级完整性约束]

[,<列名><数据类型>[列级完整性约束]……]

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

附:

  1. 列级完整性约束
    1. NOT NULL
    2. DEFAULT <默认值>
    3. CHECK ( <约束条件>)
      1. 例如:
        • CHECK (VALUE IS NOT NULL)
        • CHECK (sex IN ('男','女'))
        • CHECK (age>0&age<100)
    4. PRIMARY KEY
  2. 表级完整性约束
    1. PRIMARY KEY (<列表>)
    2. FOREIGN KEY (<列表>) REFERENCES [<表名>] [<约束选型>]
      1. 例如:
        • FOREIGN KEY (worker_id) REFERENCES Worker ON DELETE CASCADE

2. 表的删除

DROP TABLE <表名> [CASCADE|RESTRICT]

2.3 表的扩充和修改(ALTER)

1.增加列

ALTER TABLE <表名> ADD (<列名><数据类型>,……)

2.删除列

ALTER TABLE <表名> DROP <列名> [CASCADE|RESTRICT]

3.修改列

ALTER TABLE <表名> MODIFY <列名><数据类型>

4.补充主码定义

ALTER TABLE <表名>  ADD PRIMARY KEY(<列名表>)

5.删除主码

ALTER TABLE <表名> DROP PRIMARY KEY

2.4 域(DOMAIN)定义

1.域(DOMAIN)定义

域定义(DOMAIN DEFINITION)是一个特定的数据类型,用于建立用户自定义的属性列的数据类型,它由数据类型、缺省值和域约束一起构成。

2.域定义的一般格式

CREATE DOMAIN <域名> [AS] <数据类型> [DEFAULT <缺省值>] [<域约束>]

例如:

CREATE DOMAIN ITEM_ID NUMERIC(4) DEFAULT 0 CHECK(VALUE IS NOT NULL)

2.5.索引(INDEX)的建立与删除

在基本表上建立一个或多个索引,可以提供多种存取路径,加快查找速度。

1.创建索引

CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[ASC|DESC],…… )
  • UNIQUE表示此索引的每一个索引值只对应唯一的数据记录
  • CLUSTER表示要建立的索引时聚簇索引。所谓聚簇索引是指索引项的顺序与表中的记录的物理顺序一致的索引组织。

2.删除索引

DROP INDEX  [ON <表名>] <索引名>

3. SQL的数据库查询

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值