关系数据库标准语言SQL
1.SQL概述
SQL(Structured Query Language)结构化查询语言,是关系数据库的标准语言
SQL是一个通用的、功能极强的关系数据库语言
2.SQL的特点
- 综合统一
集数据查询(DQL),数据定义(DDL),数据操纵(DML),数据控制(DCL)功能于一体;
可以独立完成数据库生命周期中的全部活动:
①定义关系模式,插入数据,建立数据库;
②查询和更新;重构和维护
③数据库安全性、完整性控制等
用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行;
数据操作符统一 - 高度非过程化
非关系数据模型的数据操纵语言“面向过程”,必须制定存取路径;
SQL只要提出“做什么”,无须了解存取路径;
存取路径的选择以及SQL的操作过程由系统自动完成; - 面向集合的操作方式
非关系数据模型采用面向记录的操作方式,操作对象是一条记录;
SQL采用集合操作方式
①操作对象、查找结果可以是元组的集合
②一次插入、删除、更新操作的对象可以是元组的集合 - 以同一种语法结构提供多种使用方式
SQL是独立的语言,能够独立地用于联机交互的使用方式;
SQL又是嵌入式语言,SQL能够嵌入到高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用 - 语言简洁,易学易用
SQL功能极强,完成核心功能只用了9个动词
数据查询(DQL):SELECT
数据定义(DDL):CREATE,DROP,ALTER
数据操纵(DML):INSERT,UPDATE,DELETE
数据控制(DCL):GRANT,REVOKE
3.SQL支持关系数据库三级模式结构
4.数据定义(DDL)
SQL的数据定义功能: 模式定义、表定义、视图和索引的定义
①. 数据库的定义与删除
1.用SQL命令创建数据库 CREATE DATABASE database_name;
2.删除数据库 DROP DATABASE databasename;
3.打开数据库 use databasename;
4.显示所有数据库 SHOW DATABASES;
5.查看当前数据库 SELECT DATABASE();
②.表的创建、删除与修改
1.1定义基本表
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性(列)
<列级完整性约束条件>:相应属性列的完整性约束条件
<表级完整性约束条件>:一或多个属性列的完整性约束条件
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
常用完整性约束 | 值 |
---|---|
主码约束 | PRIMARY KEY |
用户定义 | CHECK |
默认值 | DEFAULT |
唯一性约束 | UNIQUE |
非空值约束 | NOT NULL |
参照完整性约束 | FOREIGN KEY |
[例1] 建立“学生”表Student
CREATE TABLE Student
(
Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2) DEFAULT '男',
Sage SMALLINT NOT NULL,
Sdept CHAR(20)
);
[例2] 建立一个“课程”表Course
CREATE