3.1 SQL概述(略)

3.2 学生-课程数据库

resize 数据库中 数据库中restrict_表名

resize 数据库中 数据库中restrict_数据类型_02

3.3 数据定义

resize 数据库中 数据库中restrict_数据库_03

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

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

3.3.1 模式的定义与删除

1. 定义模式

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

2. 删除模式

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

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

1.定义基本表

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

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

resize 数据库中 数据库中restrict_表名_04

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

resize 数据库中 数据库中restrict_数据库_05

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

resize 数据库中 数据库中restrict_数据类型_06

2.数据类型

resize 数据库中 数据库中restrict_表名_07

resize 数据库中 数据库中restrict_resize 数据库中_08

3. 修改基本表

resize 数据库中 数据库中restrict_resize 数据库中_09

案例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