MS SQL 常用SQL语句(二):创建、修改、删除数据库、表、字段等sql

1、操作数据库:

--1、创建数据库(简写,使用默认设置和路径):
create database test2;

--自定义设置和路径
create database test2
--主文件信息
on (
name=test2_data,--主文件名称
filename='E:\DB\test2_data.mdf',--文件所在物理路径
size=6,--文件初始化大小
maxsize=12,--文件最大尺寸
filegrowth=10%--超过最大尺寸时的增长率,可以指定大小,也可以指定百分比
)
--事务日志文件信息
log on(
name=test2_log,
filename='E:\DB\test2_log.ldf',
size=1,
maxsize=8,
filegrowth=10%
)

--2、添加数据文件和事务日志文件(一个数据库可以有多个主数据库文件和事务日志文件):
--添加数据文件
alter database test2
add file(
name=test2,
filename='E:\DB\test2.mdf',
size=6,
maxsize=12,
filegrowth=10%
)

--添加日志文件
alter database test2
add log file(
name=test2,
filename='E:\DB\test2.ldf',
size=1,
maxsize=8,
filegrowth=10%
)

--3、删除数据文件和日志文件:
--删除主数据文件,注意此处的test2为添加主数据文件时name的值,而不是filename中的名称
alter database test2
remove file test2
--(可能会报错:找不到或无法初始化语句中列出的一个或多个文件。)

--删除事务日志文件
alter database test2
remove file test2_log
--(可能会报错:不能从数据库中删除主数据文件或主日志文件。)

--4、修改数据库名称:
--执行SQL结构:exec sp_renamedb '旧数据库','新数据库';
--执行过程中可能报错:无法用排他锁锁定该数据库,以执行该操作。
--此时需要重新启动SQL Server服务并重新连接然后执行即可。
--执行成功控制台将显示:数据库 名称 'test1' 已设置。
exec sp_renamedb test2,test1;

--5、删除数据库:
drop database test2
--同时删除多个数据库
drop database test2,test1;

--6、使用数据库
use test2;

2、操作表:

--1、创建表
create table table1
(
field1 int,
field2 varchar(50),
field3 int,
field4 numeric(18,2),
field5 varchar(100)
)

--2、重命名表名:
EXECUTE sp_rename N'table2', N'table1', 'OBJECT' 

--3、判断表是否存在
if object_id(N'table1',N'U') is not null  
begin  
    print '表存在';  
end  

--4、删除表
drop table table1;

3、操作表字段:

--1、添加列
alter table table1 add field6 varchar(100) not null default('是');

--2、修改类型
alter table table1 alter column field6 int ;
--这样子直接修改会报错:
--对象' DF__table1__field6__0425A276' 依赖于列'field6'。
--由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN field6失败。
--因为我的field6添加了一个默认(default)约束。想要修改字段类型,先得删除约束,然后才能修改。删除字段的时候也是一样。

--3、查看当前表中的默认约束有哪些:
select   *   from   sysobjects   where   xtype='D'   and   parent_obj=object_id('table1')

--4、删除默认约束
alter  table table1	drop constraint DF__table1__field6__0425A276

---5、删除列(此时因为field6上面有default约束,所以不能删除)
alter table table1 drop column field6
4、关于不为空、默认值:
--1、添加不为空限制
alter table table1 alter column field1 int not null;

--2、修成成允许为空限制
alter table table1 alter column field1 int null;

--3、添加默认约束
alter table table1 add default(0)  for field2 ;
alter table table1 add default ('是') for field6;

--4、查看当前表中的默认约束有哪些:
select   *   from   sysobjects   where   xtype='D'   and   parent_obj=object_id('table1')

--5、删除默认约束
alter  table table1	drop constraint DF__table1__field6__0425A276
5、关于主键:
--1、添加主键 
alter table table1 add constraint PK_field1 primary key(field1);

--2、获取主键所在列
declare @PKColumn varchar(100);
SELECT @PKColumn=COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME='table1';   
print @PKColumn;  

--3、删除主键约束
alter table table1 drop constraint PK_field1;
 6、关于外键:
--1、添加外键:在field3上添加外键
alter table table2 add constraint FK_field3
foreign key (field3)
references  table1(field1) on update cascade on delete cascade

--2、查看外键约束
select   *   from   sysobjects   where xtype='F' and  parent_obj=object_id('table2')

--3、删除外键约束
alter table table2 drop constraint FK_field3

猜你喜欢

转载自1017401036.iteye.com/blog/2217371