您的位置:首页 > 数据库

SQL Server之建库常识、文件组、数据类型 @Lennon

2011-10-26 14:38 218 查看
前几天参加了方勇老师的sql 数据库管理培训,整理了下培训笔记分享给大家,以下主要针对开发人员。

对于我们开发人员来说,通常涉及到数据库,一般会想到如何建库、创建视图、创建索引、编写sql编程语句(执行增删改查)、创建存储过程、多表联查、子查询等等。

提一下数据库在开发中也会涉及到的其他基础操作

1.数据库对象名称

在执行sql语句时,在sql server Management Studio左上角可以看到当前数据库,需要访问其他数据库则需要加上完全限定名称。dbo为默认架构

如果要跨实例访问,需要建立链接服务器

--完全限定名称:服务器.数据库.架构.对象
select * from [DD-s210017].NorthwindCS.dbo.产品


2.移动TempDB的位置

用SQL语句指定移动TempDB的位置

USE master;
go

ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev,
FILENAME = 'H:\SQLData\tempdb.mdf');
go

ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev,
FILENAME = 'H:\SQLData\templog.ldf');
go
--文件'tempdev'在系统目录中已修改。新路径将在数据库下次启动时使用。
--文件'templog'在系统目录中已修改。新路径将在数据库下次启动时使用。


3.观察文件增长

--创建数据库
Create DATABASE [TestDB5] on PRIMARY
(NAME =N'TestDB5',FILENAME = N'H:\SQLData\TestDB5.mdf',SIZE = 3072KB,FILEGROWTH = 1024KB)
LOG ON
(NAME =N'TestDB5_log',FILENAME = N'H:\SQLData\TestDB5_log.ldf',SIZE = 1024KB,FILEGROWTH = 10%)
go

--观察数据文件的增长
Declare @n int=0
while @n <5000
Begin
Insert T1 Values('abc')
Set @n=@n+1
end
go

--观察添加了数据文件之后的增长
USE [master]
go
alter database [testdb5]
add file (name = N'testdb5_data2',
filename = N'H:\SqlData\TestDB5_data2.ndf',
size =1072KB,fileGrowth=1024kb) to filegroup [primary]
go

use testdb5
go
declare @n int=0
while @n <5000
begin
Insert T1 values('abc')
set @n=@n+1
end
go

--限制文件的增长后 观察数据文件的增长
use [master]
go
alter database [testdb5] modify file
(name = N'Testdb5',maxsize = unlimited,filegrowth=0)
go


4.数据类型和表

数据类型可分为系统数据类型、用户定义数据类型、用户定义类型

在数据库-可编辑性-类型 可以找到系统数据类型及用户定义类型,在SQL中,所有系统数据类型都有详细说明。下面创建自定义数据类型

Use NorthwindCS
go
--用户自定义的数据类型,引用系统数据库类型
Create Type dt_Address From varchar(300)
go

--创建表或者变量可以使用用户自定义的数据类型
Create Table t11(Id int,Name char(5),Address dt_Address)
go

--创建表
Crate Table t12(
Id int Not Null,Name char(5),
Address varchar(300) Collate Chinese_PRC_CI_AS NULL
go

--Identity,自动增长,无法实现跨多张表的唯一性
Create table t13(Id int Identity,name char(20))
go
Insert t13 Values('abc')

--取当前会话最后生成的编号
Select @@Identity

--GUID global unique identity
Select NEWID() --生成一个随机GUID值
Create table t14(Id UniqueIdentifier Default NewID(),name char(20))
go
Insert t14 Values(NEWID(),'abc')

Select NewSequentialID()  --生成一个有序号的GUID值

--只能用作默认值,不会导致索引碎片,SQL2005新增的
Create table t15(Id UniqueIdentifier Default NewSequentialID(),name char(20))
go
Insert t15 values(Default,'abc')

--计算列,默认不存储数据
--可以设置为'持久的'计算列,支持创建索引,优化计算结果的检索
Create table t16(Id int Identity,Unitprice money,Quantity int,
Discount decimal(3,2),
Subtotal as Unitprice * Quantity*(1-Discount))
go


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: