一、SQL概述
SQL(Structured Query Language,结构化查询语句)是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。
SQL集数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)数据控制(data control)功能于一体。
1.SQL的特点
a.综合统一
b.高度非过程化
c.面向集合的操作方式
d.以同一种语法结构提供多种使用方式
e.语言简洁,易学易用
2.学生-课程数据库
凡是举例均用该数据库。包括以下三个表:(关系的主码下加下划线)
- 学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
- 课程表:Course(Cno,Cname,Cpno,Ccredit)
- 学生选课表:SC(Sno,Cno,Grade)
学号
Sno
|
姓名
Sname
|
性别
Ssex
|
年龄
Sage
|
所在系
Sdept
|
---|
课程号
Cno
|
课程名
Cname
|
先行课
Cpno
|
学分
Ccredit
|
学号
Sno
|
课程号
Cno
|
成绩
Grade
|
二、数据定义
1.模式的定义与删除
a.为用户WANG定义一个学生-课程模式S-T:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;
eg:CREATE SCHEMA "S-T" AUTHORIZATION WANG;
如果没有指定模式名,则模式名隐含为用户名。
eg:CREATE SCHEMA AUTHORIZATION WANG;
b.删除模式ZHANG:
DROP SCHEMA <模式名> <CASCADE|RESTRICT>; /*表示CASCADE和RESTRICT二者选一个*/
eg:DROP SCHEMA ZHANG CASCADE;
注:CASCADE(级联):表示在删除该模式的同时把该模式中所有的数据库对象(如表、视图等)全部删除;
RESTRICT(限制):表示如果该模式中已经定义了下属的数据库对象(包括被其他表的约束引用<如CHECK,FOREIGN KEY等约束>,触发器<trigger>,存储过程或函数),则拒绝该删除语句的执行。
2.基本表的定义、删除与修改
a.定义基本表
CREATE TABLE <表名> (<列名><数据类型> [列级完整性约束条件]
[,<列名><数据类型> [列级完整性约束条件] ]
...
[,<表级完整性约束条件>]);
eg1:建立一个“学生”表Student:
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY, /*列级完整性约束条件,Sno是主码*/
Sname CHAR(20) UNIQUE, /*Sname取值唯一,可取空值*/
Ssex CHAR(2),