sql的DDL语句

本文详细介绍了数据库的基本操作,包括创建、查看、修改、删除数据库及数据表的方法,涵盖了SQL语句如CREATE DATABASE、SHOW CREATE DATABASE、DROP DATABASE、CREATE TABLE、ALTER TABLE等的使用,以及如何进行索引操作和设置各种约束条件。

数据库操作

创建数据库

Create  database  '数据库名';

该语句是创建一个新的数据库,name就是新创建的数据库的名字,如果’数据库名’已经存在,则会报错。
查看数据库创建信息

Show  create  database  '数据库名';

该语句是查看’数据库名’的定义信息。数据库name必须提前存在,否则报错。
Show create table name; 该语句是查看数据表name的定义信息。数据表name必须提前存在,否则报错。

Drop  database  '数据库名';

该语句是删除已存在的数据库,name就是要删除的数据库。若name不存在,则报错。此外该语句在执行时,MySQL不会给出任何提醒,删除数据库后,数据库中存在的所有数据表和数据也将一同被删除,而且不能恢复。

数据表操作

create  table  '数据表名' 
(  
	id     INT(11),     
	namel    VARCHAR(25), 
	deptld   INT(11),    
	salary    FLOAT
);

该语句创建一个普通(没有任何约束)的数据表,并且在创建数据表时,每个字段的数据类型必须指定具体长度,否则无法创建数据表。

 describe '数据表名'  
desc '数据表名' 

该语句是查看数据表结构信息,其中包括:字段名、字段数据类型、是否为主键、是否有默认值等。

alter table '旧表名' rename [to] '新表名'

该语句只是修改表名,即除了名字改变了,其他任何都没变。

alter table '数据表名' modify '字段名' '数据类型'

该语句只是修改表名,即除了名字改变了,其他任何都没变。

 alter table '数据表名' change '旧字段名' '新字段名' '新数据类型'

该语句可以修改数据表中的字段名及字段对应的数据类型,其中“新数据类型”是指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空(由于不同类型的数据在机器中存储的方式和长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录。因此,当数据库表中已经有数据时,不要轻易修改数据类型)。

alter table '数据表名' add '新字段名' '数据类型' [约束条件] [ first / after '已存在字段名']

该语句可以为数据表添加新的字段,以及指定字段的位置,其中“first”或“after 已存在字段名”用于指定新增字段在表中的位置,如果SQL语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后列,“first”的作用是将新添加的字段设置为数据表的第一个字段,“after 已存在字段名”的作用是将新添加的字段添加到指定的“已存在字段名”的后面(约束条件:not null、unique、default等)。

alter table '数据表名' drop '字段名1',...,'字段名n'

该语句可以删除数据表中的多个字段。

alter table '表名' modify '字段1' '数据类型' first / after '字段2'

该语句可以修改数据表中的字段排序,其中“字段1”是要修改位置的字段,“数据类型”是“字段1”的数据类型,“first”指将“字段1”修改为数据表的第一个字段,“after 字段2”指将“字段1”插到“字段2”的后面。

alter table '数据表名' engine= '更改后的存储引擎'

该语句可以修改数据表存储引擎的语。

drop table [if exists] '数据表1','数据表2', ... ,'数据表n'

该语句可以删除多个数据表。如果不写“if exists”参数,当要删除的表不存在时,系统会报错,如果写了“if exists”参数,当要删除的表不存在时,系统不会报错,只是发出一条警告。如果两个数据表之间存在关联,父表是不能直接被删除的,如果想删除父表,可以先删除子表,然后再删除父表或者先取消外键约束条件,再删除父表。

delete  from  '数据表名'
drop table  '数据表名'

该语句可以删除数据表。

Truncate  table '数据表名'

该语句可以清空数据表中的所有数据,但是表结构保存。

索引操作

约束类型:主键约束—要求主键列数据唯一,并且不能为空值;唯一约束—要求该列唯一,可以为空值,也可以有多个空值;检查约束—某列取值范围限制、格式限制等;外键约束—用于两表间建立关系,外键需要指定主键的那一列;非空约束—如果使用非空约束,则该字段的内容不能为null。

alter  table  '数据表名'  add  constraint  '主键名' primary key ('字段名1')

该语句可以将字段名1设置为主键。

Alter  table '数据表名'  add  constraint  '约束名'  unique'字段名1'

该语句可以将字段名1设置为唯一约束。

alter table '数据表名' add constraint '约束名' unique('字段名1','字段名2') 

该语句可以为数据表添加一个’唯一’组合约束,即不能向数据表中插入’字段名1’,'字段名2’同时相同的数据。

Alter  table  '数据表名'  add  constraint '约束名'  check(age>=0 and age<=120)

该语句可以为数据表添加一个检查约束,在插入或更新数据时,只有’age’字段的数据满足检查约束的条件时,才能插入或更新成功)。

Alter  table  '数据表名1' add  constraint  '约束名'  foregin  key'子表的字段名1'references  '数据表名2''父表的主键所在的字段名'

该语句为表名1添加了一个外键,其中, ‘数据表名1’ 是子表,'数据表名2’是父表。

Alter  table '数据表名'  drop  constraint  '约束名'

该语句可以将表中存在的约束名删除。

Alter  table  '数据表名'  disable  constraint  '约束名'

该语句可以将名为约束名的约束禁用。

Alter  table  '数据表名' enable  constraint  '约束名'

该语句可以将禁用的约束重新启动起来,约束数量的增多会降低数据库系统的性能,所以当大规模向表中增加数据时,为了提高效率可以先将约束禁用,当数据增加完后,在将约束重新启动,这样可以提高效率。

alter table '子表名' drop foreign key '外键约束名'
alter table '子表名' drop constraint '外键约束名'

该语句可以取消数据表外键约束。

Alter  table '数据表名'  modify('字段名1' not null)

该语句可以将’字段名1’设置为非空约束,即该’字段名1’的内容不能是"null"。

Alter  table '数据表名'  modify('字段名1'  null)

该语句可以删除数据表中的非空约束。

Alter  table '数据表名'  modify ('字段名1'  default '默认值')

该语句可以将’字段名1’设置为默认值约束,即在插入数据数据时,如果不指定’字段名1’的内容时,该指定的内容就为’默认值’的内容。

Alter  table '数据表名'  modify ('字段名1'  default 'null')

该语句可以删除数据表中的默认值约束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值