sqlserver基本语句(sqlserver基本语句大全)

http://www.itjxue.com  2023-01-28 13:00  来源:未知  点击次数: 

SQLSERVER2000数据库的基本语句有哪些?

针对数据库对象:create创建、alert修改、drop删除

针对数据表对象:select查询、insert新增插入、update修改、delete删除、truncate截断清空整表

针对数据库权限管理:grant授权用户权限、revoke撤销用户权限

SQLServer 语句怎么写

嵌套比较多,你慢慢看。

select D.address, D.time, D.value

from (select A.address, A.time, A.value

from A

union

select B.address, B.time, B.value

from B) D,

(select C.Address, max(C.time) as maxTime

from (select A.address, A.time, A.value

from A

union

select B.address, B.time, B.value

from B) C

group by C.address) E

where D.address = E.address

and D.time = E.maxTime

SQLSERVER2000个人版常用语句

要不要给你传几个文件??QQ 253330532

---------------创建数据库----------------

create database zhang

on primary

(

name=zhang_m,filename='F:\database\zhang.mdf',---------主文件(主文件组中)

size=10,maxsize=100,filegrowth=2

),----------两个文件这间逗号隔开

----------------创建组fg1----------------------

filegroup fg1

(

name=zhang_n,filename='F:\database\zhang.ndf',---------组中的辅助文件

size=10,maxsize=100,filegrowth=20%

)

log on

(

name=zhang_l,filename='F:\database\zhang.ldf',--------- 事务日志文件(不能在文件组中)

size=4,maxsize=50,filegrowth=2

)

--------------添加文件组------------------

alter database zhang

add filegroup fg2

--------------添加辅助文件-------------------

alter database zhang

add file

(

name=zhang_n2,filename='D:\database\zhang.ndf',

size=8,maxsize=100,filegrowth=2

) to filegroup fg2-------------到指定文件组

--------------修改文件属性--------------------

alter database zhang

modify file(name=zhang_n2,size=10,maxsize=100,filegrowth=2)--必须有size属性

-------------指定默认文件组-------------------

alter database zhang

modify filegroup fg1 default--或者readonly\readwrite(必须保证此时文件组内有文件,创建时不能指定属性)

--------------删除文件与文件组------------------

alter database zhang

remove file zhang_n2

alter database

remove filegroup fg2---必须保证该文件组是空的

-------------删除数据库----------------

drop database zhang,RIC

-------------重命名数据库--------------

sp_renamedb 'zhang','RIC'

-------------查看数据库----------------

sp_helpdb zhang

Sp_rename ‘表名.列名’,’新名’

sp_helpdb zhang---------查看数据库属性和其中文件

sp_helpdb ------------查看所有数据库信息

sp_helpfile student-------查看文件属性

sp_helpfilegroup student--------查看文件组内容

sp_helpfilegroup-----------查看数据库中的文件组

sp_tables------------------查看数据库中的表

sp_help table1 -------------------------查看表的结构

drop table table1-------------------------删除表

sp_addtype type1--------------------------创建用户自定义数据类型

sp_droptype type1-------------------------撤消用户自定义数据类型

sp_help type1----------------------------查看用户自定义数据类型

sp_helpdb database1-----------------------查看数据库属性和其中文件

sp_helpfile file1-------------------------查看文件属性

sp_tables---------------------------------查看数据库中的表

sp_helpfilegroup fgp1---------------------查看文件组信息

sp_renamedb-------------------------------重命名数据库

sp_rename table1,table2------------------表格重命名

alter table t6

add D char(10) null----------------------增加一列

alter table t6

alter column a char(10) not null----------修改列的属性

set identity_insert t3 on-----------------手动输入

Alter table table_name

Drop constraint constraint_name------------撤销约束

alter database school----------------------修改文件组属性

modify filegroup student default

alter database school----------------------修改文件属性

modify file

(name=teacher_dat,size=20,maxsize=30,filegrowth=30%)

sp_addtype 类型的名,[系统数据类型],[‘空类型’]

空类型表示用户自定义数据类型如何处理空值.它必须被放在单引号里,值为‘NULL’或‘NOT NULL’ .

凡是包含了如()或,等分隔符的系统数据类型,如char(9),必须用引号括起来,即‘char(9)’。

用户自定义数据类型在数据库中命名必须惟一。

use zhang

go

------------创建用户自定义类型-----------

--空类型表示用户自定义数据类型如何处理空值.它必须被放在单引号里,值为‘NULL’或‘NOT NULL’ .

--凡是包含了如()或,等分隔符的系统数据类型,如char(9),必须用引号括起来,即‘char(9)’。

--用户自定义数据类型在数据库中命名必须惟一。

sp_addtype typa , 'char(10)','not null'----引号,逗号

sp_droptype typa ----删除前确保该类型不有被使用

----------------------------------------------------------------------------------------------------------

create table tab1

(

a int primary key ,

b typa

) on fg----------on

--------------------删除表--------------------

drop table tab1,tab2

------------------修改表结构------------------

alter table tab1 -----------------------增加列

add c char(5) default '山东' --ALTER TABLE 只允许添加可包含空值

-- --或指定了 DEFAULT 定义的列

alter table tab1

add d int identity(100,1)

--

alter table tab1

add e int null constraint nu unique

--

alter table tab1 ---------------------修改列属性

alter column a char(10) not null

--

alter table tab1----------------------删除列

drop column a, b --每个表必须保证有一个数据列

sp_rename 'tab.a','name'-------------重命名列

--------------------------------------------------------------------------------------------------------------

--------------创建约束-----------------------

create table tab2

(

a typa not null constraint pka primary key,---不可以有空值

b char(10) null constraint unb unique, ---只能有一个空值

c int null constraint ckc check(c like '[0-9][0-9][0-9]-[0-9][0-9][0-9]'),--可以输入空值

d int null constraint frd foreign key (d) references tab1 (a),--两个列的类型相同

f char(10) null constraint dff default '青岛'

)

-----------添加约束------------------------

alter table tab2

with nocheck ----------------不对表中现有的数据检查,

add constraint ckb check(b in( 'zhang','niit','ric'))

--

alter table tab2

add constraint dfb default '山东' for b-----for

--

alter table tab2

add constraint fkc foreign key (c) references tab1 (a)

--

alter table tab2

add constraint unf unique(f)

-----------撤消约束--------------------------

alter table tab2

drop constraint pka -----------------必须保证该不被别的列引用

----------------------------------------------------------------------------------------------------------------

---------------规则、缺省--------------------

create rule rulc---------------------创建

as @c between 0 and 9000

--

drop rule rulc-----------------------删除,保证该规则止此时没有被引用

sp_bindrule rulc ,'tab2.c'--表名引号

sp_bindrule rulc ,typa,futureonly-----绑定,futureonly只针对用户自定义数据类型

--防止用户自定义类型的现有列并入规则

--只有以后建表用到typa时才适用此规则

sp_unbindrule 'tab2.c'

sp_unbindrule typa,futureonly --------解除,futureonly防止用户自定义类型的

--现有列取消规则

create default dfm--------------------创建

as '9999'

--

drop default dfm ---------------------删除,保证该默认此时没有被引用

sp_bindefault dfm, typa ,futureonly---绑定,futureonly 只针对用户自定义类型

sp_unbindefault typa ,futureonly------解除

----------------新规则将代替旧规则,新默认将代替旧默认-----------

-----------------------------------------------------------------------------------------------------------------

---------------数据维护---------------------

use zhang

go

create table t1-------参照

(

a int,

b int,

)

--

create table t2

(

a int,

b int

)

--

create table t3

(

a int identity(1001,1),

b int,

c int default '20'

)

--

insert t1 values(1,2)

--

insert t3(a,b,c) values(11,12,default)

--

insert t1 ---------------------用子查询把现有数据插入到表中

select a,b from t3

where a0

--

insert t3(a,b,c)

select a,45,b from t1---------列数不符时可加入用户自定义列--45

--

set identity_insert t3 on-------手动输入自增长列

--仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,

--才能在表 't3' 中为标识列指定显式值。

--且当设为on时,必须为该列输入值

--------------------------------------------------------------------------------------------------------------

--------------更新'数据'-------------

----更新不能违反约束-----

update t3

set b=a+1

where b10

--

update t3

set c=default------使用default更新数据

where c=20

--

update t3

set t3.b=t2.b+t2.a

from t3 join t2 -------数据来源表t2,t3

on t3.a=t2.a

where t3.c=20

--

update t3

set t3.b=t2.b+t2.a

from t2,t3 ----------数据来源表t2,t3

where t3.a=t2.a and t3.c=20

----------------------------------------------------------------------------------

----------删除数据------------------

delete t3

from t2,t3--------------数据来源表t2,t3,或者使用连接类同更新

where t2.a in (t3.a+3)

--

delete t3

where c like '[0-9][0-9][0-9]'and c between 10 and 100

-----截短表,删除所有数据-----

truncate table t3

--truncate 删除速度快不写事务日志,不能使用where

------------------------------------------------------------------------------------

UPDATE titles

SET price = price * 2

WHERE pub_id IN

(SELECT pub_id

FROM publishers

WHERE pub_name = 'New Moon Books')

--下面是使用联接的等效 UPDATE 语句:

UPDATE titles

SET price = price * 2

FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id

AND pub_name = 'New Moon Books'

--通过下面嵌套的查询,可以删除商业书籍的所有销售记录:

DELETE sales

WHERE title_id IN

(SELECT title_id

FROM titles

WHERE type = 'business')

--下面是使用联接的等效 DELETE 语句:

DELETE sales

FROM sales INNER JOIN titles ON sales.title_id = titles.title_id

AND type = 'business'

熟悉Oracle或SQLServer数据库安装,及基本的SQL语句的使用

Oracle与Sql server都遵循SQL-92标准:

区别如下:

1.Oracle中表名,字段名,存储过程名,变量名不能超过30个字符串长度。

2.Oracle中不支持Top 语法。使用whererownum n 代替。但需要注意如果在Top前有排序的操作,则需要先排序在利用rownum取得。

3.Oracle中光标的使用与SqlServer中有挺大差别,主要是在循环控制方面不一致。

在Oracle中如果某列是Date类型,那么它默认的格式是yyyy-MM-dd,如果使用where colDate = ‘2005-06-08 17:14:57’就会出错,‘2005-06-08’可以。如果此时需要精确比较时间(小时,分,秒),可以采用下列方法:TO_DATE('2005-6-8 17:14:57','yyyy-mm-dd hh24:mi:ss')。由于Oracle和SQLServer在DateTime上对SQL标准的拓展实现方式不同,因此不能用同一个SQL实现。

4.Oracle中的TimeStamp(时间戳)与SqlServer中的差别很大。SqlServer中的TimeStamp是二进制格式存储在数据库中,可以将DataSet中的这个字段类型设定为base64Binary类型。Oracle中的TimeStamp是时间格式存储的。因此,无法用同一个DataSet既装载SqlServer的TimeStamp,有装载Oracle的TimeStamp.由于在应用程序中很少用到这个值,因此可以不检索这个字段。

5.Oracle中的TimeStamp不能像SqlServer在传入数据的时候自动填充,可以设定默认值systimestamp来实现类似功能。

6.Oracle中没有Boolean的字段类型,可以用intger或者char代替SqlServer中的bit类型。

7.Oracle中会将””空字符串当多NULL处理,也就是说,当应用程序往数据库中插入一个空字符串时,实际数据库会尝试插入一个NULL。如果这个字段是NOTNULL类型,那么就会出错,这种情况下可以用别的默认值代替空字符串。当从SqlServer导入数据到Oracle的时候,在NOTNULL列上的空字符串会导致导出操作失败。此时可以在导出向导中手工修改SQL脚本,将空字符串设定成一个特殊值。

(责任编辑:IT教学网)

更多

推荐ASP教程文章