文章目录
一、SQL概述
SQL(Structured Query Language)为结构化查询语言,是关系数据库的标准语言。
1.1 SQL特点
1.综合统一
(1)集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
(2)可以独立完成数据库生命周期中的全部活动:
①定义关系模式,插入数据,建立数据库;
②对数据库中的数据进行查询和更新;
③数据库重构和维护
④数据库安全性、完整性控制等
(3)用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。
(4)数据操作符统一
2.高度非过程化:无须了解存取路径
3.面向集合的操作方式:
①操作对象、查找结果可以是元组的集合;
②一次插入、删除、更新操作的对象可以是元组的集合。
4.以同一种语法结构提供多种使用方式:
①能够独立地用于联机交互的使用方式;
②SQL又是嵌入式语言:能够嵌入高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用。
5.语言简洁,易学易用:
1.2 SQL的基本概念
学生-课程数据库
学生-课程模式 S-T :
(1)学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
(2)课程表:Course(Cno,Cname,Cpno,Ccredit)
(3)学生选课表:SC(Sno,Cno,Grade)
二、数据定义
SQL的数据定义功能: 模式定义、表定义、视图和索引的定义
2.1 模式的定义与删除
1.定义模式
(1)定义模式实际上定义了一个命名空间
(2)在这个命名空间中可以定义该模式包含的数据库对象,例如基本表、试图、索引等。
(3)在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
2.删除模式
DROP SCHEMA <模式名> <CASCADE|RESTRICT>
(1)CASCADE(级联): 删除模式的同时把该模式中所有的数据库对象全部删除
(2)RESTRICT(限制):如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执。当该模式中没有任何下属的对象时才能执行。
2.2 基本表的定义、删除与修改
1.定义基本表
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。