【学习数据库】SQL语句之表与索引的更新

  • 全称:Structured Query Language(结构化查询语言)
  • 不区分大小写

【】为必填
《》为选填
【D】表示数据库名
【int/char(n)/double/Date…】表示基本数据类型
《not null/primary key/default…》表示约束
【T】表示表名
【C】表示列名
【i】表示索引名
【V】表示值,控制用NULL
【Z】子查询结果(见嵌套查询)
【F】表示条件

语句 作用
create database【D】 建立一个名为D的数据库
create table【T】(【C】【int/char(n)/double/Date…】《not null/primary key/default…》【C1】…,【C2】…) 建立一个名为T的表,列名分别为C,C1,C2,数据类型选一个,约束条件可有可无
alter table【T】add 【C】【int/char(n)/double/Date…】《not null/primary key/default…》 给表T添加一列C
alter table【T】drop《not null/primary key/default…》 在表T中删除完整性约束条件
alter table【T】alter column【C】【int/char(n)/double/Date…】 在表T中修改原有列C
alter table【T】drop column【C】 在表T中删除列C
sp_rename【T.C1】【C2】column 将列C1重命名为C2
sp_rename【T1】,【T2】 将表T1重命名为T2
drop table【T】《restrict/cascade》 删除表T,restrict当表T有依赖关系不可删除,cascade无限制删除
insert into【T】 values【(V1,V2…)】 在表T中插入一行,值V1,V2应与表头列的顺序对应
insert into【T】【(C1,C2…)】values【(V1,V2…)】 在表T中插入一行,值V1,V2应与列C1,C2对应
insert into【T】【Z】 在表T中插入子查询Z的结果
update【T】set【C1=V1,C2=V2…】 修改所有行的列C1的值为V1值,列C2的值为V2值
update【T】set【C1=V1,C2=V2…】where【F】 在表T中查询满足条件F的行,修改对应列C1的值为V1值,对应列C2的值为V2值
delete from【T】 删除表T的所有行(元组)
delete from【T】where【F/Z】 在表T中删除满足条件F的行
create《unique/clustered》index【i】on【T】(【C】《asc/desc》) 给表T的列C建立名为i的索引,unique表示非聚簇索引,clustered表示聚簇索引,区别在于效率,后者高,适用于不经常更新的列。asc代表升序,desc代表降序
drop index【T.i】 删除表T的索引i

技巧

  • 所有的名字不得冲突,即名字唯一,不能使用关键字
  • 名字与大小写无关,名字以字母开头
  • 一表中最多有254个列
  • 一表最多有249个索引

说再多不如自己实践
上例子

create database test0

【学习数据库】SQL语句之表与索引的更新_第1张图片


create table Student
(
Sno char(9) not null primary key,
Sname char(10) not null,
Ssex char(2) default '男',
Sage int,
Sdep char(20)
)

【学习数据库】SQL语句之表与索引的更新_第2张图片


sp_rename 'student.Sage', 'age', 'COLUMN'

【学习数据库】SQL语句之表与索引的更新_第3张图片


CREATE CLUSTERED INDEX c_cno ON course(Cno)

【学习数据库】SQL语句之表与索引的更新_第4张图片

你可能感兴趣的:(学习sql数据库)