软件设计 2017-03-31
简单的创建数据库的 SQL 语句:
1 use master 2 go 3 4 if exists(select * from sysdatabases where name='Test') 5 begin 6 select '该数据库已存在' 7 drop database Test --如果该数据库已经存在,那么就删除它 8 end 9 else 10 begin 11 create database Test 12 on primary --表示属于 primary 文件组 13 ( 14 name='stuDB_data', -- 主数据文件的逻辑名称 15 filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称 16 size=5mb, --主数据文件的初始大小 17 maxsize=100mb, -- 主数据文件增长的最大值 18 filegrowth=15% --主数据文件的增长率 19 ) 20 log on 21 ( 22 name='stuDB_log', -- 日志文件的逻辑名称 23 filename='D:\stuDB_log.ldf', -- 日志文件的物理名称 24 size=2mb, --日志文件的初始大小 25 maxsize=20mb, --日志文件增长的最大值 26 filegrowth=1mb --日志文件的增长率 27 ) 28 end
接下来是创建数据表的 SQL 语句:
use Test --表示设置为在该数据库(Test)执行下面的SQL语句 go
可以先执行一下以上语句。
或者在这里选择数据库。
1 use Test --表示设置为在该数据库(Test)执行下面的SQL语句 2 go 3 4 if exists(select * from sysobjects where name='Student') 5 begin 6 select '该表已经存在' 7 drop table Student --删除表 8 end 9 else 10 begin 11 create table Student 12 ( 13 S_Id int not null identity(1,1) primary key, --设置为主键和自增长列,起始值为1,每次自增1 14 S_StuNo varchar(50) not null, 15 S_Name varchar(20) not null, 16 S_Sex varchar(10) not null, 17 S_Height varchar(10) null, 18 S_BirthDate varchar(30) null 19 ) 20 end 21 22 --添加约束 23 alter table Student add constraint 24 UQ_S_StuNo --约束名 25 unique --约束类型(唯一约束) 26 (S_StuNo) --列名 27 28 --删除约束 29 alter table Student drop constraint 30 UQ_S_StuNo --约束名
SQL语句创建表变量:
1 declare @Score table 2 ( 3 Id int not null, 4 Name varchar(50) null 5 ) 6 7 insert into @Score 8 select '1','刘邦' union 9 select '2','项羽' 10 11 select * from @Score
SQL语句创建临时表:
1 -- ## 表示全局临时表 2 create table ##temp 3 ( 4 Id int not null, 5 Name varchar(10) null 6 ) 7 8 -- # 表示局部临时表 9 create table #temp 10 ( 11 Id int not null, 12 Name varchar(10) null 13 )
SQL 语句创建表并设置主外键关系:
1 if exists(select * from sysObjects where name='Course') 2 begin 3 select '该表已经存在' 4 drop table Course 5 end 6 else 7 begin 8 create table Course 9 ( 10 --列名 字段类型 是否为空 标识外键列(外键列名) 关联表的表名(关联的字段名) 11 Stu_Id int null foreign key(Stu_Id) references Student(S_Id), 12 C_Id int not null identity(1,1) Primary key, 13 C_Name varchar(100) not null 14 ) 15 end
注意:表变量和临时表都不能添加约束,具体的特征和适用场景请参见:
http://www.cnblogs.com/kissdodog/archive/2013/07/03/3169470.html
以下是平时总结的一些SQL语句的使用:
1 --SQL 语句为表添加字段并设置默认值 2 alter table Student --表名 3 add fee --添加的字段名 4 int --字段类型 5 not null --是否为空 6 default 15 --默认值 7 8 9 --修改字段的数据类型和是否为空 10 alter table Student 11 alter column S_Sex 12 varchar(10) null 13 14 15 -- with 把查询出来的表当做源表,但是必须把数据库的兼容性设置为:90+ 16 with t as (select * from Student) 17 18 select * from t 19 20 21 --设置数据库兼容性 22 ALTER DATABASE Test --数据库名 23 SET COMPATIBILITY_LEVEL = 80||90||100 --可以设置为80、90或100 24 GO 25 26 -- 为表Student添加一个列 27 alter table Student 28 add C_S_Id int null 29 30 -- 为表Student新增列添加外键约束 31 alter table Student -- 需要建立外键的表名 32 add constraint C_S_Id -- 外键列名(外键表的列名) 33 foreign key (C_S_Id) -- 指定外键表的外键列的列名 34 references Course(C_Id) -- 关联表的关联列的列名 35 go 36 37 38 -- 设置允许将显式值插入表的标识列中 39 SET IDENTITY_INSERT Student on 40 go 41 -- 设置不允许将显式值插入表的标识列中 42 SET IDENTITY_INSERT Student off 43 go 44 45 --on:表示设置为可以手动输入标识列的值 46 --off:表示设置为不可以手动输入标识列的值 47 48 49 50 SET NOCOUNT ON 51 --当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。 52 --当 SET NOCOUNT 为 OFF 时,返回计数。 53 54 SET QUOTED_IDENTIFIER ON 55 --当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。 56 --当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则。 57 58 SET ANSI_NULLS ON 59 --当SET ANSI_NULLS为ON时,那么SQL语句中,判断为空的写法就要修改为WHERE 字段 IS NULL。 60 --当SET ANSI_NULLS为OFF时,判断为空的写法就要修改为WHERE 字段=NULL。