MYSQL系列文章目录
3.2 学生-课程数据库
3.3.2 基本表的定义(创建)、删除与修改
3.3.3 索引的建立与删除
3.4 数据查询
3.5 数据更新(添加数据、修改数据、删除数据)
数据定义-目录
- MYSQL系列文章目录
- 3.1.(结构化查询语言,Structured Query Language)的特点
- SQL的动词
- 3.1.的基本概念(外模式-模式-内模式)
- 3.3 数据定义
- SQL的数据定义语句
- 使用命令来创建数据库
- 使用命令来删除数据库
- 3.3.1 模式的定义(创建)与删除
- 1.定义模式(创建模式)
- 2.删除模式
3.1.(结构化查询语言,Structured Query Language)的特点
- 综合统一
- 高度非过程化
- 面向集合的操作方式
- 以同一种语法结构提供多种使用方式
- 语言简洁,易学易用(完成核心功能只用了9个动词)
SQL的动词
SQL功能 | 动词 | ||
---|---|---|---|
数据查询(data query) | select | ||
数据定义(data manipulation) | create | drop | alter |
数据操纵(data definition) | insert | update | delete |
数据控制(data control) | grant | revoke |
3.1.的基本概念(外模式-模式-内模式)
支持SQL的关系数据库管理系统同样支持关系数据库三级模式结构(外模式-模式-内模式)。
其中,外模式包括若干视图(view)和部分基本表(base table),
数据库模式包括若干基本表,
内模式包括若干存储文件(stored file)。
3.3 数据定义
关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有模式、表、视图和索引等。
因此SQL的数据定义功能包括模式定义、表定义、视图定义、索引定义。
定义模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等。
SQL的数据定义语句
操作对象 | 操作方式 | ||
---|---|---|---|
操作对象 | 创建 | 删除 | 修改 |
模式 | create schema | drop schema | |
表 | create table | drop table | alter table |
视图 | create view | drop view | |
索引 | create index | drop index | alter index |
一个关系数据库管理系统的实例(instance)中可以建立多个数据库,
一个数据库中可以建立多个模式,
一个模式下通常包括多个表、视图和索引等数据库对象。
视图的概念及其定义方法在3.7
使用命令来创建数据库
create datebase <数据库的名称> character set utf8;
create database xxgl00 character set utf8;
使用命令来删除数据库
drop datebase <数据库的名称>;
drop database xxgl00;
3.3.1 模式的定义(创建)与删除
1.定义模式(创建模式)
在SQL中,模式定义语句如下:
create schema <模式名> authorization <用户名>;
如果没有指定<模式名>,则<模式名>默认为<用户名>。
要创建模式,调用该命令的用户必须拥有数据库管理员权限,或者获得了数据库管理员授予的CREATE SCHEMA的权限。
[例3.1] 为用户WANG定义一个学生-课程模式S-T。代码如下(示例):
create schema "S-T" authorization WANG;
[例3.2] create schema authorization WANG;
该语句没有指定<模式名>,所以<模式名>隐含为用户名WANG。
目前,在CREATE SCHEMA中可以接受CREATE TABLE, CREATE VIEW和GRANT子句。
也就是说用户可以在创建模式的同时在这个模式定义中进一步创建基本表、 视图,定义授权。即
CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句> <视图定义子句> <授权定义子句>];
[例3.3] 为用户ZHANG创建一个模式TEST,并且在其中定义一个表TAB1。
CREATE SCHEMA TEST AUTHORIZATION ZHANG
/*如何定义基本表(创建表)可以参考下面的内容*/
/*多个语句*/
CREATE TABLE TAB1(COL1 SMALLINT,
COL2 INT,
COL3 CHAR(20),
COL4 NUMERIC(10,3),
COLS DECIMAL(5,2)
/*在括号里,最后一个子句可以没有 , */
);
/*单个语句*/
CREATE TABLE TAB1(COL1 SMALLINT);
2.删除模式
drop schema <模式名> <cascade | restrict>;
cascade | restrict 必须任选其一
cascade(级联删除) 无论如何全部删除
restrict(限制删除) 如果子文件夹有文件就不能执行删除
[例3.4]
代码如下(示例):
drop schema ZHANG cascade;
该语句删除了模式zhang,同时,该模式中已经定义的表table也被删除了。