### 数据库期末复习SQL专项知识点解析 #### 一、创建模式(Create Schema) 在数据库管理中,**模式**(Schema)通常指的是对数据的一种逻辑分组,它可以用来组织表和其他数据库对象。通过创建模式,可以更好地管理和控制数据库中的权限以及数据访问。 ##### 1. 创建模式(Create Schema) - **语法**: `CREATE SCHEMA [schema_name] AUTHORIZATION [user];` - **schema_name**: 模式名称。 - **AUTHORIZATION user**: 指定模式的所有者,即该模式下的所有对象默认由该用户拥有。 **示例**: - 创建一个名为“S-T”的模式,并指定其所有者为WANG: ```sql CREATE SCHEMA "S-T" AUTHORIZATION WANG; ``` - 创建一个未命名的模式,并指定其所有者为WANG: ```sql CREATE SCHEMA AUTHORIZATION WANG; ``` ##### 2. 删除模式(Drop Schema) - **语法**: `DROP SCHEMA [schema_name] [CASCADE | RESTRICT];` - **schema_name**: 要删除的模式名。 - **CASCADE**: 如果指定了此选项,则会递归地删除模式及其所有内容(包括所有表、视图等)。 - **RESTRICT**: 如果模式中包含任何对象,则不允许删除该模式。 **示例**: - 删除名为“S-T”的模式及其所有内容: ```sql DROP SCHEMA "S-T" CASCADE; ``` - 尝试删除名为“S-T”的模式,如果模式中有任何对象则操作失败: ```sql DROP SCHEMA "S-T" RESTRICT; ``` #### 二、创建表(Create Table) 在SQL中,创建表是一项基本操作,用于定义表结构,包括列名、数据类型和约束等。 ##### 1. 基本语法 - **语法**: `CREATE TABLE [table_name] (column_name datatype [constraints], ...);` - **table_name**: 表的名称。 - **column_name**: 列的名称。 - **datatype**: 列的数据类型。 - **constraints**: 可选的约束条件。 **常用数据类型**: - **CHAR(n)**: 定长字符串,n表示字符数量。 - **VARCHAR(n)**: 变长字符串,n表示最大字符数量。 - **NUMBER(n)**: 数字类型,n表示精度。 - **INT**: 整数类型,占用4个字节。 - **SMALLINT**: 短整型,占用2个字节。 - **BIGINT**: 长整型,占用8个字节。 - **FLOAT(n)**: 浮点数类型,n表示精度。 - **DATE**: 日期类型,格式为YYYY-MM-DD。 - **TIME**: 时间类型,格式为HH:MM:SS。 ##### 2. 约束条件 - **PRIMARY KEY**: 主键约束,确保表中某列或组合列具有唯一性且不能为空。 - **NOT NULL**: 非空约束,确保列的值不能为NULL。 - **UNIQUE**: 唯一约束,确保列的值具有唯一性,但允许NULL值的存在。 - **CHECK**: 检查约束,用于限制列的取值范围或满足某些条件。 **示例**: - 创建一个名为TAB1的表,其中包含学号、课程号和成绩三个字段,并设置主键和外键: ```sql CREATE TABLE TAB1 ( Sno VARCHAR(10), Cno NUMBER(10), Grade INT NOT NULL, PRIMARY KEY(Sno, Cno), FOREIGN KEY(Sno) REFERENCES TAB2(Sno) ); ``` #### 三、修改表(Alter Table) 在数据库设计过程中,可能需要对已有的表进行修改,例如添加新列、修改现有列或删除某些列等。 ##### 1. 添加列(Add Column) - **语法**: `ALTER TABLE [table_name] ADD [column_name] [datatype] [constraints];` **示例**: - 向SC表中添加一个Date类型的Time列: ```sql ALTER TABLE SC ADD COLUMN Time DATE; ``` ##### 2. 添加约束(Add Constraint) - **语法**: `ALTER TABLE [table_name] ADD [constraint_type] [constraint_name];` - **constraint_type**: 约束类型,如UNIQUE等。 - **constraint_name**: 约束的名称。 **示例**: - 在SC表中添加一个Cname列的唯一性约束: ```sql ALTER TABLE SC ADD UNIQUE(Cname); ``` ##### 3. 添加外键约束(Add Foreign Key) - **语法**: `ALTER TABLE [table_name] ADD FOREIGN KEY([column_name]) REFERENCES [reference_table]([reference_column]);` **示例**: - 在SC表中添加一个外键约束,引用Student表的Cno列: ```sql ALTER TABLE SC ADD FOREIGN KEY(Cno) REFERENCES Student(Cno); ``` ##### 4. 删除列(Drop Column) - **语法**: `ALTER TABLE [table_name] DROP [column_name] [CASCADE | RESTRICT];` **示例**: - 删除SC表中的Sage列: ```sql ALTER TABLE SC DROP COLUMN Sage CASCADE; ``` ##### 5. 删除约束(Drop Constraint) - **语法**: `ALTER TABLE [table_name] DROP CONSTRAINT [constraint_name] [CASCADE | RESTRICT];` **示例**: - 删除SC表中的某个约束: ```sql ALTER TABLE SC DROP CONSTRAINT constraint_name CASCADE; ``` 本文针对“数据库期末复习SQL专项”这一主题进行了详细的讲解,涵盖了创建模式、创建表和修改表等核心知识点。这些内容对于理解数据库的基本操作和管理至关重要,也是数据库设计和维护的基础。希望通过对这些知识点的学习和实践,能够帮助大家更好地掌握SQL语言的应用技巧。
剩余12页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Unity游戏开发:简易‘吃金币’项目的实现与解析
- 基于Vue的花店管理系统设计与实现源码(java毕业设计完整源码).zip
- 上市公司-创新能力、创新质量、创新效率数据(2006-2023年).zip
- (177731992)心电信号基于matlab GUI自适应滤波+平滑滤波+小波滤波心电信号处理【含Matlab源码 1809期】.mp4
- 有一个winform项目,需要借助一个web项目来显示,并且对web做一些操作,web项目是需要用谷歌内核,所以基于谷歌 Chromium项目的开源Web Browser控件来开发写了一个例子
- (177731996)心电信号基于matlab自适应滤波+LMS+RLS胎儿心电监护 【含Matlab源码 3077期】.mp4
- 基于vue的音乐播放系统源码(java毕业设计完整源码+LW).zip
- 基于web的食堂管理系统论文.doc
- Python 入门教程:基本概念与案例详解
- Python 入门基础知识及案例
- Python基础教程:涵盖变量、数据类型、条件判断、循环与函数
- (177732002)【心电信号去噪】基于matlab傅里叶变换+自适应滤波+平滑滤波心电信号去噪【含Matlab源码 3591期】.mp4
- Python爬虫的基础构建与实现方法
- 基于web的“畅享”黄山旅游网站的设计与实现源码(java毕业设计完整源码).zip
- 基于web的速达快递之家管理系统论文.doc
- (177941594)机器学习识别图片验证码(专门应付本科毕业设计).zip