SQL语句

一.数据定义语句DDL

1.CREATE

CREATE DATABASE test
ON PRIMARY                                --建立主数据文件
(NAME=test,
FILENAME=E:\MSSQL_DATA\test.mdf,
SIZE=5,
MAXSIZE=5,
FILEGROWTH=1)
LOG ON
(
NAME=test_log,
FILENAME=E:\MSSQL_LOG\test_log.ldf,
SIZE=1,
MAXSIZE=2,
FILEGROWTH=1
)
use test
create table teacher(
ID int Identity(1,1) not null,     --identity表示自增,从1开始每次自增1
Name varchar(20) not null,
Sex char(2) null,
Phone varchar(20) not null,
Sallary smallmoney null,
Address varchar(100) null,
Email varchar(30) null)  --可变长度,最大为255个字符

2.DROP

DROP DATABASE test
DROP TABLE teacher    --注意和delete的区别,delete teacher是删除表teacher中的所有数据,DROP是删除表

3.ALTER

add、remove、modify

ALTER DATABASE test
modify name=test_t

ALTER TABLE teacher
add Subject varchar(30) null

ALTER TABLE teacher      --每次修改之前都要加一句ALTER,不能连续写2行
DROP COLUMN price
--加入组
ALTER DATABASE test
ADD FILEGROUP test_group

--连续加入2个次数据文件
ALTER DATABASE test
ADD FILE 
(NAME=test1,
FILENAME=E:\MSSQL_DATA\test1.ndf,
SIZE=5,
MAXSIZE=5,
FILEGROWTH=1),
(
NAME=test2,
FILENAME=E:\MSSQL_DATA\test2.ndf,
SIZE=5,
MAXSIZE=5,
FILEGROWTH=1
) to filegroup test_group
GO
ALTER DATABASE test
ADD LOG FILE(
NAME=testlog1,
FILENAME=E:\MSSQL_LOG\testlog1.ldf,
SIZE=1,
MAXSIZE=3,
FILEGROWTH=1)
GO

--删除数据文件和组
ALTER DATABASE test
remove file test2
ALTER DATABASE test
remove filegroup tesst_group

 

二.数据操作语句DML

1.INSERT

  • identity

在 insert into 该 table 时, 不能指定该 identity 栏位值.

identity 由资料库维护, 所以一般要在 insert 后取得该 identity 栏位值, 利用全局变量 @@identity 来取得最后影响的 insert 后产生的 identity 值.

显示地插入identity值后,不能update,只能插入。并且插入之后,不改变原来的identity的最大值,仍然在前一次自动插入的值的基础上加1.

查询目前的最大identity值,修改最大值,都用命令dbcc。只有当之前设置的identity比目前的值小,恢复时才会恢复到以前的比较大的identity值,否则不会改变。

--显示插入以及identity值的引用
set identity_insert teacher on
insert into teacher(ID,Name,Sex,Phone,Sallary) values(@@IDENTITY+1,wangying,nv,1812,10000)   
select * from teacher
set identity_insert teacher off    

set identity_insert teacher on                                                             
insert into teacher(ID,Name,Sex,Phone,Sallary) values(1,wangying,nv,1812,10000)
select * from teacher
set identity_insert teacher off

--在insert into该table时,不能指定该identity栏位的值
insert into teacher(Name,Sex,Phone,Sallary) values(wangying,nv,1812,10000)   
select * from teacher

insert into teacher values(wangying,nv,1812,10000,null,null,null)  
select * from teacher

--查询目前identity的最大值
dbcc checkident(teacher,NORESEED)

--修改目前identity的最大值以及重设该值
dbcc checkident(teacher,RESEED,100)
dbcc checkident(teacher,RESEED)     

       

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。