Heim  >  Artikel  >  Datenbank  >  数据库sql

数据库sql

WBOY
WBOYOriginal
2016-06-07 15:11:461036Durchsuche

************************************************************************ 创建库 use master go if exists(select * from sysdatabases where name='库名')//检查系统数据库中是否有你要新建的数据库 drop database 库名//如果有则删除数据库 go create

************************************************************************
创建库
use master
go
if exists(select * from sysdatabases where name='库名')   //检查系统数据库中是否有你要新建的数据库
drop database 库名       //如果有则删除数据库 
go
create database 库名
on primary
(
name=库名_mdf,
filename='路径\库名.mdf',
size=10mb,     //数据库初始值大小
maxsize=unlimited,    //能增长的最大值
filegrowth=15%     //增长百分比
)
log on
(
name=库名_ldf,
filename='路径\库名.ldf',
size=3mb,
maxsize=30,
filegrowth=15%
)

 

USE master  --设置当前数据库为master,以便访问sysdatabases表

************************************************************************
创建表  建标识列   建主键  建外键  建约束

create table 表名
(
 列名 int identity(1,1) not null primary key,     --建立标识列  建立主键
 列名 varchar(50) not null,       
 列名 varchar(18) not null unique check (len(列名)=15 or len(列名)=18),  --建立唯一约束  该字段长度为15 或者 18
 列名 varchar(13) not null check(列名 like '____-________' or len(列名)=11 or 列名 like '___-________'),     --建立约束
 列名 varchar(255) default('地址不详')   --设定默认值
 列名 varchar(20) not null foreign key references 引用主键表(引用字段名)   --建立外键
)


Create table Stu  ---创建表
括号内是定义的字段(
     int           --数据类型
 not null             --该列不允许null值
 identity(1,1)  --标识列
 unique   --唯一约束
 primary key   --建立主键
 primary key (字段名,字段名)    --建立联合主键
 foreign key references 引用主键表(引用字段名)  --建立外键

************************************************************************
为既有的表添加列
Alter table  表名 --修改表结构
Add(列名  int  null --添加新列
)
************************************************************************
修改列定义
Alter table Stu --修改表结构
Alter column stuName nchar(1) null --修改表中具体的字段
Alter table Stu
Alter column stuName varchar(50) not null   --改变列的大小
************************************************************************
删除表中的列
Aleate table 表名 --修改表
Drop column 列名 --删除表中指定要删除的列(包括存储在其中的数据)
************************************************************************
创建联合主键
Create table(
 stuid int not null,
 stuType int not null,
 constraint PK_id --创建约束,名字为PK_id
 primary key(stuId,stuTypeid)     --指定stuId,stuTypeid为组合主键
)
*****************************************************************************************
为既有表添加主键
Alter table Stu
Add constraint PK_id --添加约束
Primary key(stuId)
******************************************************************************************
创建一个有外键引用的表
Create table stu(
 stuId int not null primary key,
 stuName nchar(4),null,
 constraint FK_id --创建表约束 FK_id
 foreign key(stuId) --当前表中的主键列
 references stu1(empid) --要被引用的表名和主键名

)
******************************************************************************************
为既有表增加外键
Alter table stu --修改表结构
Add constraint FK_id --添加约束,名称为FK_id
Foreign key (stuid)  --当前表中的主键列
References stu(stuid) --要被引用的表名和主键名
******************************************************************************************
在创建表的时候使用标实列
Create table stu(
 stuid int not null identity(1,1)  --创建标实列设置种子

)
******************************************************************************************
Check约束用语定义
Check约束用语定义列允许的格式和值。如果check的逻辑表达式计算为TRUE,行就会被插入。如果CHECK约
束的表达式计算为FALSE,行插入就会失败。
列如:
Create table stu(
 stuid int not null,
 check(stuid like
‘%@%’)
)
*************************************************************************************************
为既有表添加check约束
Alter table stu
Add constraint ck_id
Check(stuid like
'%@%')
*************************************************************************************************
T-SQL语句(增.删.改.查)
insert into 表名(字段名,字段名,字段名字段名) values('','','','')   --增加数据
insert into 表名(列名) select (源表字段) from (源表名)     --将源表中的字段复制到表中的列里
select (列名) into (新表名) from (源表名)      --将源表中的列复制到自动建立的新表中   (新表自动建)
select identity(数据类型,标识种子,递增量) as 列名  into (新表名) from (源表名)     --向新表中插入数据时  新表建立标识列
{
insert into 表名(字段名,字段名,字段名字段名) 
select '','','' union   
select '','','' union         --一次插入多行数据   
select '','',''
}
update 表名 set 字段名=更新值 where 更新条件      --修改数据
delete from 表名 where 删除条件        --删除数据(只能删除表中数据)
order by (需要排序的列名) ASC 或 DESC       --升序或降序(默认是升序)
查询空行时候 where 条件采用  is null 或 is not null
查询返回行数    top
group by 分组
***********************************************************************************************
常用函数
getdate  --取得当前系统时间
***********************************************************************************************
事务处理
begin transaction     (开始事务)
declare @xiugai int  (申明一个变量  用来储存错误)
set @xiugai=0     (赋值为0)
update cardInfo set pass=123456 where cardID='1010 3576 1234 5678'
set @xiugai=@xiugai+@@error (获取该段T-SQL语句错误号) 
update cardInfo set pass=123123,IsReportLoss='是' where cardID='1010 3576 1212 1134'
set @xiugai=@xiugai+@@error (获取该段T-SQL语句错误号)
if @xiugai0   (如果T-SQL语句有错误 那么事务失败)
begin
print '事务失败,回滚事务'
rollback transaction  (回滚事务)
end
else
begin
print '事务成功,提交事务'
commit transaction  (提交事务)
end
go
print '查看转帐细节'
***********************************************************************************************
创建索引
if exists(select * from sysindexes where name='IX_cardInfo_cardID')  查询系统数据库中是否有该索引  
drop index cardInfo.IX_cardInfo_cardID      删除系统数据库中的该索引
go  
--索引分类
--unique    唯一索引
--nonclustered   非聚集索引(重复索引)
--primary 主键索引
--with fillfactor  填充因子
create nonclustered index IX_transInfo_cardID   --索引名常规格式(IX_表名_字段名)    --创建索引   
on transInfo(cardID)     --表名(创建索引的字段名)
with fillfactor = 70     --填充因子为70%
select * from dbo.transInfo with(index=IX_transInfo_cardID)   --利用索引创建查询T-SQL语句
where cardID='1010 3576 1212 1134'
***********************************************************************************************
创建视图
if exists(select * from sysobjects where name='view_userInfo')      --查询系统数据库中是否有该视图
drop view view_userInfo        --删除系统数据库中的该视图
GO
create view view_userInfo       --创建视图
as
 select * from userInfo
***********************************************************************************************
创建存储过程
if exists(select * from sysobjects where name='proc_takeMoney')   --查询系统数据库中是否有该存储过程
drop proc proc_takeMoney       --删除系统数据库中的存储过程
go
create proc proc_takeMoney       --创建存储过程
 @card varchar(20),@money money,@type varchar(4),@inputPass int  --创建参数
as


EXEC proc_takeMoney         --调用存储过程

 

 

 

 

 

 

 


 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn