码迷,mamicode.com
首页 > 数据库 > 详细

33. SQL -- 管理数据库和数据库表(2)

时间:2015-04-03 06:52:51      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:database   数据库表   

 

修改数据

在数据中添加或除文件和文件。也可用于更改文件和文件的属性,例如更改文件的名称和大小。ALTER DATABASE 提供了更改数据名称、文件名称以及数据文件和日志文件的逻辑名称的能力。

法:

ALTER DATABASE database {

ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP filegroup_name ]

| ADD LOG FILE < filespec > [ ,...n ]

| REMOVE FILE logical_file_name

| ADD FILEGROUP filegroup_name

| REMOVE FILEGROUP filegroup_name

| MODIFY FILE < filespec >

| MODIFY NAME = new_dbname

| MODIFY FILEGROUP filegroup_name {filegroup_property | NAME =

new_filegroup_name }

| SET < optionspec > [ ,...n ] [ WITH < termination > ]

| COLLATE < collation_name >

}

其中

< filespec > ::=

( NAME = logical_file_name

[ , NEWNAME = new_logical_name ]

[ , FILENAME = ‘os_file_name‘ ]

[ , SIZE = size ]

[ , MAXSIZE = { max_size | UNLIMITED } ]

[ , FILEGROWTH = growth_increment ] )

DEMO:

alter database db1

add file

(name = file1,

filename = ‘c:\Program Files\Microsoft SQL

Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\file2.ndf‘)

除数据

从数据器中除一个或多个数据除数据除数据所使用的数据文件和磁文件。

DROP DATABASE database_name [ ,...n ]

参数

database_name:指定要除的数据名称

建及管理表

基本概念

T-SQL 建表的法定

l 个表有一个名称,称表名或系名。表名必以字母开头,最大30 个字符。

l 表包含若干列,列名惟一,列名也成属性名。

l 同一列的数据必要有相同的数据型。

l 表中的一列数须为一个不可分割的数据

l 表中的一行称一条记录

列属性:

表的列名在同一个表中具有惟一性,同一列的数据属于同一数据型。

NULL NOT NULL

IDENTITY

注意:一个列不能同具有NULL 属性和IDENTITY 属性,只能二者其一。

SQL 中表查询方式:

描:堆表的查询方式,即未建索引

堆表+索引:

索引: 聚集索引: 数据按物理存放位置排序,

非聚集索引: 在聚集索引的基上,建立索引,一般用于why 条件

建表:

1)CREATE TABLE 法:

CREATE TABLE

[ database_name.[ owner ] .| owner.] table_name

( { < column_definition >| column_name AS computed_column_expression | <

table_constraint > } [ ,...n ] )

[ ON { filegroup | DEFAULT } ] [ TEXTIMAGE_ON { filegroup | DEFAULT } ]

< column_definition > ::= { column_name data_type } [ [ DEFAULT constant_expression ]|

[ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ]] [ ROWGUIDCOL]

[ < column_constraint > ] [ ...n ]

另外,在建表要注意以下几点:

一个表至少有一列,最多不超1 024 列。

个数据中最多可以200 万个表。

表在存储时使用的位是(Extent)。一个区分8 个数据每页8KB。在建表,会分配它一个初始值为一个区的存。当增加表的存间时,以为单位增加。

2)、使用形化界面建表:

数据 → 表 → 新建表 → 定列名、数据型、是否允null → 列属性:定认值

列属性配置:

DEMO

建表tb3,定co11 int 数据型,定自增列,起始值为1,增幅度1,定,定co12 ,数据char(10)

在向表中写入数据co11 列不需指定,其会自

use mytest

go

create table tb3

(co11 int identity(1,1) primary key ,

co12 char(10))

insert into tb3 values (‘admin‘)

go 100

select * from tb3

义实验用表格:

DEMO1建一个商信息表;

包含商ID,商名称,要求将商ID 设为,所有列not null

create table Toybradn

(cBrandld char(3) primary key not null, --not null

cBrandName char(20) not null)

go

select * from Toybradn

看表列信息:

数据 → 表 → 列 | key 信息等

插入数

insert into Toybradn values (‘P01‘,‘bus‘)

insert into Toybradn values (‘P02‘,‘bike‘)

insert into Toybradn

values (‘A01‘,‘desk‘),(‘A02‘,‘JF‘)

select * from Toybradn

数据插入方式:

AT-SQLinsert into

B形化界面:数据 → 表 → 右编辑200 行 → 入内容

C、在EXCEL 中,对应表中各列系,建立好相数据,点击复制,在SQL 数据 → 表

→ 右编辑200 行 → 粘

DEMO2建一个玩具信息表

create table toys

(cToyid char(6) primary key , --玩具ID

vToyName varchar(20) not null, --名称

vToyDescription varchar(250), --

cCategoryld char(3), --种类

mToyRate money not null , --价格

cBrandld char(3) references Toybradn(cBrandld), --,引用表Toybradn中的

cBrandld列,玩具ID

imPhoto image, --玩具

siLowerAge smallint not null, --下限

siUpperAge smallint not null , --上限

siToyWeight smallint , --玩具重量

vToyimgPath varchar(50)) --片路径

select * from toys

当表建完成后,若需在形化界面修改表列参数,需修改:

工具 → 选项designers → 表设计器及数据库设计器 → (取消)阻止保存要求重新建表的更改写入一条数据:

insert into toys values

(‘P0001‘,‘bus‘,‘A-B1‘,‘BIG‘,150,‘P01‘,NULL,3,4,NULL,NULL)

由于cBrandld 列定了外,因此如果cBrandld 列中的内容与商表中不对应不能写入数据.

DEMO3售表

售表:使用订单号做建一个聚集索引.

create table Orders

(

docno char(20), --订单

docdate datetime , --日期

cust Nvarchar(100), --

carrency char(3), --地点

rate numeric(8,4), --订单

constraint pk_docno primary key clustered

(docno asc)

)

DEMO4售明表:

create table OrdersDetail

(

txcode char(10),

docno char(20),

docseq smallint,

part varchar(30),

txqty numeric(12,4),

price numeric(12,4),

constraint pk_OrdersDetail primary key clustered

(

[txcode] asc,

[docno] asc,

[docseq] asc

)

)

3)临时表:

可以用CREATE TABLE 命令建表局部的或全局作用的临时表。其法与建一般表基本相同,只是在局部临时表的表名前要使用符号―#,全局临时表的表名前要使用符号―##

以便与一般的表相区

--临时表并附

create table #Toybradn

(cBrandld char(3) primary key ,

cBrandName char(20) not null)

insert into #Toybradn

select * from Toybradn

go

select * from #Toybradn

/*或者:

将一个实际表内容into到一个临时表,自动创*/

select *

into #tmpt

from Toybradn

select * from Toybradn

select * from tempdb.dbo.#tmpt

--临时表是存于系数据tempdb

修改表

ALTER TABLE 命令修改表构通更改、添加、除去列和束,或者通启用或禁用束和触器来更改表的定

ALTER TABLE 法:

ALTER TABLE table

{ [ ALTER COLUMN column_name

{ new_data_type [ ( precision [ , scale ] ) ]

[ COLLATE < collation_name > ]

[ NULL | NOT NULL ]

| {ADD | DROP } ROWGUIDCOL }

]

| ADD

{ [ < column_definition > ]

| column_name AS computed_column_expression

} [ ,...n ]

| [ WITH CHECK | WITH NOCHECK ] ADD

{ < table_constraint > } [ ,...n ]

| DROP

{ [ CONSTRAINT ] constraint_name

| COLUMN column } [ ,...n ]

| { CHECK | NOCHECK } CONSTRAINT

{ ALL | constraint_name [ ,...n ] }

| { ENABLE | DISABLE } TRIGGER

{ ALL | trigger_name [ ,...n ] }

}

使用形化界面修改:

数据 → 表 → 设计

DEMO1:在tb3 中新增一列

alter table tb3

add co13 nvarchar(20)

DEMO2:修改tb3 中,列co13 的数据char(30)

alter table tb3

alter column co13 char(30)

sp_help tb3:看表的详细信息

sp_spaceused tb3看表的存储过

sp_rename: 修改表名和列名

DEMO

/*A. 重命名表

以下示例将SalesTerritory 表重命名SalesTerr

制代*/

USE AdventureWorks;

GO

EXEC sp_rename ‘Sales.SalesTerritory‘, ‘SalesTerr‘;

GO

/* B. 重命名列

以下示例将SalesTerritory 表中的TerritoryID 列重命名TerrID

制代*/

USE AdventureWorks;

GO

EXEC sp_rename ‘Sales.SalesTerritory.TerritoryID‘, ‘TerrID‘, ‘COLUMN‘;

GO

/* C. 重命名索引

以下示例将IX_ProductVendor_VendorID 索引重命名IX_VendorID

制代*/

USE AdventureWorks;

GO

EXEC sp_rename N‘Purchasing.ProductVendor.IX_ProductVendor_VendorID‘,

N‘IX_VendorID‘, N‘INDEX‘;

GO

/* D. 重命名名数据

以下示例将Phone 名数据型重命名Telephone

制代*/

USE AdventureWorks;

GO

EXEC sp_rename N‘Phone‘, N‘Telephone‘, N‘USERDATATYPE‘;

3)、除表:

drop table除表

elect:除一条记录

delete from Toybradn

where cBrandld = ‘A12‘

本文出自 “Ricky's Blog” 博客,请务必保留此出处http://57388.blog.51cto.com/47388/1627859

33. SQL -- 管理数据库和数据库表(2)

标签:database   数据库表   

原文地址:http://57388.blog.51cto.com/47388/1627859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!