### 关系数据库标准语言SQL知识点概述 #### SQL简介 SQL(Structured Query Language,结构化查询语言)是一种专门用于管理关系数据库的标准计算机语言。它能够帮助用户有效地管理数据,包括创建和删除表、视图等数据库对象,以及进行数据查询、更新等操作。 #### SQL的主要功能及其对应的关键词 SQL的功能主要通过以下几种关键词来实现: - **数据查询**:`SELECT` - **数据定义**:`CREATE`, `DROP`, `ALTER` - **数据操作**:`INSERT`, `UPDATE`, `DELETE` - **数据控制**:`GRANT`, `REVOKE` #### 数据定义语句详解 - **模式的定义与删除** - **定义**: - 命令格式:`CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;` - 示例:`CREATE SCHEMA "S-T" AUTHORIZATION WANG;` - 如果未指定模式名,则模式名默认为用户名,例如:`CREATE SCHEMA AUTHORIZATION WANG;` - **删除**: - 命令格式:`DROP SCHEMA <模式名> [CASCADE | RESTRICT];` - `CASCADE`:级联删除,即删除模式的同时删除该模式下的所有数据库对象。 - `RESTRICT`:如果模式下已定义了数据库对象,则拒绝删除。 - 示例:`DROP SCHEMA ZHANG CASCADE;` - **基本表的定义** - 示例: - 创建一个具有主键的学生表:`CREATE TABLE STUDENT (NAME CHAR(9) PRIMARY KEY, SNUMBER CHAR(9) UNIQUE);` - 创建一个包含两个外键的成绩表:`CREATE TABLE SC (SNO CHAR(9), CNO CHAR(4), GRADE INT, PRIMARY KEY (SNO, CNO), FOREIGN KEY (SNO) REFERENCES STUDENT (SNO), FOREIGN KEY (CNO) REFERENCES COURSE (CNO));` - **数据类型** - `CHAR(n)`:定长字符型 - `VARCHAR(n)`:变长字符型 - `INT`:整型 - `SMALLINT`:小整型 - `NUMERIC(p, d)`:数值型 - `REAL`:浮点型 - `Double Precision`:双精度浮点型 - `FLOAT(n)`:浮点型 - `DATE`:日期型 - `TIME`:时间型 - **修改表** - **添加新列** - 命令格式:`ALTER TABLE <表名> ADD <新列名> <数据类型> [完整性约束];` - 示例:`ALTER TABLE STUDENT ADD S_ENTRANCEDATE;` - **修改列** - 命令格式:`ALTER TABLE <表名> ALTER COLUMN <列名> <新数据类型>;` - 示例:`ALTER TABLE STUDENT ALTER COLUMN SAGE INT;` - **添加唯一性约束** - 命令格式:`ALTER TABLE <表名> ADD UNIQUE (<列名>);` - 示例:`ALTER TABLE COURSE ADD UNIQUE (CNAME);` - **删除表** - 命令格式:`DROP TABLE <表名> [RESTRICT | CASCADE];` - `RESTRICT`:仅在没有任何依赖于该表的对象时才允许删除。 - `CASCADE`:无条件地删除表及所有相关对象。 - 示例:`DROP TABLE STUDENT CASCADE;` #### 索引的建立与删除 - **建立索引** - 命令格式:`CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名> (<列名> [ASC | DESC]);` - `UNIQUE`:确保索引中的每个值都是唯一的。 - `CLUSTER`:表示索引项的顺序与表中记录的物理顺序一致。 - 示例:`CREATE CLUSTER INDEX STUSNAME ON STUDENT (SNAME);` - 示例:`CREATE UNIQUE INDEX STUSNO ON STUDENT (SNO);` - **删除索引** - 命令格式:`DROP INDEX <索引名>;` - 示例:`DROP INDEX STUSNAME;` #### 数据查询 - **基本查询语句** - 命令格式:`SELECT [ALL | DISTINCT] <目标列表达式>, ... FROM <表名或视图名>, ... [WHERE <条件表达式>] [GROUP BY <列名> [HAVING <条件表达式>]];` - 示例:`SELECT DISTINCT NAME FROM STUDENT WHERE SAGE > 20 GROUP BY NAME HAVING COUNT(*) > 1;` SQL作为一种强大的工具,不仅能够帮助用户高效地管理数据库中的各种对象,还提供了丰富的功能来支持复杂的数据查询和操作。掌握这些基础知识对于任何从事数据库管理和开发工作的人员来说都是非常重要的。
剩余23页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助