‘壹’ sql常用增删改查
SQl常用增删改查模板
篇一:SQl常用增删改查
SQL常用增删改查语句
增加
现在有一张表,表(Test)里面有三个字段,分别为sno,sname,age。举例用一条增加SQL语句,插入一条数据进库。
语句:
Insert into 表名 value(‘数据1’,’数据2’,’数据3’)
具体操作: Insert into testvalues('test','test','1')
通过上面这条语句,Test表里面就多了一条数据。如下图所示:
上面这个例子,是在每条字段都需要插入的时候为了方便而直接在 into 后面跟表名。但是也会遇到一些特殊的情况,比如一张表,因为有主外键约束(我这里只有一张表),而我只想插入被约束的字段sno(主键)加上age这个字段,在 into的时候就需要指明需要插入的字段,下面举例说明:
语句:
Insert into 表名(‘字段名1’,’字段名2’) values(‘数据1’,’数据2’)
具体操作:
into test(sno,age)values('彭宇','21')
这样数据库里面,又多了一条数据,而没有插入任何数据那个字段默认为NULL。如下图所示:
删除
在我们增加数据入库的时候,难免会出现数据录入错误,或者信息过期后不再需要的数据,所以我们要利用删除语句将表里面不需要的数据删除掉。下面举例说明。
语句:
Delete from 表名 where 字段名='需要删除的数据'
具体操作:
from test where sno='test'
通过这条SQL语句,Test表主键sno字段里面数据为test的该条数据就已经被删除了。
Ps:一般来说都以主键为条件进行删除,因为主键是不可重复的,我们可以设想一下,如果没使用主键为删除条件,假设一个公司有两个叫彭宇的人。我使用sname=’彭宇’作为删除条件的话,那么这两个同名同姓人的资料都会被删除掉,所以这是不可取的。
批量删除
当有多条数据需要删除的时候,我们可以使用批量删除语句来实现一次删除多条数据。
语句:
from表名where字段名in('该字段里面的数据1','该字段里面的数据2',……)
具体操作:
首先,看一下Test表里面有多少条数据,如下图:
现在我想利用一条SQL语句,将前三条数据删除掉。
from test where sno in('test','test2','test3')
通过执行这条SQL语句后,前三条数据已经被我批量删除了。
修改
一条已经录入数据库里面的数据如果需要更新、修正,我们就需要用到SQL修改语句。
语句:
Update 表名set字段='修改后的数据' where 字段='修改条件'
具体操作:
Update test set sno='SQL修改语句' where sno='test'
修改前后比较,下图所示: (
修改前
)(修改后)
查询
上面进行了增加,修改操作后,数据库里面已经存在有数据了,最后我们要利用SQL查询语句将它们查询并显示出来。
全部查询
语句:
Select * from 表名
具体操作:
Select * from test
执行了上面这句话,那么test表里面存在的数据都会被查询出来,如果我想要单独查询出某个人的数据怎么办?很简单,只需要加上一个关键词where就能够实现了。
单条件查询
语句:
Select * from 表名 where 字段=’需要查询的数据’
具体操作:
Select * from test where sno=’彭宇’
这样我就查询出数据库里面sno字段为彭宇的数据了。
多条件查询
多条件查询就是比起单条件查询多了一个and关键词,使用多条件查询,查出来的结构能够更加的精确。
语句:
Select * from 表名 where 字段=’需要查询的数据’ and 字段=’需要查询的数据’
具体操作:
Select * from test where sno=’彭宇’’21’ and age=
篇二:SQL语句增删改查
一、删:有2中方法
1.使用删除数据某些数据
语法: from <表名> [where <删除条件>]
例: from a where name='开心朋朋'(删除表a中列值为开心朋朋的行) 注意:删除整行不是删除单个字段,所以在后面不能出现字段名
2.使用truncate table 删除整个表的数据
语法:truncate table <表名>
例:truncate table tongxunlu
注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表
二、改
使用update更新修改数据
语法:<表名> set <列名=更新值> [where <更新条件>]例:tongxunlu set 年龄=18 where 姓名='蓝色小名'
注意:set后面可以紧随多个数据列的更新值;where子句是可选的,用来限制条件,如果不选则整个表的所有行都被更新
四、查
1.普通查询
语法:select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]
1).查询所有数据行和列
例:select * from a
说明:查询a表中所有行和列
2).查询部分行列--条件查询
例:select i,j,k from a where f=5 说明:查询表a中f=5的所有行,并显示i,j,k3列
3).在查询中使用AS更改列名
例:select name as 姓名 from a whrer xingbie='男'
说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示
4).查询空行
例:select name from a where email is null
说明:查询表a中email为空的所有行,并显示name列;SQL语句中用is null或者is not null来判断是否为空行
5).在查询中使用常量
例:select name '唐山' as 地址 from a
说明:查询表a,显示name列,并添加地址列,其列值都为'唐山'
6).查询返回限制行数(关键字:top percent)
例1:select top 6 name from a
说明:查询表a,显示列name的前6行,top为关键字
例2:select top 60 percent name from a
说明:查询表a,显示列name的60%,percent为关键字
7).查询排序(关键字:order by , asc , desc)
例:select name
from a
where chengji>=60
order by desc
说明:查询表中chengji大于等于60的所有行,并按降序显示name列;默认为ASC升序
2.模糊查询
1).使用like进行模糊查询
注意:like运算副只用语字符串,所以仅与char和varchar数据类型联合使用 例:select * from a where name like '赵%'
说明:查询显示表a中,name字段第一个字为赵的记录
2).使用between在某个范围内进行查询
例:select * from a where nianling between 18 and 20
说明:查询显示表a中nianling在18到20之间的记录
3).使用in在列举值内进行查询
例:select name from a where address in ('北京','上海','唐山')
说明:查询表a中address值为北京或者上海或者唐山的记录,显示name字段3.分组查询
1).使用group by进行分组查询
例:select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)
from score (注释:这里的score是表名)
group by studentID
说明:在表score中查询,按strdentID字段分组,显示strdentID字段和score字段的平均值;select语句中只允许被分组的列和为每个分组返回的一个值的表达试,例如用一个列名作为参数的聚合函数
2).使用having子句进行分组筛选
例:select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)
from score (注释:这里的score是表名)
group by studentID
having count(score)>1
说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件,
4.多表联接查询
1).内联接
①在where子句中指定联接条件
例:select a.name,b.chengji
from a,b
where a.name=b.name
说明:查询表a和表b中name字段相等的记录,并显示表a中的name字段和表b中的chengji字段
②在from子句中使用join…on
例:select a.name,b.chengji
from a inner join b
on (a.name=b.name)
说明:同上
2).外联接
①左外联接查询
例:select s.name,c.courseID,c.score
from strdents as s
left outer join score as c
on s.scode=c.strdentID
说明:在strdents表和score表中查询满足on条件的行,条件为score表的.strdentID与strdents表中的sconde相同
②右外联接查询
例:select s.name,c.courseID,c.score
from strdents as s
right outer join score as c
on s.scode=c.strdentID
说明:在strdents表和score表中查询满足on条件的行,条件为strdents表中的sconde与score表的strdentID相同
三、增:有4种方法
1.使用插入单行数据:
语法: [into] <表名> [列名] values <列值>
例: into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15')
注意:into可以省略;列名列值用逗号分开;列值用单引号因上;如果省略表名,将依次插入所有列
2.使用 select语句将现有表中的数据添加到已有的新表中
语法: into <已有的新表> <列名>
select <原表列名> from <原表名>
例: into tongxunlu ('姓名','地址','电子邮件')
select name,address,email
from Strdents
注意:into不可省略;查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致
3.使用select into语句将现有表中的数据添加到新建表中
语法:select <新建表列名> into <新建表名> from <源表名>例:select name,address,email into tongxunlu from strdents
注意:新表是在执行查询语句的时候创建的,不能够预先存在
在新表中插入标识列(关键字‘identity’):
语法:select identity (数据类型,标识种子,标识增长量) AS 列名
into 新表 from 原表名
例:select identity(int,1,1) as 标识列,dengluid,password into tongxunlu from Struents
注意:关键字‘identity’
4.使用union关键字合并数据进行插入多行
语法: <表名> <列名> select <列值> tnion select <列值>
例: Students (姓名,性别,出生日期)
select '开心朋朋','男','1980/6/15' union(union表示下一行)
select '蓝色小明','男','19**/**/**'
注意:插入的列值必须和插入的列名个数、顺序、数据类型一致
篇三:SQL常用增删改查语句
SQLSQL常用增删改查语句
作者:hiker
一. Insert 插入语句
1. Insert into 表名(列名) values (对应列名值)//插入一行.
2. Insert into 新表名(列名)
Select (列名) 旧表名
3. Select 旧表名.字段…
Into 新表名 from 旧表名
4. Select identity ( 数据类型,标识种子,标识增长量) as 列名
Into新表名
From 旧表名
5. Insert 表名(列名)
Select (对应列名值) union
Select (对应列名值) union
Select (对应列名值)
二. Update 更新语句
1. Update 表名 set 列名=’更新值’ where 更新条件
三. 删除语句
1. from 表名 where 删除条件
2. truncate table 表名 //删除表中所有行
四. select 基本查询语句
1. select 列名 from 表名 where 查询条件
order by 排序的列名asc或desc升/降
2. select 列名 as 别名 from 表名 where 查询条件
3. select 列名 from 表名 where 列名 is null //查询空值
4. select 列名 , ‘常量值’ as 别名 from 表名//查询时定义输出一列常量值
5. select top 5 列名 from 表名 //查询前5行
6. select top 5 percent 列名 from 表名 //查询前百分之5的数据行
五.
1.
2.
3.
4. select 函数查询语句 selectLEN(Class_Name)fromClass //查询class_Name字符串长度 selectupper(Class_Name)fromClass //查询class_Name并转换为大写 ltrim和rtrim //清除字符串左右空格 selectREPLACE(card_No,'0','9')fromCardRecord//修改列中字符串中的字符 列名字符串中0修改为9
5. selectSTUFF(Card_No,2,3,'8888')fromCardRecord
列名字符串中第2个开始删除3个字符,再从第二个开始插入8888字符串
6. selectGETDATE()//显示系统日期
六.
1.
2.
3.
4.
5. select 高级查询语句 select * from 表名 where列名 like ‘ %s%’ //模糊查询 select * from 表名 where 列名 between 60 and 80 //范围查询 select * from 表名 where 列名 in (‘列举’,’’,’’) //在列举范围内查询 selectSUM(Score_Num)fromscores //查询分数总和 avg max min count //查询平均分/最大数/最小数/行数
selectcourse_Id,SUM(Score_Num)fromscores
groupbyCourse_Id//分组查询
havingCourse_Id='jsj001'//分组子句筛选
七. Select 多表连接查询语句
1.selects.stu_Nameas'姓名',c.Course_nameas'科目',sc.Score_Num
fromStudentsass
innerjoinScoresasscon(sc.Stu_Id=s.Stu_ID)
innerjoinCoursesascon(sc.Course_Id=c.Course_Id)
orderbys.Stu_Namedesc //三表内联查询
2.selects.stu_Nameas'姓名',c.Course_nameas'科目',sc.Score_Num
fromStudentsass
leftouterjoinScoresasscon(sc.Stu_Id=s.Stu_ID)
leftouterjoinCoursesascon(sc.Course_Id=c.Course_Id)
//三表左外联查询,以stu表为主,其它表为从。
3.selects.stu_Nameas'姓名',c.Course_nameas'科目',sc.Score_Num
fromCoursesasc
rightouterjoinScoresasscon(sc.Course_Id=c.Course_Id)
rightouterjoinStudentsasson(sc.Stu_Id=s.Stu_ID)
//三表右外联查询,以stu右表为主,其它表为从。
八. Create 创建数据库语句
1. create database 数据库名
on[primary]
(
<数据文件参数>[,…n] [<文件参数>]
)
[log on]
(
{<日志文件参数> […n]}
)
文件参数:
Name=逻辑文件名,filename=物理文件名,size=大小,maxsize=最大容量,
Filegrowth=增长
文件组参数:
Filegroup 文件组名<文件参数>
例:
usemaster
go
ifexists(select*fromsysdatabaseswherename='abc')
dropdatabaseabc
createdatabaseabc
onprimary
(
name='abc',
filename='d:abc.mdf',
size=5,
maxsize=50,
filegrowth=10%
)
logon
(
name='abc_log',
filename='d:abc_log.ldf',
size=2,
maxsize=20,
filegrowth=1
)
2. use 数据库名
go
create table 表名
(
字段数据类型列的特征
)
Go
例:
usedb_myschool
go
ifexists(select*fromsysobjectswherename='test1')
droptabletest1
createtabletest1
(
Idintnotnull,
SNamenvar50)notnull,
Telintnotnull
)
go
3.使用SQL语句创建和删除约束
alter table表名
Add constraint 约束名约束类型描述说明
altertabledbo.testaddconstraintPK_IDprimarykey (ID)
主键:primary keyPK_ 唯一:uniqueUQ_ 检查:check CK_ 默认:defaultDF_外键:foreign keyFK_
1.execsp_addlogin'abc','abc'//添加SQL用户名
usedb_myqq
go
execsp_grantdbaccess'abc'//添加用户名到数据库中
3. 授权语句
Grant 权限 on 表名 to 数据库用户名 九. 登录验证语句
十. SQL编程语句
局部变量/全局变量
1.以@标记符作前缀
Declare @name var8)//声明
Set @name = value
Select @name=value//赋值
2.以@@标记符作前缀
@@error //最后一个T-SQL错误的错误号
@@identity //最后一次插入的标识值
@@language//当前使用的语言的名称
@@max_connections //可以创建的同时连接的最大数目
@@rowcount //受上一个SQL语句影响的行数
@@servername//本地服务器的名称
@@servicename //该计算机上的SQL服务的名称
@@timeticks //当前计算机上每刻度的微秒数
@@transcount //当前连接打开的事务数
@@version //SQL Server的版本信息
4. 输出
print'SQL服务名:'+@@servicename
select@@SERVICENAMEas'SQL服务名'
5. 逻辑控件语句
declare@avgfloat
select@avg=avg(Score_Num)fromScoreswhereStu_Id='sc0002'
print'平均分为'+convert(var8),@avg)+'分'
if(@avg>90)
begin
print'最高分'
selectMAX(Score_Num)fromScores
end
else
begin
print'最低分'
selectMIN(Score_Num)fromScores
6. while 循环语句
declare@nint
while(1=1)
begin
select@n=COUNT(*)fromScoreswhereScore_Num<60
if(@n>0)
updateScoressetScore_Num+=2 whereScore_Num<60
else
break
end
print'加分后的成绩'
select*fromScores
7. Case多分支语句
selectStu_id,score=case
whenScore_Num>90 then'A'
whenScore_Numbetween 80 and 89 then'B'
whenScore_Numbetween 60 and 79 then'C'
else'D'
end
fromScores
十一.高级查询
1. where子查询
2. in 和 not in 子查询
3. if exists (子查询)
;‘贰’ 创建代码生成器可以很简单:如何通过T4模板生成代码[下篇]
但是这是一种基于单个文件的解决方案,即我们必须为每一个生成的存储过程建立一个模板。如果我们提供一种基于多文件的代码生成方式,将会为编程人员带来极大的便利。借助于T4 ToolBox这个开源工具箱,多文件的SQL Generator的实现变得异常简单。[文中的例子可以从这里下载]目录 二、创建自定义的Generator 三、ProcereGenerator如何被使用?一、多文件代码生成器会带来多大的便利?我们先来直观的感受一下较之《上篇》提供的单一文件的代码生成器,基于多文件的代码生成解决方案会为开发人员带来多大的便利。 同样对于《上篇》创建的数据表T_PRODUCT,之前我们为了生成三个不同的存储过程,我们不得已需要创建3个不同的T4模板文件。实际上我们更需要的方式只需要创建一个T4模板,让我们的SQL Generator自动为我们生成3个包含相应存储过程的.sql附属文件,如左图所示(点击看大图)。有的时候,基于单个数据表的存储过程生成方式我们依然觉得不方便。如果我们能够在T4模板文件中指定的数据表的列表,让我们的SQL Generator为列表的每一个数据表都生成CUD三个存储过程,这样的方式更加具有吸引力。如右图所示(点击看大图),一个订单模块包含两个具有主子关系的两张表(T_ORDER和T_ORDER_DETAIL),现在我们在一个T4模板中指定这两个表明,通过SQL Generator可以帮助我们生成6个包含存储过程的.sql附属文件。甚至有的时候我们连数据表列表都无需指定,让SQL Generator为所有的表都生成相应的存储过程。我的例子中没有提供这样的功能,但是实现自来不会存在任何问题。二、创建自定义的Generator在《上篇》中我创建了一个抽象的ProcereTemplate类,以及三个基于生成CUD存储过程的具体ProcereTemplate:InsertProcereTemplate、UpdateProcereTemplate和DeleteProcereTemplate。它们都将直接服务于我们今天将要提供的基于多文件的SQL Generator。在《上篇》中,这四个Template分别定义在4个不同的TT文件中,3个具体的ProcereTemplate通过<#@include>指令将抽象ProcereTemplate模板文件包含过来。由于我们将要创建的T4模板将会使用到这四个类,如果我们用四个<#@include>指令将四个TT文件包含过来,由于T4引擎将会导致对ProcereTemplate的4次包含,最好将会导致变异问题。个人觉得这应该算是T4引擎解析包含关系的一个局限性,为了解决这个问题我们不得不抽象的ProcereTemplate和三个具体的ProcereTemplate都合并成一个TT文件。T4 ToolBox为类库中为了提供了一个抽象的T4Toolbox.Generator类用于实现多文件的代码生成。为此我们创建一个TT模板文件,定义了如下一个继承自该类的ProcereGenerator。ProcereGenerator的核心是通过属性Templates定义的类型为IEnumerable<ProcereTemplate>的ProcereTemplate列表,这个列表在存储过程中进行初始化。而对于ProcereGenerator的构造函数,处理定义了一个表示数据库连接字符串的databaseName的参数外,并以数组参数的形式指定了生成的存储过程基于的数据表名的列表。<#@ import namespace="System.Collections.Generic" #><#@ include file="ProcereTemplate.tt" #><#@ include file="T4Toolbox.tt" #><#+publicclass ProcereGenerator : Generator{public IEnumerable<ProcereTemplate> Templates{get; private set;}public ProcereGenerator(string databaseName, paramsstring[] tableNames) {if(null == tableNames || tableNames.Length == 0) {thrownew ArgumentNullException("tableNames"); } this.Templates = InitlizeTemplates(databaseName,tableNames); }private IEnumerable<ProcereTemplate> InitlizeTemplates(string databaseName, string[] tableNames) { foreach(string tableName in tableNames) {yieldreturnnew InsertProcereTemplate(databaseName, tableName);yieldreturnnew UpdateProcereTemplate(databaseName, tableName);yieldreturnnew DeleteProcereTemplate(databaseName, tableName); } }protectedoverridevoid RunCore() {foreach(ProcereTemplate tempalte inthis.Templates) { tempalte.RenderToFile(tempalte.GetProcereName() + ".sql"); } }}#>真正的存储过程的T-SQL脚本实现在重写的RunCore中。由于具体的文本转化逻辑都定义在了ProcereTemplate中了,所以在这里我们需要遍历的ProcereTemplate集合中每一个Template对象,调用RenderToFile方法将相应的存储过程的脚本写入以存储过程命名同名的.sql文件中。三、ProcereGenerator如何被使用?我们最后来看看我们创建的ProcereGenerator最终如何被应用于具体的代码生成。其实很简单,我们只需要创建相应的模板文件,通过<#@include>将定义ProcereGenerator类的TT文件包含近来,最后以代码语句调用块(<#StatementCode#>)的形式实力化该对象,并调用Run方法即可。在构造函数中指定数据库连接字符串的名称和数据表名的列表。下面是基于但表的T4模板。<#@ template language="C#" hostSpecific="true" debug="true" #><#@ include file="Templates\ProcereGenerator.tt" #><#new ProcereGenerator("TestDb","T_PRODUCT").Run();#>下面是基于多表的T4模板:<#@ template language="C#" hostSpecific="true" debug="true" #><#@ include file="Templates\ProcereGenerator.tt" #><#new ProcereGenerator("TestDb","T_ORDER","T_ORDER_DETAIL").Run();#>当你代码生成工作执行之后,会多出一个与TT文件同名的附属文件,你需要手工删除掉它。从数据到代码——通过代码生成机制实现强类型编程[上篇]从数据到代码——通过代码生成机制实现强类型编程[下篇]从数据到代码——基于T4的代码生成方式
‘叁’ SQL Server在创建数据库时,使用什么数据库模板
代码如下:
USE [master]
GO
IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'HkTemp')
BEGIN
DROP DATABASE HkTemp --如果数据库存在先删掉数据库
END
GO
CREATE DATABASE HkTemp
ON
PRIMARY --创建主数据库文件
(
NAME='HkTemp',
FILENAME='E:\Databases\HkTemp.dbf',
SIZE=5MB,
MaxSize=20MB,
FileGrowth=1MB
)
LOG ON --创建日志文件
(
NAME='HkTempLog',
FileName='E:\Databases\HkTemp.ldf',
Size=2MB,
MaxSize=20MB,
FileGrowth=1MB
)
GO
--添加表
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'Hksj_User') AND type in (N'U'))
BEGIN
CREATE TABLE Hksj_User
(
Id INT IDENTITY(1,1) NOT NULL,
SName NVARCHAR(20) NOT NULL,
SNickName NVARCHAR(20),
SPassWord NVARCHAR(30) NOT NULL,
DCreateDate DATETIME ,
SCreator NVARCHAR(20),
SEmail NVARCHAR(50),
SPhone NVARCHAR(50),
SIdentifyId NVARCHAR(30),
DLastTimeLogOn DATETIME
PRIMARY KEY CLUSTERED
(
Id ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
--添加注释
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'登录名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Hksj_User', @level2type=N'COLUMN',@level2name=N'SName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'邮箱' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Hksj_User', @level2type=N'COLUMN',@level2name=N'SEmail'
‘肆’ SQL数据库用代码创建 怎么创建
create database 数据库名称
on
(
name='aaa',
filename='aaa.dbf',
size=初始大小,
maxsize=存储上限,
filegrowth=增长增量
)
log on
(
name='b',
filename='b.ldf',
size=初始大小,
maxsize=存储上限,
filegrowth=增长增量
)
(4)最简单的sql模板扩展阅读:
SQL语句创建基本数据库
SQL语句代码:CREATE DATABASE 语句。
CREATE DATABASE Epiphany
ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_data.mdf',
SIZE = 5MB,
MAXSIZE = 20,
FILEGROWTH = 20
)
LOG ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_log.ldf',
SIZE = 2MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB
);
可以用这个模板,例子:
CREATE DATABASE Epiphany
ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_data.mdf',
SIZE = 5MB,
MAXSIZE = 20,
FILEGROWTH = 20
)
LOG ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_log.ldf',
SIZE = 2MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB
);
完毕!
‘伍’ 数据库系统sql
master,model,msdb,northwind,pubs,tempdb
pubs 示例数据库
pubs 示例数据库以一个图书出版公司为模型,用于演示 Microsoft® SQL Server™ 数据库中可用的许多选项镇世液。该数据库及其中的表经常在文档内容所介绍的示例中使用。
Northwind 示例数据库
Northwind Traders 示例数据库包含一个名为 Northwind Traders 的虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易。
master 数据库
master 数据库记录 SQL Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置。master 数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据返让库文件的位置。master 数据库记录 SQL Server 的初始化信息,它始终有一个可用的最新 master 数据库备份。
tempdb 数据库
tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 SQL Server 生成的工作表。tempdb 数据库是全局资御物源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb 数据库在 SQL Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQL Server 的一个会话保存到另一个会话。
默认情况下,在 SQL Server 在运行时 tempdb 数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。如果为 tempdb 数据库定义的大小较小,则每次重新启动 SQL Server时,将tempdb 数据库的大小自动增加到支持工作负荷所需的大小这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用 ALTER DATABASE 增加 tempdb 数据库的大小。
model 数据库
model 数据库用作在系统上创建的所有数据库的模板。当发出 CREATE DATABASE 语句时,新数据库的第一部分通过复制 model 数据库中的内容创建,剩余部分由空页填充。由于 SQL Server 每次启动时都要创建 tempdb 数据库,model 数据库必须一直存在于 SQL Server 系统中。
msdb 数据库
msdb 数据库供 SQL Server 代理程序调度警报和作业以及记录操作员时使用。
‘陆’ vs2012的sql数据库模板怎么创建表恳求帮忙
这些操作,保存的只是sql脚本,还需要执行脚本才能添加表。
在上面第二张图中,编辑好了,点左上角“更新”按钮,会弹出一个框,再点“更新数据库”,这时才真正建表。在数据库的表上右击,刷新,即可见。
‘柒’ 数据库是SQL Server在创建数据库时,可以使用什么数据库模板
SQL server裏面有个叫企业管理器的东西,进去后用它自带的模板建库就好了啊,很方便的,不需要敲什麽代码