数据库语法大全.docx

上传人:b****7 文档编号:9797501 上传时间:2023-02-06 格式:DOCX 页数:21 大小:21.88KB
下载 相关 举报
数据库语法大全.docx_第1页
第1页 / 共21页
数据库语法大全.docx_第2页
第2页 / 共21页
数据库语法大全.docx_第3页
第3页 / 共21页
数据库语法大全.docx_第4页
第4页 / 共21页
数据库语法大全.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据库语法大全.docx

《数据库语法大全.docx》由会员分享,可在线阅读,更多相关《数据库语法大全.docx(21页珍藏版)》请在冰豆网上搜索。

数据库语法大全.docx

数据库语法大全

1.sql创建数据库的语法; 

【语法】 

create database database-name 

【举例】 

create database my_rsgl (创建:

人事管理库) 

【说明】 

本代码用于创建数据库,可在“企业管理器”中执行,也可以在“查询分析器”中执行,也可以在delphi等开发工具中执行。

 

以下将要讲到的语法都有多种执行方式,下文不再复述。

  

2.sql删除数据库的语法; 

【语法】 

drop database database-name 

【举例】 

drop database my_rsgl (删除:

人事管理库) 

【说明】 

删除数据库之前,必须确认数据库是否真的要删除,如果数据库中还包含着重要的数据,删除之后就后悔莫及,所以不要随意操作这个命令。

3.sql备份、恢复数据库的语法; 

a、怎样备份?

 

【语法】 

backup database database-name to disk=路径 

【举例】 

backup database my_rsgl to disk= 'f:

\back1.bak ' 

【说明】 

备份数据库时,除指定有效的硬盘路径以外,注意还要取一个文件名。

 B、怎样恢复?

 

【语法】 

use master restore database database-name from disk=路径 with replace 【举例】 

use master restore database my_rsgl from disk='f:

\back1.bak ' with replace 

【说明】 

恢复数据库时,在后面加上:

with replace,是表示按“完全恢复”的方式进行恢复。

  

4.sql创建表的语法; 

【语法】 

create table  tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 

【举例】 

create table [人员表]

 ([工号] [nvarchar] (50) collate chinese_prc_ci_as null,

[姓名] [nvarchar] (50) collate chinese_prc_ci_as null,

[性别] [nvarchar] 

(2) collate chinese_prc_ci_as null) on [primary] 

【说明】 

代码中,表名、字段名和数据类型都要写在“[]”里面,如果字段的类型是字符型,都必须在“()”里面指定长度。

  

5.sql删除表的语法; 

【语法】 

drop table table-name 

【举例】 

drop table 人员表 (删除:

人员表) 

【说明】 

删除表以及表中的全部数据,注意在sql server里面,删除表是真正的删除,不是伪删除。

  

6.sql向表中增加一个“列”的语法; 

【语法】 

alter table table-name add column col type  

【举例】 

alter table 人员表 add 年龄 nvarchar(10) null

【说明】 

增加的字段必须指定数据类型,如果是字符型的,必须指定长度。

 附:

删除列的语法:

 

alter table 人员表 drop column 性别 

附:

修改某列的数据类型的语法:

 

alter table 工资表 alter column 工号 varchar(100)  

7.sql给表中的字段增加“主键”的语法; 

a、怎样增加主键?

 

【语法】 

alter table-name add primary key (col)  

【举例】 

alter table 人员表 add primary key (工号) 

【说明】 

不能在可以为“空”的字段上增加主键,否则会报错。

 

B、怎样删除主键?

【语法】 

alter table-name drop 主键约束  

【举例】 

alter table 人员表 drop pk_人员表 

 

8.sql给表中的字段创建“索引”的语法;

【语法】 

create [unique] index idxname on tabname(col„.)   

【举例】 

create unique index index_gh on 人员表(工号) 

【说明】 

跟字段创建索引后,可用于查询语句中,提高检索速度。

  

9.sql删除表中某个“索引”的语法; 

【语法】 

drop index idxname   

【举例】 

drop index 人员表.index_gh 

【说明】 

注意索引一旦建立后,不能修改,只能先删除了重新建立。

  

10.sql创建视图的语法; 

【语法】 

create view viewname as select statement   

【举例】 

create view v_ryb as select * from 人员表 

【说明】 

不引用变量的查询语句,都可以用代码创建视图。

11.sql删除视图的语法; 

【语法】 

drop view viewname   

【举例】 

drop view v_ryb  

12.sql向表中插入数据的语法; 

【语法】 

insert into table1(field1,field2) values(value1,value2)   

【举例】 

insert into 人员表(工号,姓名,性别) values ('gh006','黄刚','男') 

【说明】 

只有给选定字段插入数据时,才需要在表名的后面用“()”来排列字段名。

  

13.sql修改表中某条数据的语法; 

【语法】 

update 表名 set field1=value1 where 范围   

【举例】 

update 人员表 set 姓名= '洪七公' where 工号= 'gh001'  

【说明】 

写修改语句时,注意一般要指定where条件语句,否则就是对整个表的所有记录作修改,可能产生预期之外的严重后果。

  

14.sql删除表中某条数据的语法; 

【语法】 

delete from 表名 where 范围   

【举例】 

delete from 人员表 where 工号= 'gh002'  

【说明】 

如果没写where条件语句,那么删除的就是整个表的全部记录。

  

15.sql查询表中数据的语法; 

【语法】 

select * from 表名 where 范围 

【举例】 

查出全部字段:

select * from 人员表 where 工号= 'gh001'  

只查出指定字段:

select 工号,姓名 from 人员表 where 工号= 'gh001' 

【说明】 

“*”是通配符,表示查出全部字段。

  

16.sql排序、求总、求和、求平均、取最大、取最小的语法;

 a、排序 

【语法】

select * from 表名 order by field1,field2 [desc]   

【举例】 

select * from 人员表 order by gh,xm desc (降序) 

select * from 人员表 order by gh,xm asc (升序) 

b、求总 

【语法】 

select count as totalcount from 表名   

【举例】 

select count(*) as 记录数 from 人员表  

c、求和 

【语法】 

select sum(字段) as sumvalue from 表名   

【举例】 

select sum(工资) as 工资合计 from 人员表 

d、求平均 

【语法】 

select avg(字段) as avgvalue from 表名 

【举例】 

select avg(工资) as 平均工资 from 人员表 

e、取最大 

【语法】 

select max(字段) as maxvalue from 表名 

【举例】 

select max(工资) as 最大工资 from 人员表 

f、取最小 

【语法】 

select min(字段) as minvalue from 表名 

【举例】 

select min(工资) as 最小工资 from 人员表  

17.sql union运算符的用法; 

【作用】 

union 运算符通过组合其他两个结果表(例如 table1 和 table2)并消去表中任何重复行而组合生出一个结果表。

当 all 随 union 一起使用时(即 union all),不消除重复行。

两种情况下,组合表的每一行不是来自 table1 就是来自 table2。

   

【举例】 

不消除重复行的写法:

 

select gh,xm,xb from 人员表1 union all select gh,xm,xb from 人员表2

消除重复行的写法:

 

select gh,xm,xb from 人员表1 union select gh,xm,xb from 人员表2

【说明】 

用来组合的所有表的字段必须一致、或参与组合的表的字段必须一致。

18.sql except运算符的用法; 

【作用】 

except 运算符通过包括所有在 table1 中但不在 table2 中的行、并消除所有重复行而派生出一个结果表。

当 all 随 except 一起使用时 (except all),不消除重复行。

   

【举例】 

select gh,xm,xb from 人员表1 except all select gh,xm,xb from 人员表2  

【说明】 

本运算符在sql server 2000中不支持,sql server 2005版本及后续版中支持。

  

19.sql intersect运算符的用法; 

【作用】 

intersect 运算符通过只包括 table1 和 table2 中都有的行、并消除所有重复行而派生出一个结果表。

当 all 随 intersect 一起使用时 (intersect all),不消除重复行。

   

【举例】 

select gh,xm,xb from 人员表1 intersect all select gh,xm,xb from 人员表2  

【说明】 

本运算符在sql server 2000中不支持,sql server 2005版本及后续版中支持。

   

20.sql left (outer) join 语法; 

【作用】 

左外连接(左连接):

结果集既包括连接表的匹配行,也包括左连接表的所有行。

   

【举例】 

假设有这样两个表:

 

表一:

 

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

姓名      备注 

Aa        1111111 

Bb        2222222 

Cc        3333333 

表二:

 

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

姓名     年龄  性别

Aa        22   男 

Tt        33   女 

Cc        44   男 

Gg        55   女  

对于左外连接:

 

Select a.*,b.*  

From 表一 as a left join 表二 as b On a.姓名=b.姓名  

则查询的结果为:

 

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

姓名       备注     年龄    性别 

Aa        1111111    22     男 

Bb        2222222    null   null  

Cc        333333     44     男   

21.sql right(outer) join语法; 

【作用】 

右外连接(右连接):

结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

   

【举例】 

假设有这样两个表:

 

表一:

 

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

姓名      备注

Aa        1111111 

Bb        2222222 

Cc        3333333 

表二:

 

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

 姓名     年龄  性别

 Aa        22   男 

Tt        33   女 

Cc        44   男 

Gg        55   女 

对于右外连接:

 

Select a.*,b.*  

From 表一 as a right join 表二 as b On a.姓名=b.姓名 则查询的结果为:

 

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

姓名       备注     年龄    性别 

Aa        1111111    22     男

 Tt         null      33     女 

Cc        333333     44     男 

Gg         null      55     女  

22.sql full/cross (outer) join语法; 

【作用】 

全外连接:

不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

   

【举例】

select a.*,b.*  

From 表一 as a  full outer join  表二 as b 

On a.姓名=b.姓名  

23.sql group by分组的语法; 

【语法】 

select 字段,sum(字段) as 字段名 from 表名 group by 字段 

【举例】 

select 月份,sum(工资) as 月工资合计 from 人员表 group by 月份 

【说明】 

分组字段不能是:

text,ntext,image类型的字段。

  

24.sql分离数据库的语法; 

【语法】 

exec sp_detach_db '数据库名', 'true' 

【举例】 

exec sp_detach_db '人事管理库', 'true'  

25.sql附加数据库的语法; 

【语法】 

exec sp_attach_db @dbname='数据库名',@filename1=n'c:

\program files\sql server路径名+.mdf',@filename2=n'...填写路径...+.ldf' 

【举例】 

例1:

 

exec sp_attach_db @dbname=n'人事管理库' @filename1=n'c:

\人事管理库.mdf', @filename2=n'c:

\人事管理库.ldf' 例

2:

 

exec sp_attach_db @dbname=n'my_rsgl', 

@filename1=n'c:

\program files\microsoft sql server\mssql\data\my_rsgl.mdf', 

@filename2=n'c:

\program files\microsoft sql server\mssql\data\my_rsgl_log.ldf'  

26.sql修改数据库名称的语法; 

【语法】 

exec sp_renamedb 'old_name', 'new_name' 

【举例】 

exec sp_renamedb '人事管理库', '人员管理库' 

【说明】 

注意此修改只是改变了数据库的名称,而不是它在硬盘上的文件名。

27.sql between的用法; 

【作用】 

between限制查询数据范围时包括了边界值,not between不包括 

【语法】 

select * from table1 where time between time1 and time2 

select a,b,c from table1 where a not between 数值1 and 数值2 

【举例】 

select * from 人员表 

where (日期 between '1997-12-01' and '2012-06-01')  

select * from 人员表 

where (年龄 not between 30 and 40)  

【说明】 

用来比较的字段要求是数值类型的字段或日期型字段。

   

28.sql in的用法; 

【作用】 

查找“在”或“不在”指定范围的数据。

 

【语法】 

select * from table1 where a [not] in ('值1','值2','值4','值6') 

【举例】 

select * from 人员表 where (年龄 not in ('20', '30', '50', '60'))  

select * from 人员表 where (年龄 in ('20', '30', '50', '60')) 

【延伸】 

select * from 人员表 where 工号 in (select 工号 from 工资表) select * from 人员表 where 工号 not in (select 工号 from 工资表) 

【说明】 

in语句的作用很大,但是用于比较的数据越多,得出结果的速度就越慢。

  

29.sql top的用法; 

【作用】 

查找指定范围的数据的前几条,默认从首条开始返回。

 

【语法】 

select top n * from table1 (n 表示条数,用整数) 

【举例】 

select top 3 * from 人员表 

【延伸】 

select top 2 * from 人员表 where (性别 = '女') 

【说明】 

top语句适合用在提取少量数据用于显示、或需要提取指定条数的记录。

30.sql exists的用法; 

【作用】 

查找当前表在别的表中“存在”或“不存在”的记录。

 

【语法】 

select * from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 

【举例】 

select * from 人员表 where not exists ( select * from 工资表 where 人员表.工号=工资表.工号 )  

31.sql truncate table的用法; 

【作用】 

删除表中的全部数据,而且不写日志。

 

【语法】 

truncate table table1  

【举例】 

truncate table 工资表 

【说明】 

这个命令与delete的作用相同,但delete要写日志,而且delete 语句后面可以使用where条件语句。

  

32.sql 收缩数据库的语法; 

【语法】 

dbcc shrinkdatabase (database_name, target_percent)      

【举例】 

Dbcc shrinkdatabase (userdb, 10) go  

【说明】 

上面的代码是将 userdb 用户数据库中的文件减小,以使 userdb 中的文件有 10% 的可用空间。

  

33.sql检查备份集的语法; 

【语法】 

restore verifyonly from disk=路径  

【举例】 

restore verifyonly from disk='f:

\back1.bak' 

【说明】 

验证备份但不还原备份。

检查备份集是否完整以及所有卷是否都可读。

但是,restore verifyonly 不尝试验证备份卷中的数据结构。

如果备份有效,则 microsoft sql server 2000 返回此消息:

"备份集有效"。

34.sql修复数据库的语法; 

【语法】 

alter database database-name set single_user go 

dbcc checkdb(database-name,repair_allow_data_loss) with tablock go 

alter database database-name set multi_user go 

【举例】 

alter database 人事管理库 set single_user go 

dbcc checkdb('人事管理库',repair_allow_data_loss) with tablock go 

alter database人事管理库 set multi_user go 

【说明】 

检查指定数据库中的所有对象的分配和结构完整性、并修复错误,alter 

database 提供了更改数据库名称、文件组名称以及数据文件和日志文件的逻辑名称的能力。

    

35.sql清除日志的写法; 

【举例】 

if exists (select * from sysobjects where id = 

object_id(n'[dbo].[truncate_log_file]') and objectproperty(id, n'isprocedure') = 1) 

drop procedure [dbo].[truncate_log_file] go  

set quoted_identifier  off    set ansi_nulls  on  go  

create procedure [truncate_log_file] as set nocount on 

   declare @logicalfilename sysname,            @maxminutes int,            @newsize int    select  @logicalfilename = 'xxxx_log',   -- 这里的xxxx_log替换成泥自己数据库的log名 

           @maxminutes = 10,            @newsize    = 10    declare @originalsize int

select @originalsize = size      from sysfiles 

     where name = @logicalfilename    declare @counter   int, 

           @starttime datetime,            @trunclog  varchar(255) while @originalsize*8/1024>@newsize begin 

   create table dummytrans 

     (dummycolumn char (8000)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1