例3.1为用户WANG定义一个“学生选课”模式S-C-SC
[例3.2] CREATE SCHEMA AUTHORIZATION WANG;该语句没有指定<模式名>,<模式名>隐含为用户名WANG。
[例3.3] 为用户ZHANG创建一个模式Test,并且在其中定义一个表Tab1。
例3.4] DROP SCHEMA Test CASCADE;删除模式Test该模式中定义的表Tab1也被删除
[例3.5] 建立“学生”表Student
[例3.6 ] 建立一个“课程”表Course
[例3.7] 建立“学生选课”表SC
[例3.8] 向Student表增加“邮箱地址”列Semail,其数据类型为字符型ALTER TABLE Student ADD Semail VARCHAR(30);不论基本表中原来是否已有数据,新增加的列一律为空值
[例3.9] 将Student表中出生日期Sbirthdate的数据类型由DATE型改为字符型ALTER TABLE Student ALTER COLUMN Sbirthdate TYPE VARCHAR(20);/*注意,DATE类型占用19字节,所以修改为VARCHAR时长度要大于等于19*/
[例3.10] 增加课程名称必须取唯一值的约束条件
[例3.11] 删除Student表,选择CASCADE
[例3.12 ]删除Student表,若表上建有视图,选择RESTRICT时表不能删除;选择CASCADE时可以删除表,视图也自动删除。
有视图不能被删除
--ERROR: cannot drop table Student because other objects depend on it
/* 系统返回错误信息,存在依赖该表的对象,此表不能被删除*/
[例3.12续] 选择CASCADE时可以删除表,视图也自动被删除
--NOTICE: drop cascades to view CS_Student
/*系统返回提示,此表上的视图也被删除*/
SELECT * FROM CS_Student; /* CS_Student视图不存在*/
--ERROR: relation " CS_Student " does not exist
[例3.13]为“学生选课”数据库中的Student、Course和SC三个表建立索引。其中Student表按学生姓名升序建唯一索引,Course表按课程名升序建唯一索引,SC表按学号升序和课程号降序建唯一索引(即先按照学号升序,对同一个学号再按课程号降序)
[例3.14] 将SC表的Idx_SCCno索引名改为Idx_SCSnoCno
[例3.15] 删除Student表的Idx_StuSname索引
[例3.16] 查询全体学生的学号与姓名
[例3.17] 查询全体学生的姓名、学号、主修专业。
[例3.18] 查询全体学生的详细记录
[例3.19] 查全体学生的姓名及其年龄
[例3.20] 查询全体学生的姓名、出生日期和主修专业
[例3.21] 查询选修了课程的学生学号。
[例3.22] 查询主修计算机科学与技术专业全体学生的姓名
[例3.23]查询所有2000年后(包括2000年)出生的学生姓名及其性别
[例3.24]查询考试成绩不及格的学生的学号
[例3.25] 查询年龄在20~23岁(包括20岁和23岁)之间的学生的学生的姓名、出生年月和主修专业
[例3.26]查询年龄不在20~23岁之间的学生姓名、出生年月和主修专业
[例3.27] 查询计算机科学与技术专业和信息安全专业学生的姓名和性别
[例3.28] 查询既不是计算机科学与技术专业也不是信息安全专业学生的姓名和性别
[例3.29] 查询学号为20180003的学生的详细情况
等价于
[例3.30]查询所有姓刘学生的姓名、学号和性别
[例3.31]查询2018级学生的学号和姓名
[例3.32] 查询课程号为81开头,最后一位是6的课程名称和课程号
[例3.33] 查询所有不姓刘的学生姓名、学号和性别
[例3.34] 查询DB_Design课程的课程号和学分
[例3.35] 查询以“DB_”开头,且倒数第三个字符为 i的课程的详细情况。
[例3.36]某些学生选修课程后没有参加考试,有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。
[例3.37] 查所有有成绩的学生学号和课程号
[例3.38]