一:SQL语言的分类:
数据定义语言:关键词:CREATE, ALTER, DROP
数据查询语言:关键词:SELECT
数据操纵语言:关键词:INSERT,UPDATE,DELETE
数据控制语言:关键词:GRANT,REVOKE
二:SQL数据定义语言简介:
SQL的数据定义语言可以创建、修改或删除数据库中的各种对象,包括表、视图、索引。
视图是基于基表的虚表,索引是依附于基表的,因此SQL通常不提供修改视图定义或修改索引定义的操作。
用户如果需要修改视图或索引定义,只能先把他们删除,然后重建。本节先介绍对基表和索引的数据定义语言,
因为对于视图的定义需要使用查询语言,所以会在介绍查询语言之后再介绍对视图的操作。
表,视图,索引的区别和联系,他们到底是些什么东西?
◆ 数据库中,表是基本的对象,数据库中的数据就是存储在表空间中容器的表上的。
◆ 视图是不占用存储空间的,视图只是基本表或者其它视图或者这两者组合的一个逻辑映像而已。
是为了方便用户或者应用程序使用基本表中的记录而设计的。
视图可以针对不同的用户显示表中的不同部分的记录。视图是数据库表对用户的一个窗口,以更加易读的方式展示表中的数据。
视图分为两种。read-only 和 update。只读视图只允许查看,而 update 视图则允许通过该视图来更新或者增加基本表中的记录.
◆ 索引针对列的,可以在一列或者多列上建立索引。其实质就是在这些列上的值放入一个有序的列表中。
这样把本来无序的基本表(数据库中的表是无序的,表中的记录的先后顺序可以任意。)变为有序的了。
※※※ 索引对于大量数据查询的时候效率提升的很明显。
新建表:create table
语法格式为:
create table <表名> (<列名><数据类型>[限制条件]
[, <列名><数据类型>[限制条件]]...);
备注:
◆ 其中“[]”中的为可选内容,可写可不写;
◆ <表名>、<列名> 必须以字母开头,后面可以使用字母、数字、下划线,名称长度不能超过30个字符;
◆ 在定义 <表名>、<列名> 等名称时不要使用SQL语言的保留关键字,如:create、select、insert、user 等等;
◆ 所有的SQL语句在结尾处都要使用;符号来结束;
示例:
create table students(
sno char(6) not null unique,
sname char(8) not null,
age smallint,
sex char(1),
address char(20)
);
===================================================
修改表:alter table
语法格式为:
◆ 增加新列:
alter table <表名> add (<列名><数据类型>[限制条件]...)
示例:alter table students add telenum char(8);
◆ 修改原有列:
alter table <表名> alter column(<列名>[<数据类型>]...)
示例:alter table students alter column address char(30);
alter table students alter column address char(30);
备注:如果列中已经存在数据了,那么就不能改变其数据类型,且不能缩短列的宽度,但可以增大列宽。
◆ 删除原有列:
alter table students DROP column telenum
===================================================
删除表:drop table
语法格式为:
drop table <表名>
示例:drop table students;
备注:删除表之后,与之相关的索引、视图随之消失。
===================================================
新建索引:目的是使无序变有序,提高大量数据的查询效率,缩短查询时间;
create [unique] index <索引名> on <表名>(<列名1>[ASC|DESC], <列名2>[ASC|DESC],...);
示例:
create index ageindex on students (age asc);
===================================================
删除索引:减少操作时间,因为频繁的增删数据,系统会花费很多时间去维护索引;
drop index <表名>.<索引名>
示例:
drop index students.ageindex;