一:数据定义语言

2017-02-09  本文已影响0人  RubyNRoses

一: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;

上一篇下一篇

猜你喜欢

热点阅读