sql server常用命令详解
sql server 基本命令

sql server 基本命令下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!SQL Server基本命令详解介绍SQL Server是微软公司开发的一款关系型数据库管理系统,广泛应用于企业级应用程序的开发与部署。
SQL SERVER命令大全

SQL SERVER命令大全--语句功能 --数据操作SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程 CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式 DROP SCHEMA --从数据库中删除一个模式 CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义DROP DOMAIN --从数据库中删除一个域 --数据控制GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制COMMIT --结束当前事务 ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征 --程序化SQLDECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句 EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询---局部变量declare @id char(10) --set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @yprint 'x > y' --打印字符串'x > y' else if @y > @z print 'y > z' else print 'z > y'--CASE use panguupdate employee set e_wage = casewhen job_level = ’1’ then e_wage*1.08 when job_level = ’2’ thene_wage*1.07 when job_level = ’3’ then e_wage*1.06 else e_wage*1.05 end--WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1 while @x < 3 beginprint @x --打印变量x 的值 while @y < 3 beginselect @c = 100*@x + @y print @c --打印变量c 的值 select @y = @y + 1 endselect @x = @x + 1 select @y = 1 end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’ select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator value ex 宿主)select * from stock_information where stockid = str(nid) stockname ='str_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的范围) stockname like '[^F-M]%' --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符) or stockpath ='stock_path' or stocknumber < 1000 and stockindex = 24 not stocksex = 'man'stocknumber between 20 and 100 stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序 order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4) --------- 子查询--------- 除非能确保内层select只返回一个行的值, --------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复 select stocknumber ,\select stockname , \--------- group by 将表按行分组,指定列中有相同的值 having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示 table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行 select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value (\value (select Stockname , Stocknumber from Stock_table2)---value为select 语句***update***update table_name set Stockname = \Stockname = default Stockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性 drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null ..... sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30)) insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数---- AVG --求平均值 COUNT --统计数目 MAX --求最大值 MIN --求最小值 SUM --求和--AVG use panguselect avg(e_wage) as dept_avgWage from employee group by dept_id--MAX--求工资最高的员工姓名 use panguselect e_name from employee where e_wage = (select max(e_wage) from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦 COS(float_expression) --返回以弧度表示的角的余弦 TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切 /***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型 EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根 /***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型感谢您的阅读,祝您生活愉快。
SQL_Server_2000命令语法精选

SQL Server 2000常用命令,语法使用方法(一)SQL Server 2000常用命令,语法使用方法(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名[desc]"sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"sql="select * from 数据表 where 字段名 between 值1 and 值2"(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"set rs=conn.excute(sql)用 rs("别名") 获取统的计值,其它函数运用同上。
sqlserver数据库常用命令

sqlserver数据库常⽤命令创建数据库:命令:create database 数据库名;⽰例:create database student;删除数据库:命令:drop database 数据库名;⽰例:drop database student;新建表格:命令:create table 表名(列名数据类型,列名2.....)⽰例:create table student(sname char(20),sid int)删除表格:命令:drop table 表名⽰例:drop table student修改表结构:(插⼊(新增)列)命令:alter table 表名add 新列名数据类型⽰例:alter table studentadd sage int(删除列)命令:alter table 表名drop column 列名⽰例:alter table studentdrop column sid(修改列类型)命令:alter table 表名alter column 列名数据类型⽰例:alter table studentalter column sid float(浮点型)(新增约束)命令:alter table 表名alter column 列名新数据类型⽰例:alter table studentalter column PK_sid primary key(sid)(新增的约束类型是主键约束)(删除约束)命令:alter table 表名drop 列名⽰例:alter table studentdrop PK_sid查询表内容:命令:select 要查询的数据列名from 表名where 筛选条件(⽆法对分组后的数据进⾏筛选)(⾼级搜索)【group by 列名(分组)having 筛选条件(只能对分组后的数据进⾏筛选)order by 排序⽅式(控制数据最后输出的排列⽅式有正序:asc、倒叙:desc)】⽰例:select sidfrom studentwhere sid=2【group by sidhaving sid=1order by desc】在表中插⼊数据:(值与列必须⼀⼀对应)命令:insert into 表名(列名,列名)values(值,值)⽰例:insert into 表名(sname,sid,sage)values(‘张三’,12,15)修改表中数据值:命令:update from 表名set 列名=新值⽰例:update from studentset sname='李四'查询模式:(批量插⼊多条数据)命令:insert into 表名(值的总数必须和列的总数相同)select 值,值,值 union allselevt 值,值,值⽰例:insert into 表名select '张三',15,18select '李四',16,19视图:命令:create view 视图名asselect 列from 表名⽰例:create view students asselect snamefrom student。
sqlserver常用简单语句及举例

一、SQL Server的概述SQL Server是由微软公司开发的一款关系型数据库管理系统,广泛应用于企业信息系统中。
它提供了一套完整的数据库管理工具和语言,使得用户可以方便地进行数据管理、查询、修改和分析。
二、SQL Server常用简单语句1. 创建数据库在SQL Server中,我们可以使用CREATE DATABASE语句来创建一个新的数据库。
例如:```sqlCREATE DATABASE MyDatabase;```2. 创建表在SQL Server中,我们可以使用CREATE TABLE语句来创建一个新的表。
例如:```sqlCREATE TABLE Users (ID int PRIMARY KEY,Name varchar(50),Age int);```3. 插入数据在SQL Server中,我们可以使用INSERT INTO语句来向表中插入新的数据。
例如:```sqlINSERT INTO Users (ID, Name, Age) VALUES (1, 'John', 25);```4. 更新数据在SQL Server中,我们可以使用UPDATE语句来更新表中的数据。
例如:```sqlUPDATE Users SET Age = 26 WHERE Name = 'John';```5. 删除数据在SQL Server中,我们可以使用DELETE FROM语句来删除表中的数据。
例如:```sqlDELETE FROM Users WHERE Name = 'John';```6. 查询数据在SQL Server中,我们可以使用SELECT语句来查询表中的数据。
例如:```sqlSELECT * FROM Users;```7. 条件查询在SQL Server中,我们可以使用WHERE子句来进行条件查询。
例如:```sqlSELECT * FROM Users WHERE Age > 25;```8. 排序查询在SQL Server中,我们可以使用ORDER BY子句来对查询结果进行排序。
sql server基本语句大全及用法

一、概述SQL Server是微软公司的一种关系型数据库管理系统,广泛应用于企业级数据库系统中。
SQL Server中包含了许多基本的SQL语句和用法,本文将对SQL Server中常用的基本语句进行详细介绍,以帮助读者更好的理解并应用SQL Server。
二、连接数据库1. 连接数据库的语句在SQL Server中,我们可以使用以下语句连接数据库:```USE database_name;```这条语句会选择并进入指定名称的数据库,之后所有的操作都会在这个数据库中进行。
2. 与数据库建立连接另外,我们还可以使用以下语句与数据库建立连接:```CONNECT database_name;```这条语句会建立一个与指定数据库的连接,可以在连接成功后进行数据操作。
三、查询数据1. 查询表中所有数据要查询表中所有的数据,可以使用以下语句:```SELECT * FROM table_name;```其中,`SELECT *`表示查询所有字段,`FROM table_name`表示从指定的表中查询数据。
2. 查询特定字段的数据如果只需要查询表中的特定字段数据,可以使用以下语句:```SELECT field1, field2 FROM table_name;这条语句将只查询指定字段的数据,可以减少数据传输和提高查询效率。
3. 条件查询在SQL Server中,可以使用以下语句进行条件查询:```SELECT * FROM table_name WHERE condition;```其中,`WHERE condition`是条件表达式,只有满足条件的数据才会被查询出来。
四、更新数据1. 更新单行数据要更新表中的单行数据,可以使用以下语句:```UPDATE table_name SET field1 = value1, field2 = value2 WHERE condition;这条语句会根据条件表达式更新表中符合条件的数据。
sqlserver常用命令
sqlserver常用命令SQLServer是一种关系型数据库管理系统,被广泛应用于各种企业级应用程序中。
它提供了一系列的命令,用于管理数据库、表、视图、存储过程等对象。
本文将介绍SQL Server中常用的命令及其使用方法,帮助读者快速掌握SQL Server的基本操作。
一、数据库管理命令1. 创建数据库CREATE DATABASE database_name;该命令用于创建一个新的数据库,其中database_name为要创建的数据库名称。
使用该命令时,需要确保具有足够的权限。
2. 删除数据库DROP DATABASE database_name;该命令用于删除指定的数据库,其中database_name为要删除的数据库名称。
使用该命令时,需要确保具有足够的权限,并且要谨慎操作,以免误删数据。
3. 修改数据库ALTER DATABASE database_name SET options;该命令用于修改指定的数据库,其中options为要修改的选项。
常用的选项包括修改数据库的名称、修改数据库的文件路径、修改数据库的恢复模式等。
二、表管理命令1. 创建表CREATE TABLE table_name (column_name1 data_type1, column_name2 data_type2, …);该命令用于创建一个新的表,其中table_name为要创建的表名称,column_name为要创建的列名称,data_type为要创建的列数据类型。
使用该命令时,需要确保具有足够的权限。
2. 删除表DROP TABLE table_name;该命令用于删除指定的表,其中table_name为要删除的表名称。
使用该命令时,需要确保具有足够的权限,并且要谨慎操作,以免误删数据。
3. 修改表ALTER TABLE table_name ADD column_name data_type;该命令用于向指定的表中添加一列,其中table_name为要修改的表名称,column_name为要添加的列名称,data_type为要添加的列数据类型。
sql server语句大全讲解
sql server语句大全讲解SQL Server是一种关系型数据库管理系统,被广泛应用于企业级应用程序的开发和数据管理中。
熟练掌握SQL Server语句,将有助于提高数据查询和管理的效率。
本文将对SQL Server语句进行全面讲解,包括查询语句、插入语句、更新语句、删除语句等。
一、查询语句查询语句是SQL Server中最常用的语句之一,它能够帮助我们从数据库中检索所需的数据。
下面是一些常用的查询语句示例:1. SELECT语句:用于选择数据表中的列,并返回符合条件的数据行。
例如:SELECT 列名称 FROM 数据表名称 WHERE 条件;2. DISTINCT语句:用于返回唯一不重复的数据行。
例如:SELECT DISTINCT 列名称 FROM 数据表名称;3. WHERE语句:用于根据指定的条件从表中筛选数据行。
例如:SELECT 列名称 FROM 数据表名称 WHERE 列名称 = 值;4. ORDER BY语句:用于按照指定的列对查询结果进行排序。
例如:SELECT 列名称 FROM 数据表名称 ORDER BY 列名称 ASC (升序)/DESC(降序);5. GROUP BY语句:用于根据指定的列对查询结果进行分组。
例如:SELECT 列名称 FROM 数据表名称 GROUP BY 列名称;二、插入语句插入语句用于向数据库中的表中插入新的数据行。
下面是一些常用的插入语句示例:1. INSERT INTO语句:用于向表中插入新的数据行。
例如:INSERT INTO 数据表名称 (列1, 列2,...) VALUES (值1, 值2,...);2. VALUES语句:用于指定插入的具体数值。
例如:INSERT INTO 数据表名称 VALUES (值1, 值2,...);三、更新语句更新语句用于修改数据库表中的数据。
下面是一些常用的更新语句示例:1. UPDATE语句:用于更新表中已有数据行的值。
SQLSERVER命令总结-电脑资料
SQLSERVER命令总结-电脑资料SQL SERVER命令总结查询语句:SELECT [ALL/DISTINCT][TOP]<目标列> [as 别名][,<目标列1> as 别名]…FROM <表名或视图名>[as 别名]…[WHERE 条件表达式…][GROUP BY <列名1>[HAVING<条件表达式>]][ORDER BY<列名2>[ASC/DESC]]应该注意:SELECT语句的顺序:SELECT-->FROM-->WHERE-->GROUP BY-à HAVING àORDER BYSELECT INTO:生成新表格DISTINCT:唯一GROUP BY:分组汇总ORDER BY:排序,默认情况下为升序.ASC:升序DESC:降序AS:起别名HAVING:筛选分组汇总后的行SELECT TOP nFROM<表名>:表示查询前N行SELECT TOP n PERCENT*FROM<表名>:表示按一定的百分比提取LIKE:模糊查询,仅于CHAR或是VERCHAR以及通配符连用其他模糊查询:IN:用于返回给定的值与列表中的值相匹配的行BETWEEN…AND…:在..之间查询IS NOT NULL:查询不为空的数据查询中使用的常量:一般与“+”连用.起到一个组合的目的注意1. SELECT后面的字段如果不包括聚合函数,必须参加分组(GROUP BY2. GROUP BY后面不能使用聚合函数3. 查询时,可以使用2个聚合函数使用INSERT插入数据ü 添加完整记录:INSERT [INTO]<目标表名>VALUESVALUES:字段值列表(顺序与建表的顺序必须一样)ü 添加不完整记录:INSERT [INTO]<目标表名>(字段名列表)VALUES<字段值列表> 特别的记住:字段名列表和字段值列表是一一对应的.即后面的字段值随着前面的字段名的改变而改变.另一种方法:语法:INSERT<表名>SELECTFROM<表名2)还可以将数据有选择性的添加到另一个表中语法:INSERT INTO Sales(Stor_id)SELECT stor_id FROM Stores UPDATE语句更新一行:UPDATE<新表名>SET<目标列=值>[WHERE<条件>](范围)更新多行:UPDATE<表名>SET<目标列=值>;{<---没有WHERE}更新一行和更新多行的区别在于有没有WHERE的存在DELETE语句1:删除一行:语法:DELETE FROM<表名>[WHERE<条件>]2:删除多行:语法:DELETE FROM<表名>删除一行和删除多行区别在于有没有WHERE的存在3:TRUNCATE TABLE用于删除表中所有行的命令.DROP删除表与DELETE的区别在于:TRUNCATE不写日值文件,无法恢复数据JOIN语句联接信息:Table_a AS table_alias_a JOIN table_b AS table_alias_bOntable_alias_a .=table_alias_b.< common_field>--------------------公共字段---------------------------àA:内联接INNER JOIN:查询两个表中的公共部分B:外联接左外联接:left OUTER JOIN右外联接:right OUTER JOIN完整联接:FULL OUTER JOINC:自联接创建表的结构1.名称:表名字段名2.数据类型:系统定义的用户定义的: exec sp_addtype 用户定义的数据类型名 , 数据类型(系统有的),not null(是否允许为空)3.大小:4.约束:主键约束PRIMARY KEY create table 表名(字段数据类型primary key /primary key(字段…))唯一约束 UNIQUE create table 表名(字段数据类型 unique)默认约束DEFAULT create table 表名(字段数据类型default ‘值/表达式’)检查约束 CHECK create table 表名(字段数据类型 check (字段的表达式)外键约束 FOREIGN KEY create table表名(字段数据类型 foreignkey references(应用) 另一个表名(字段))更新表的结构1.修改数据类型:alter table 表名 alter column 列名数据类型2.添加一列: alter table 表名 add 列名数据类型3.删除一列: alter table 表名 drop column 列名4.增加约束: alter table 表名 add constraint 约束名约束表达式主键约束: primary key(列名列表)唯一约束: unique(列名)默认约束:default ‘值’for 列名检查约束: check (列的检查约束表达式)外键约束: foreign key(列名)references 表名(列名)删除表的结构drop table 表名子查询Select 字段 from 表(select查询)子查询就是内层查询产生一个用于外层查询的条件子查询经常使用的是条件运算符(>,<,<=,>=,=,!=)子查询与in联合使用经常用于判断一列数据子查询与exists联合使用经常用于判断一张表的字段触发器1,。
sqlserver命令大全
【引用】常用SQL命令和ASP编程【引用】MSSQL经典语句2011-07-28 16:23:00| 分类:电脑网络| 标签:|字号大中小订阅本文引用自honeyzyf《MSSQL经典语句》1.按姓氏笔画排序:Select * From TableName Order By CustomerName CollateChinese_PRC_Stroke_ci_as2.数据库加密:select encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同3.取回表中字段:declare @list varchar(1000),@sql nvarchar(1000)select @list=@list+','+ from sysobjects a,syscolumns b where a.id=b.id and ='表A'set @sql='select '+right(@list,len(@list)-1)+' from 表A'exec (@sql)4.查看硬盘分区:EXEC master..xp_fixeddrives5.比较A,B表是否相等:if (select checksum_agg(binary_checksum(*)) from A)=(select checksum_agg(binary_checksum(*)) from B)print '相等'elseprint '不相等'6.杀掉所有的事件探察器进程:DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid)FROM master.dbo.sysprocessesWHERE program_name IN('SQL profiler',N'SQL 事件探查器')EXEC sp_msforeach_worker '?'7.记录搜索:开头到N条记录Select Top N * From表-------------------------------N到M条记录(要有主索引ID)Select Top M-N * From表Where ID in (Select Top M ID From表) Orderby ID Desc----------------------------------N到结尾记录Select Top N * From表Order by ID Desc8.如何修改数据库的名称:sp_renamedb 'old_name', 'new_name'9:获取当前数据库中的所有用户表select Name from sysobjects where xtype='u' and status>=0 10:获取某一个表的所有字段select name from syscolumns where id=object_id('表名')11:查看与某一个表相关的视图、存储过程、函数select a.* from sysobjects a, syscomments b where a.id= b.id and b.text like '%表名%'12:查看当前数据库中所有存储过程select name as 存储过程名称from sysobjects where xtype='P'13:查询用户创建的所有数据库select * from master..sysdatabases D where sid not in(select sid frommaster..syslogins where name='sa')或者select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x0114:查询某一个表的字段和数据类型select column_name,data_type from information_schema.columnswhere table_name = '表名'[n].[标题]:Select * From TableName Order By CustomerName[n].[标题]:Select * From TableName Order By CustomerNamefrom:/TrackBack.aspx?PostId=585515分类: ( 一般分类) :: 评论(0) :: 静态链接网址:: 引用(0)触发器-MSSQL常用操作发表人:kendy517 | 发表时间: 2007年二月09日, 09:18不再新开文章.这里只打算讲解四部分了,也就最简单、最常用的四部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL SERVER 2008数据库常用命令详解1、数据库的创建与删除CREATE DATABASE db1; --创建数据库db1DROP DATABASE db1; --删除数据库db12、数据表的创建与删除CREATE TABLE t1( --创建数据表t1,t1包含两个字段col1 varchar(100),col2 int);DROP TABLE t1; --删除数据表t1创建两表之间的外键关联:CREATE TABLE t2( --创建主表t2_c1 char(8) PRIMARY KEY, -- 定义主键t2_c2 int);CREATE TABLE t3( --创建从表t3_c1 char(8),t3_c2 int,FOREIGN KEY(t3_c1) REFERENCES t2(t2_c1) -- 定义外键);DROP TABLE t3,t2; -- t3应先于t2被删除3、索引的创建与删除CREATE INDEX index1 ON t1(col1); -- 创建非聚集索引index1 DROP INDEX index1 ON t1; -- 删除非聚集索引index14、视图的创建与删除CREATE VIEW view1 -- 创建视图view1AS SELECT * FROM t1;DROP VIEW view1; -- 删除视图view15、超级用户的创建与删除CREATE LOGIN log1 -- 创建名为log1的登录WITH PASSWORD = '123456', -- 密码为123456DEFAULT_DATABASE = db1; -- 默认数据库为db1GOEXEC sp_addsrvrolemember ' log1', 'sysadmin'; -- 赋最高权限GO--------------------------------DROP LOGIN log1; -- 删除登录log16、数据库用户的创建、授权与删除CREATE LOGIN mylog WITH PASSWORD = '123456', -- 先创建一个登录DEFAULT_DATABASE = db1;GOUSE db1;GOCREATE USER user1 FOR LOGIN mylog; -- user1依赖于mylogGOGRANT CREATE TABLE,CREATE VIEW,CREATE PROCEDURE,ALTER ANY SCHEMA TO User1;-- 授权GO--------------------------------DROP USER user1; -- 删除用户user1DROP LOGIN mylog; -- 删除登录mylog7、数据库的备份与还原USE master;GOALTER DATABASE db1 SET RECOVERY SIMPLE; -- 切换到简单恢复模式下GOBACKUP DATABASE db1 -- 将数据库db1完整备份到文件db1_disk.bakTO DISK = 'D:\Backup\db1_disk.bak'WITH FORMAT;-----------------------------------------USE master;GOEXEC sp_addumpdevice 'disk', 'db1_simple', 'D:\Backup\db1_disk.bak'; GORESTORE DATABASE db1 -- 利用备份文件db1_disk.bak完整备份db1FROM db1_simple;8、数据库的分离与附加USE master;GOEXEC sp_detach_db 'db1', NULL, 'true'; -- 分离数据库-------------------------------------------利用分离得到的db1.mdf进行附加DECLARE @data_path nvarchar(256);SET @data_path= 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\';EXEC ('CREATE DATABASE db1ON (FILENAME = '''+ @data_path + 'db1.mdf'')FOR ATTACH');GO9、存储过程的创建、调用和删除CREATE PROCEDURE MyPro -- 定义带两个参数的存储过程 @min_avgrade numeric(3,1),@max_avgrade numeric(3,1)ASSELECT s_no,s_name,s_sex,s_avgrade,s_deptFROM studentWHERE s_avgrade>=@min_avgrade AND s_avgrade<=@max_avgrade; -----------------------------------------EXEC MyPro 50,88.8; -- 调用存储过程-----------------------------------------DROP PROCEDURE MyPro -- 删除存储过程10、触发器的创建、应用和删除CREATE TRIGGER MyTrigger ON t1 -- 创建触发器AFTER DELETEASBEGINPRINT '有人删除表t1中的数据!'END-------------------------------------------------------- 当执行DELETE语句时,该触发器被触发,如:DELETE FROM t1;------------------------------------------------------DROP TRIGGER MyTrigger; -- 删除触发器11、游标的创建、应用和删除DECLARE MyCursor CURSOR --创建游标STATICFOR SELECT col1 FROM t1;OPEN MyCursor;DECLARE @RowCount Integer, @i Integer, @col varchar(100);SET @i=0SET @RowCount = @@CURSOR_ROWSWHILE @i<@RowCountBEGINFETCH NEXT FROM MyCursor -- 将游标中的数据逐一输出INTO @col;PRINT @col;SET @i=@i+1ENDCLOSE MyCursor;DEALLOCATE MyCursor; -- 删除游标12、查看服务器上所有的数据库SELECT *FROM sys.databasesORDER BY name13、查看数据库中所有的数据表USE db1; -- 查询数据库db1中包含的所有数据表SELECT * FROM sys.tables;14、查看数据表的结构SELECT 字段名, 字段类型, a.max_length 字段长度FROM sys.all_columns as aJOIN sys.types as bON a.system_type_id = b.system_type_idWHERE object_id = object_id('t1');15、向数据表插入数据INSERT INTO t1 VALUES('庆祝建国六十周年!', 60); -- 向表t1插入数据INSERT INTO t1 VALUES('北京奥运!', 29);INSERT INTO t1 VALUES('上海世博会!', 51);16、更新表中的数据UPDATE t1SET col1 = '庆祝中华人民共和国建国六十周年!'WHERE col2=60;17、删除表中的数据DELETE FROM t1WHERE col2=29;18、降序、有条件查询SELECT col1, col2FROM t1WHERE col2 > 50ORDER BY col2 DESC19、等值连接查询SELECT t2.t2_c1, t2.t2_c2, t3.t3_c2FROM t2INNER JOIN t3ON (t2.t2_c1 = t3.t3_c1);20、左外连接查询SELECT t2.t2_c1, t2.t2_c2, t3.t3_c2 FROM t2LEFT JOIN t3ON(t2.t2_c1 = t3.t3_c1);21、右外连接查询SELECT t2.t2_c1, t2.t2_c2, t3.t3_c2 FROM t2RIGHT JOIN t3ON(t2.t2_c1 = t3.t3_c1);22、全外连接查询SELECT t2.t2_c1, t2.t2_c2, t3.t3_c2 FROM t2FULL JOIN t3ON(t2.t2_c1 = t3.t3_c1);23、IF语句DECLARE @n1 int, @n2 intSET @n1 = 2SET @n2 = 20IF @n1<@n2BEGINPRINT '@n1小于@n2';ENDELSE IF @n1=@n2BEGINPRINT '@n1等于@n2';ENDELSEBEGINPRINT '@n1大于@n2';ENDGO24、CASE语句SELECT 学号 = s_no, 姓名及爱好 = CASE s_noWHEN '20060201' THEN '李好,游泳' WHEN '20060202' THEN '王丫,登山'ELSE '没有这个人'ENDFROM student25、WHILE语句DECLARE @n int, @i int, @resulet int; -- 计算n的阶乘n!SET @n = 5;SET @i = 1;SET @resulet = 1;WHILE @i <= @nBEGINSET @resulet = @resulet * @i;SET @i = @i + 1;ENDPRINT @resulet26、字符串数据和数值型数据的转换DECLARE @f float, @s varchar(20); -- 数值型数据→字符串数据SET @f=3.14159;SET @s=CONVERT(varchar(20),@f);--------------------------------------------------DECLARE @f float, @s varchar(20); -- 字符串数据→数值型数据SET @s='1.73205';SET @f=CONVERT(float,@s);27、时间类型数据和字符串类型数据的转换DECLARE @dt datetime, @str varchar(30); -- 时间数据→字符串数据SET @dt=GETDATE();--SET @str=CONVERT(varchar(30), @dt, 114);SET @str=CONVERT(varchar(30), @dt, 111);PRINT @str--------------------------------------------------DECLARE @dt datetime, @str varchar(30); -- 字符串数据→时间数据SET @str = '2009/09/12';SET @dt=CONVERT(datetime, @str);PRINT @dt;28、获取服务器、数据库、应用程序、用户、登录等名称PRINT HOST_NAME(); -- 获取服务器名PRINT DB_NAME(); -- 获取数据库名PRINT APP_NAME(); -- 获取应用程序名PRINT USER_NAME(); -- 获取数据库用户名PRINT SUSER_SNAME(); -- 获取登录名。