第三章 关系数据库标准语言SQL
3.1 SQL概述(略)
3.2 学生-课程数据库
3.3 数据定义
- 数据库>模式>表、视图和索引
一个数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。
3.3.1 模式的定义与删除
1. 定义模式
- CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
- 用户必须拥有数据库管理员权限
2. 删除模式
- DROP SCHEMA <模式名> <CASCADE|RESTRICT>
- CASCADE和RESTRICT两者必选其一
- CASCADE表示删除模式的同时把该模式中的所有数据库对象全部删除
- RESTRICT表示该模式中已经定义了下述的数据库对象,则拒绝该删除语句的执行
3.3.2 基本表的定义、删除与修改
1.定义基本表
- CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束条件],<列名><数据类型>[列级完整性约束条件],<表级完整性约束>);
案例1:建立一个学生表Student
案例2:建立一个课程表Course
案例3:建立学生选课表SC
2.数据类型
3. 修改基本表
案例1:向Student表中添加'入学时间'列,其数据类型为日期型
- ALTER TABEL Student ADD S_entrance Date;
案例2:将年龄的数据类型友字符型改为整数 - ALTER TABLE Student ALTER COLUMN Sage INT;
案例3:增加课程名称必须取唯一值的约束条件 - ALTER TABLE Course ADD UNIQUE(Cname);
4.删除基本表
- DROP TABLE <表名> [RESTRICT|CASCADE]
- RESTRICT:该表的删除是有限制条件的
- CASCADE:该表的删除没有限制条件
3.3.3 索引的建立与删除
1.建立索引
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>],<列名>[<次序>],...);
- UNIQUE表示每一个索引值只对应唯一的数据记录
- CLUSTER表示要建立的索引是聚簇索引
2.修改索引
ALTER INDEX <旧索引名> RENAME TO <新索引名>;
3.删除索引
DROP INDEX <索引名>
3.4 数据查询
SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>]...
FROM <表名或视图名> [,<表名或视图名>...]|(<SELECT 语句>) [AS] <别名>
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAAVING <条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]]
- 根据WHERE子句的条件表达式从FROM子句指定的基本表、视图或派生表中找出满足条件的元组
- 再按SELECT子句中的目标列中选出元组中的属性值形成结果表
- GROUP BY 将结果按<列名1>的值分组,列值相等的元组为一个组,HAVING表示只有满足指定条件的组才予以输出
- ORDER BY 结果表按<列名2>的值进行升序或降序排序
3.4.1 单表查询
1. 选择表中的若干列
- 查询指定列
SELECT Sno,Sname
FROM Student
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能