第三章 关系数据库标准语言SQL

3.1 SQL概述(略)

3.2 学生-课程数据库

image

image

3.3 数据定义

image

  • 数据库>模式>表、视图和索引

一个数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。

3.3.1 模式的定义与删除

1. 定义模式

  • CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
  • 用户必须拥有数据库管理员权限

2. 删除模式

  • DROP SCHEMA <模式名> <CASCADE|RESTRICT>
    • CASCADE和RESTRICT两者必选其一
    • CASCADE表示删除模式的同时把该模式中的所有数据库对象全部删除
    • RESTRICT表示该模式中已经定义了下述的数据库对象,则拒绝该删除语句的执行

3.3.2 基本表的定义、删除与修改

1.定义基本表

  • CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束条件],<列名><数据类型>[列级完整性约束条件],<表级完整性约束>);

案例1:建立一个学生表Student
image

案例2:建立一个课程表Course
image

案例3:建立学生选课表SC
image

2.数据类型

image

image

3. 修改基本表

image

案例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
posted @   Trouvaille_fighting  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示

目录导航