sql server 常用命令

合集下载

SQLserver数据库命令(一)

SQLserver数据库命令(一)

SQLserver数据库命令(⼀)SQL server 数据库基础命令(⼀)创建数据表--0.使⽤命令打开你所创建的数据库(可⼿动选择数据库)--use XXX(XXX为数据库名)--1、创建表Department(存储⼆级院落系基本信息):包括院系编号(DepartNo)、院系名称(DepartName)--create table Department (DepartNo varchar(10) not null,DepartName varchar(20) not null)--2、创建表Class(存储班级基本信息):包括班级编(ClassNo)、班级所属院系编号(DepartNo)、班级名称(ClassName)--create table Class (ClassNo char(10) not null,DepartNo varchar(10) not null,ClassName varchar(30) not null)--3、创建表Student(存储学⽣基本信息):包括学号(StuNo)、班级编号( ClassNo)、姓名(StuName)、性别(Gender)、密码(Pwd)--create table Student (StuNo varchar(30) not null,ClassNo varchar(10) not null,StuName varchar(8) not null,Gender char(2) not null,Pwd varchar(50) not null)--4、创建表Course(存储课程基本信息):包括课程编号(CouNo)、课程名称(CouName)、课程类别(Kind)、学分(Credit)、任课教师(Teacher)、开课院系编号(DepartNo)、上课时间(SchoolTime)、限制选课⼈数(LimitNum)、报名⼈数(WillNum)、选中⼈数(ChooseNum) --create table Course (CouNo varchar(10) not null,CouName varchar(50) not null,Kind varchar(10) not null,Credit char(1) not null,Teacher varchar(8) not null,DepartNo varchar(10) not null,SchoolTime varchar(20) not null,LimitNum varchar(3) not null,WillNum varchar(3) not null,ChooseNum varchar(2) not null)--5、创建表Stucou(存储学⽣选课信息):包括学号(StuNo)、课程编号(CouNo)、志愿号(WillOrder)、选课状态(State)、随机数(RandomNum)--create table Stucou (StuNo char(10) not null,CouNo char(10) not null,WillOrder char(10) not null,State char(10) not null,RandomNum varchar(50) not null)--6、修改表student,增加⼀备注字段,字段名为bz,数据类型为备注型--alter table student add bz text。

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常用命令详解

sql server常用命令详解

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(); -- 获取登录名。

sqlserver常用简单语句及举例

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 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常用命令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为要添加的列数据类型。

经典SQLSERVER语句大全

经典SQLSERVER语句大全

1.一、基础2.1、说明:创建数据库3.CREATE DATABASE database-name4.2、说明:删除数据库5.drop database dbname6.7.3、说明:备份sql server8.--- 创建备份数据的deviceE master10.EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'11.--- 开始备份12.BACKUP DATABASE test TO testBack13.14.4、说明:创建新表15.create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)16.根据已有的表创建新表:17.A:create table tab_new like tab_old (使用旧表创建新表)18.B:create table tab_new as select col1,col2… from tab_old definition only19.5、说明:删除新表20.drop table tabname21.6、说明:增加一个列22.Alter table tabname add column col type23.注:列增加后将不能删除。

DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

24.7、说明:添加主键:Alter table tabname add primary key(col)25.说明:删除主键:Alter table tabname drop primary key(col)26.8、说明:创建索引:create [unique] index idxname on tabn ame(col….)27.删除索引:drop index idxname28.注:索引是不可更改的,想更改必须删除重新建。

SQLSERVER命令总结-电脑资料

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命令大全

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不再新开文章.这里只打算讲解四部分了,也就最简单、最常用的四部分。

sql server数据库常用命令

sql server数据库常用命令

SQL 组合键服务器是一个强大而流行的关系数据库管理系统,在世界各地的企业中广泛使用。

在本篇文章中,我们将探索SQL Server中一些最常用的命令,以及如何使用它们来管理和操纵数据库中的数据。

SQL Server中最基本的命令之一是SELECT语句,用于从数据库中一个或多个表格中检索数据。

如果我们有一个名为"雇员"的表格,上面有"雇员—id","尊称"和"部门"的栏目,我们可以使用SELECT语句通过执行以下命令从表中获取所有数据:自我从雇员;这将返回“ 雇员” 表格中的所有行和列,使我们能够看到它所储存的整套数据。

SQL Server的另一个重要命令是INSERT语句,用于将新数据添加到表格中。

如果我们想在"雇员"表中增加一个新的员工,我们可以像这样使用INSERT语句:服务进入雇员(雇员、雇员、尊称、部门)VALUES(1001,“John Smith”,“销售”);这将在"雇员"表格中添加一行,其中包含"雇员—id","尊称","部门"列的指定值。

更新报表用于修改表格中的现有数据。

如果我们想改变"雇员"表中特定雇员的部门,我们可以使用UPDATE这样的语句:最新情况雇员SET部门=“市场营销”雇员—id=1001;这将更新员工的"部门"栏目,将"雇员—id"1001改为"市场营销"。

DELETE语句用于从表格中删除一个或多个行。

如果我们想要从"雇员"表中删除一个特定的员工,我们可以像这样使用DELETE语句:从雇员凡雇员—d=1001;这将将雇员的行与"雇员—id"1001从"雇员"表中移除。

SQL-SERVER常用命令

SQL-SERVER常用命令

第一章:SQLSERVER命令大全--语句功能--数据操作语言(DML)SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义语言(DDL)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 --从数据库中删除一个域--数据控制语言(DCL)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 intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASE计算条件列表并返回多个可能结果表达式之一。

sql常用查询命令

sql常用查询命令

sql常⽤查询命令⽬录本篇⽂章主要针对的是SQL server相关的基础命令,也会记⼀下其他数据库的命令如MySQL。

SQL Server常⽤查询命令:查看当前时间SQL server:select getdate()MySQL:now()、current_date()查询所有数据库名SQL server:select name from master.. sysdatabases order by name;MySQL:show database; (显⽰数据表也是相似: use 数据库名; show tables;)查询当前使⽤的数据库名--@@spid是当前⽤户进程的会话 ID--⽤此会话ID在Master..SysProcesses中查得当前⽤户进程使⽤的数据库ID--再⽤此数据库ID在查得Master..SysDataBases中查到对应的数据库名称Select Name From Master..SysDataBases Where DbId=( Select Dbid From Master..SysProcesses Where Spid = @@spid)MySQL:select database();查询前⼏条数据SQL server:/*查询前10条数据 */select top 10 * from table (表名);Oracle:select * from table where rownum =10;MySQL:select * from table limit 0,10; /*limit参数必须是整型,参数可以是⼀个也可以是两个。

第⼀个参数指定第⼀个返回记录⾏的偏移量,第⼆个指定返回记录⾏的最⼤数⽬。

该语句意思返回表的前10条记录。

去重查询select distinct (字段) from table(表名);字段换名/***AS可以省略*/SELECT 字段1,字段2 AS '新名字' FROM TABLE(表名);--------------------------------------------select 字段1,字段2=(xxxx) from table; /*as 只换名,不计算;‘=’侧重计算*/查询不等于SELECT * FROM TABLE WHERE 字段 !=值;SELECT * FROM TABLE WHERE 字段 <>值;/*其他的>,<,=,=<等等就不说了*/查询在两个值之间数据SELECT * FROM TABLE(表名) WHERE 字段>=值1 AND 字段<=值2;select * FROM TABLE(表名) WHERE 字段 BETWEEN 值1 AND 值2;查询条件或SELECT * FROM TABLE(表名) WHERE 字段=值1 OR 字段=值2;SELECT * FROM TABLE(表名) WHERE 字段 IN(值1,值2);模糊匹配查询SELECT * FROM TABLE WHERE 字段 LIKE '%值%';//包含 /* %代表容易长度的字符,可以为0*/SELECT * FROM TABLE WHERE 字段 LIKE '值%';//以某个字符开始匹配SELECT * FROM TABLE WHERE 字段 LIKE '_值%';//以第⼆个字符为开始匹配 /*‘_’下划线代表任意单个字符*/查询为空SELECT * FROM TABLE WHERE 字段 IS NULL;//为空SELECT * FROM TABLE WHERE 字段 IS NOT NULL;//不为空注:这⾥的“is”不能⽤等于“=”代替排序条件查询SELECT * FROM TABLE ORDER BY 字段 ASC(默认);//升序SELECT * FROM TABLE ORDER BY 字段 DESC;//降序SELECT * FROM TABLE ORDER BY 字段1 DESC,字段2 DESC;//多字段排序聚合查询SELECT COUNT(*) FROM TABLE;//总⾏数SELECT COUNT(字段) FROM TABLE;//字段不为NULL的⾏数SELECT SUM(价格字段) FROM TABLE;//字段值总和SELECT AVG(价格字段) FROM TABLE;//字段值平均值SELECT MAX(价格字段) AS '最⼤价格' FROM TABLE;//字段最⼤值SELECT MIN (价格字段) AS '最⼩价格' FROM TABLE;//字段最⼩值注:1.当聚集函数遇到空值时,除了count(*)外,都跳过空值⽽只处理⾮空值。

sql server命令执行的方法

sql server命令执行的方法

sql server命令执行的方法【最新版3篇】《sql server命令执行的方法》篇1在SQL Server 中,您可以使用命令行执行SQL 语句。

以下是一些常用的SQL Server 命令:1. 登录SQL Server:使用以下命令登录SQL Server,在命令中替换为您的用户名和密码。

```sqlcmd -U username -P password -S servername```2. 创建数据库:使用以下命令创建数据库,在命令中替换为您想要的数据库名称。

```CREATE DATABASE database_name```3. 创建数据表:使用以下命令创建数据表,在命令中替换为您想要的表名和列名。

```CREATE TABLE table_name (column1 data_type,column2 data_type,column3 data_type```4. 插入数据:使用以下命令插入数据,在命令中替换为您想要的数据。

```INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3)```5. 查询数据:使用以下命令查询数据,在命令中替换为您想要的查询条件。

```SELECT column1, column2, column3 FROM table_name WHERE condition```6. 更新数据:使用以下命令更新数据,在命令中替换为您想要的更新条件和更新值。

```UPDATE table_name SET column1 = value1, column2 = value2, column3 = value3 WHERE condition```7. 删除数据:使用以下命令删除数据,在命令中替换为您想要的删除条件。

DELETE FROM table_name WHERE condition```8. 退出SQL Server:使用以下命令退出SQL Server。

sql server语句大全讲解

sql server语句大全讲解

SQL Server 是一种关系数据库管理系统 (RDBMS)。

它是由微软公司开发的,并且专为企业级解决方案而设计。

SQL Server 使用结构化查询语言 (SQL) 来进行数据管理和查询。

在 SQL Server 中,有许多不同类型的语句可以用来执行各种不同的操作。

下面将一一讲解这些语句,并且提供示例来帮助读者更好地理解它们的用法。

一、数据查询语句1. SELECT 语句:用于从数据库中获取数据。

示例:SELECT * FROM table_name;2. WHERE 语句:用于筛选数据。

示例:SELECT * FROM table_name WHERE column_name ='value';3. ORDER BY 语句:用于对结果进行排序。

示例:SELECT * FROM table_name ORDER BY column_name;4. GROUP BY 语句:用于对数据进行分组。

示例:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;5. HAVING 语句:用于筛选 GROUP BY 子句的结果。

示例:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;二、数据操作语句1. INSERT 语句:用于向数据库中插入新数据。

示例:INSERT INTO table_name (column1, column2) VALUES (value1, value2);2. UPDATE 语句:用于更新已存在的数据。

示例:UPDATE table_name SET column_name = 'new_value' WHERE condition;3. DELETE 语句:用于删除数据。

SQLSERVER命令大全

SQLSERVER命令大全

SQLSERVER命令⼤全SQLServer和Oracle的常⽤函数对⽐1.绝对值S:select abs(-1) valueO:select abs(-1) value from dual2.取整(⼤)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(⼩)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五⼊S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.23466.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 18.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平⽅S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平⽅根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:SELECT PI() value 3.1415926535897931O:不知道15.sin,cos,tan 参数都以弧度为单位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度17.弧度⾓度互换(SQLServer,Oracle不知道)DEGREES:弧度-〉⾓度RADIANS:⾓度-〉弧度---------数值间⽐较18. 求集合最⼤值S:select max(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最⼩值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间⽐较-------------------21.求字符序号S:select ascii('a') valueO:select ascii('a') value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select '11'+'22'+'33' valueO:select CONCAT('11','22')||33 value from dual23.⼦串位置 --返回3S:select CHARINDEX('s','sdsq',2) valueO:select INSTR('sdsq','s',2) value from dual23.模糊⼦串的位置 --返回2,参数去掉中间%则返回7S:select patindex('%d%q%','sdsfasdqe') valueO:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR> select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6 24.求⼦串S:select substring('abcd',2,2) valueO:select substr('abcd',2,2) value from dual25.⼦串代替返回aijklmnefS:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valueO:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual26.⼦串全部替换S:没发现O:select Translate('fasdbfasegas','fa','我' ) value from dual27.长度S:len,datalengthO:length28.⼤⼩写转换 lower,upper29.单词⾸字母⼤写S:没发现O:select INITCAP('abcd dsaf df') value from dual30.左补空格(LPAD的第⼀个参数为空格则同space函数)S:select space(10)+'abcd' valueO:select LPAD('abcd',14) value from dual31.右补空格(RPAD的第⼀个参数为空格则同space函数)S:select 'abcd'+space(10) valueO:select RPAD('abcd',14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE('abcd',2) valueO:没发现34.发⾳相似性⽐较(这两个单词返回值⼀样,发⾳相同)S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dualSQLServer中⽤SELECT DIFFERENCE('Smithers', 'Smythers') ⽐较soundex的差返回0-4,4为同⾳,1最⾼--------------⽇期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后⼏⽇直接与整数相加减37.求⽇期S:select convert(char(10),getdate(),20) valueO:select trunc(sysdate) value from dualselect to_char(sysdate,'yyyy-mm-dd') value from dual38.求时间S:select convert(char(8),getdate(),108) valueO:select to_char(sysdate,'hh24:mm:ss') value from dual39.取⽇期时间的其他部分S:DATEPART 和 DATENAME 函数(第⼀个参数决定)O:to_char函数第⼆个参数决定参数----------下表需要补充---------------year yy, yyyyquarter qq, q (季度)month mm, m (m O⽆效)dayofyear dy, y (O表星期)day dd, d (d O⽆效)week wk, ww (wk O⽆效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S⽆效)minute mi, n (n O⽆效)second ss, s (s O⽆效)millisecond ms (O⽆效)----------------------------------------------40.当⽉最后⼀天S:不知道O:select LAST_DAY(sysdate) value from dual41.本星期的某⼀天(⽐如星期⽇)S:不知道O:SELECT Next_day(sysdate,7) vaule FROM DUAL;42.字符串转时间S:可以直接转或者select cast('2004-09-08'as datetime) valueO:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;43.求两⽇期某⼀部分的差(⽐如秒)S:select datediff(ss,getdate(),getdate()+12.3) valueO:直接⽤两个⽇期相减(⽐如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;44.根据差值求新的⽇期(⽐如分钟)S:select dateadd(mi,8,getdate()) valueO:SELECT sysdate+8/60/24 vaule FROM DUAL;45.求不同时区时间S:不知道O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL; -----时区参数,北京在东8区应该是Ydt-------AST ADT ⼤西洋标准时间BST BDT ⽩令海标准时间CST CDT 中部标准时间EST EDT 东部标准时间GMT 格林尼治标准时间HST HDT 阿拉斯加—夏威夷标准时间MST MDT ⼭区标准时间NST 纽芬兰标准时间PST PDT 太平洋标准时间YST YDT YUKON标准时间Oracle⽀持的字符函数和它们的Microsoft SQL Server等价函数:函数 Oracle Microsoft SQL Server把字符转换为ASCII ASCII ASCII字串连接 CONCAT (expression + expression)把ASCII转换为字符 CHR CHAR返回字符串中的开始字符(左起) INSTR CHARINDEX把字符转换为⼩写 LOWER LOWER把字符转换为⼤写 UPPER UPPER填充字符串的左边 LPAD N/A清除开始的空⽩ LTRIM LTRIM清除尾部的空⽩ RTRIM RTRIM字符串中的起始模式(pattern) INSTR PATINDEX多次重复字符串 RPAD REPLICATE字符串的语⾳表⽰ SOUNDEX SOUNDEX重复空格的字串 RPAD SPACE从数字数据转换为字符数据 TO_CHAR STR⼦串 SUBSTR SUBSTRING替换字符 REPLACE STUFF将字串中的每个词⾸字母⼤写 INITCAP N/A翻译字符串 TRANSLATE N/A字符串长度 LENGTH DATELENGTH or LEN列表中最⼤的字符串 GREATEST N/A列表中最⼩的字符串 LEAST N/A如果为NULL则转换字串 NVL ISNULL⽇期函数函数 Oracle Microsoft SQL Server⽇期相加 (date column +/- value) orADD_MONTHS DATEADD两个⽇期的差 (date column +/- value) orMONTHS_BETWEEN DATEDIFF当前⽇期和时间 SYSDATE GETDATE()⼀个⽉的最后⼀天 LAST_DAY N/A时区转换 NEW_TIME N/A⽇期后的第⼀个周⽇ NEXT_DAY N/A代表⽇期的字符串 TO_CHAR DATENAME代表⽇期的整数 TO_NUMBER(TO_CHAR)) DATEPART⽇期舍⼊ ROUND CONVERT⽇期截断 TRUNC CONVERT字符串转换为⽇期 TO_DATE CONVERT如果为NULL则转换⽇期 NVL ISNULL转换函数函数 Oracle Microsoft SQL Server数字转换为字符 TO_CHAR CONVERT字符转换为数字 TO_NUMBER CONVERT⽇期转换为字符 TO_CHAR CONVERT字符转换为⽇期 TO_DATE CONVERT16进制转换为2进制 HEX_TO_RAW CONVERT2进制转换为16进制 RAW_TO_HEX CONVERT其它⾏级别的函数函数 Oracle Microsoft SQL Server返回第⼀个⾮空表达式 DECODE COALESCE当前序列值 CURRVAL N/A下⼀个序列值 NEXTVAL N/A如果exp1 = exp2, 返回null DECODE NULLIF⽤户登录账号ID数字 UID SUSER_ID⽤户登录名 USER SUSER_NAME⽤户数据库ID数字 UID USER_ID⽤户数据库名 USER USER_NAME当前⽤户 CURRENT_USER CURRENT_USER⽤户环境(audit trail) USERENV N/A在CONNECT BY⼦句中的级别 LEVEL N/A合计函数函数 Oracle Microsoft SQL ServerAverage AVG AVGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance VARIANCE VAR or VARPOracle还有⼀个有⽤的函数EXTRACT,提取并且返回⽇期时间或时间间隔表达式中特定的时间域: EXTRACT(YEAR FROM ⽇期)T_SQL命令⼤全--语句功能--数据操作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 intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--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 valueex 宿主)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 < 1000and stockindex = 24not stocksex = 'man'stocknumber between 20 and 100stocknumber 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 ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by 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 ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = 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 --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求⼯资最⾼的员⼯姓名use panguselect e_namefrom employeewhere 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 类型FLOOR(numeric_expression) --返回<=表达式的最⼩整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五⼊值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π即3.1415926535897936RAND([integer_expression]) --⽤任选的[integer_expression]做种⼦值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数⽤于将ASCII 码转换为字符--如果没有输⼊0 ~ 255 之间的ASCII 码值CHAR 函数会返回⼀个NULL 值LOWER() --函数把字符串全部转换为⼩写UPPER() --函数把字符串全部转换为⼤写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的⼦串出现的开始位置SOUNDEX() --函数返回⼀个四位字符码--SOUNDEX函数可⽤来查找声⾳相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第⼀个字符不同--1 两个SOUNDEX 函数返回值的第⼀个字符相同--2 两个SOUNDEX 函数返回值的第⼀⼆个字符相同--3 两个SOUNDEX 函数返回值的第⼀⼆三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运⾏结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回⼀个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运⾏结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定⼦串的字符串/*select replace('abc123g', '123', 'def')运⾏结果如下----------- -----------abcdefg*/SPACE() --函数返回⼀个有指定长度的空⽩字符串STUFF() --函数⽤另⼀⼦串替换字符串指定位置长度的⼦串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运⾏结果如下------------------------------ ------------199 Jan 15 2000----⽇期函数----DAY() --函数返回date_expression 中的⽇期值MONTH() --函数返回date_expression 中的⽉份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date> )--函数返回指定⽇期date 加上指定的额外⽇期间隔number 产⽣的新⽇期DATEDIFF(<datepart> ,<number> ,<date> )--函数返回两个指定⽇期在datepart ⽅⾯的不同之处DATENAME(<datepart> , <date> ) --函数以字符串的形式返回⽇期的指定部分DATEPART(<datepart> , <date> ) --函数以整数值的形式返回⽇期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的⽇期和时间----系统函数----APP_NAME() --函数返回当前执⾏的应⽤程序的名称COALESCE() --函数返回众多表达式中第⼀个⾮NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'> ) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id> ) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name]}--IDENTITY() 函数只在SELECT INTO 语句中使⽤⽤于插⼊⼀个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理⽇期ISNULL(<check_expression>, <replacement_value> ) --函数将表达式中的NULL 值⽤指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回⼀个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2> )--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值。

SQLServer命令行操作大全

SQLServer命令行操作大全
15. 停止SQL Server代理的默认实例
net stop "SQL Server Agent (MSSQLSERVER"或net stop SQLSERVERAGENT
16. 停止SQL Server代理的命名实例
net stop "SQL Server Agent ( instancename "或net stop SQLAgent$ instancename
net stop "SQL Server ( instancename " 或 net stop MSSQL$ instancename
注意:使用net stop命令停止SQL Server实例会导致SQL Server在所有数据库中执行检查点,并将所有更改的数据保存到磁盘。
13. 启动SQL Server代理的默认实例
net start "SQL Server Agent (MSSQLSERVER"或net start SQLSERVERAGENT
14. 启动SQL Server代理的命名实例
net start "SQL Server Agent( instancename "或net start SQLAgent$ < instancename >
8. 恢复暂停的SQL Server默认实例
从命令提示符输入以下命令:
net continue MSSQLSERVER
9. 恢复暂停的SQL Server命名实例
在命令提示符下,输入下列命令之一。(请用要管理的实例的名称替换instancename。)
net continue "SQL Server (instancename" 或net continue MSSQL$ instancename

sql server基本语句大全

sql server基本语句大全

SQL Server 是一种关系型数据库管理系统,它的基本语法包括以下几个方面:1. 创建数据库:使用`CREATE DATABASE` 语句来创建一个新的数据库。

例如:`CREATE DATABASE mydatabase;`2. 修改数据库:可以使用`ALTER DATABASE` 语句来修改数据库的属性,如大小、可用性、性能等。

例如:`ALTER DATABASE mydatabase SET RECOVERY SIMPLE;`3. 创建表:使用`CREATE TABLE` 语句来创建一个新的表。

例如:`CREATE TABLE customers (customer_id INT, first_name VARCHAR(50), last_name VARCHAR(50));`4. 修改表:可以使用`ALTER TABLE` 语句来添加、删除或修改表中的列。

例如:`ALTER TABLE customers ADD email VARCHAR(100);`5. 删除表:使用`DROP TABLE` 语句来删除一个表。

例如:`DROP TABLE customers;`6. 创建索引:使用`CREATE INDEX` 语句来为表中的列创建索引,以提高查询性能。

例如:`CREATE INDEX ix_customers_last_name ON customers (last_name);`7. 删除索引:使用`DROP INDEX` 语句来删除一个索引。

例如:`DROP INDEX customers.ix_customers_last_name;`8. 分组查询:使用`GROUP BY` 子句将结果集按照一个或多个列进行分组。

例如:`SELECT customer_id, SUM(amount) FROM ordersGROUP BY customer_id;`这些是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 intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--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 valueex 宿主)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 < 1000and stockindex = 24not stocksex = 'man'stocknumber between 20 and 100stocknumber 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 ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by 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 table2insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = 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(/*常用函数*/)***----统计函数----A VG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use pangufrom employeewhere 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 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π即3.1415926535897936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PA TINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DA TEADD(<datepart> ,<number> ,<date> )--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DA TEDIFF(<datepart> ,<number> ,<date> )--函数返回两个指定日期在datepart 方面的不同之处DA TENAME(<datepart> , <date> ) --函数以字符串的形式返回日期的指定部分DA TEPART(<datepart> , <date> ) --函数以整数值的形式返回日期的指定部分GETDA TE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'> ) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id> ) --函数返回表中指定字段的名称即列名DA TALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name]}--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value> ) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2> )--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:函数Oracle Microsoft SQL Server把字符转换为ASCII ASCII ASCII字串连接CONCAT (expression + expression)把ASCII转换为字符CHR CHAR返回字符串中的开始字符(左起)INSTR CHARINDEX把字符转换为小写LOWER LOWER把字符转换为大写UPPER UPPER填充字符串的左边LPAD N/A清除开始的空白LTRIM LTRIM清除尾部的空白RTRIM RTRIM字符串中的起始模式(pattern)INSTR PA TINDEX多次重复字符串RPAD REPLICATE字符串的语音表示SOUNDEX SOUNDEX重复空格的字串RPAD SPACE从数字数据转换为字符数据TO_CHAR STR子串SUBSTR SUBSTRING替换字符REPLACE STUFF将字串中的每个词首字母大写INITCAP N/A翻译字符串TRANSLATE N/A字符串长度LENGTH DA TELENGTH or LEN列表中最大的字符串GREATEST N/A列表中最小的字符串LEAST N/A如果为NULL则转换字串NVL ISNULL日期函数函数Oracle Microsoft SQL Server日期相加(date column +/- value) orADD_MONTHS DATEADD两个日期的差(date column +/- value) or MONTHS_BETWEEN DA TEDIFF当前日期和时间SYSDA TE GETDATE()一个月的最后一天LAST_DAY N/A时区转换NEW_TIME N/A日期后的第一个周日NEXT_DAY N/A代表日期的字符串TO_CHAR DATENAME代表日期的整数TO_NUMBER(TO_CHAR)) DATEPART日期舍入ROUND CONVERT日期截断TRUNC CONVERT字符串转换为日期TO_DA TE CONVERT如果为NULL则转换日期NVL ISNULL转换函数函数Oracle Microsoft SQL Server数字转换为字符TO_CHAR CONVERT字符转换为数字TO_NUMBER CONVERT日期转换为字符TO_CHAR CONVERT字符转换为日期TO_DA TE CONVERT16进制转换为2进制HEX_TO_RAW CONVERT 2进制转换为16进制RAW_TO_HEX CONVERT其它行级别的函数函数Oracle Microsoft SQL Server返回第一个非空表达式DECODE COALESCE当前序列值CURRV AL N/A下一个序列值NEXTV AL N/A如果exp1 = exp2, 返回null DECODE NULLIF用户登录账号ID数字UID SUSER_ID用户登录名USER SUSER_NAME用户数据库ID数字UID USER_ID用户数据库名USER USER_NAME当前用户CURRENT_USER CURRENT_USER用户环境(audit trail) USERENV N/A在CONNECT BY子句中的级别LEVEL N/A合计函数函数Oracle Microsoft SQL ServerAverage A VG A VGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance V ARIANCE V AR or V ARPOracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:EXTRACT(YEAR FROM 日期)SQLServer和Oracle的常用函数对比1.绝对值S:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五入S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.23466.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 18.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平方S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平方根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:SELECT PI() value 3.1415926535897931O:不知道15.sin,cos,tan 参数都以弧度为单位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度17.弧度角度互换(SQLServer,Oracle不知道)DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------数值间比较18. 求集合最大值S:select max(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最小值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间比较21.求字符序号S:select ascii('a') valueO:select ascii('a') value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select '11'+'22'+'33' valueO:select CONCAT('11','22')||33 value from dual23.子串位置--返回3S:select CHARINDEX('s','sdsq',2) valueO:select INSTR('sdsq','s',2) value from dual23.模糊子串的位置--返回2,参数去掉中间%则返回7S:select patindex('%d%q%','sdsfasdqe') valueO:oracle没发现,但是instr?BR>select INSTR('sdsfasdqe','sd',1,2) value from dual 返回624.求子串S:select substring('abcd',2,2) valueO:select substr('abcd',2,2) value from dual25.子串代替返回aijklmnefS:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valueO:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual26.子串全部替换S:没发现O:select Translate('fasdbfasegas','fa','我' ) value from dual27.长度S:len,datalengthO:length28.大小写转换lower,upper29.单词首字母大写S:没发现O:select INITCAP('abcd dsaf df') value from dual30.左补空格(LPAD的第一个参数为空格则同space函数)S:select space(10)+'abcd' valueO:select LPAD('abcd',14) value from dual31.右补空格(RPAD的第一个参数为空格则同space函数)S:select 'abcd'+space(10) valueO:select RPAD('abcd',14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE('abcd',2) valueO:没发现34.发音相似性比较(这两个单词返回值一样,发音相同)S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dualSQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差返回0-4,4为同音,1最高--------------日期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后几日直接与整数相加减37.求日期S:select convert(char(10),getdate(),20) valueO:select trunc(sysdate) value from dualselect to_char(sysdate,'yyyy-mm-dd') value from dual38.求时间S:select convert(char(8),getdate(),108) valueO:select to_char(sysdate,'hh24:mm:ss') value from dual39.取日期时间的其他部分S:DA TEPART 和DA TENAME 函数(第一个参数决定)O:to_char函数第二个参数决定参数---------------------------------下表需要补充year yy, yyyyquarter qq, q (季度)month mm, m (m O无效)dayofyear dy, y (O表星期)day dd, d (d O无效)week wk, ww (wk O无效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S无效)minute mi, n (n O无效)second ss, s (s O无效)millisecond ms (O无效)----------------------------------------------40.当月最后一天S:不知道O:select LAST_DAY(sysdate) value from dual41.本星期的某一天(比如星期日)S:不知道O:SELECT Next_day(sysdate,7) vaule FROM DUAL;42.字符串转时间S:可以直接转或者select cast('2004-09-08'as datetime) valueO:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;43.求两日期某一部分的差(比如秒)S:select datediff(ss,getdate(),getdate()+12.3) valueO:直接用两个日期相减(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;44.根据差值求新的日期(比如分钟)S:select dateadd(mi,8,getdate()) valueO:SELECT sysdate+8/60/24 vaule FROM DUAL;45.求不同时区时间S:不知道O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;-----时区参数,北京在东8区应该是Ydt-------AST ADT 大西洋标准时间BST BDT 白令海标准时间CST CDT 中部标准时间EST EDT 东部标准时间GMT 格林尼治标准时间HST HDT 阿拉斯加—夏威夷标准时间MST MDT 山区标准时间NST 纽芬兰标准时间PST PDT 太平洋标准时间YST YDT YUKON标准时间。

SQL_Server_2000命令语法精选

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("别名") 获取统的计值,其它函数运用同上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

sql server 常用命令总结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(字段名) 把数据栏的值相加引用以上函数的方法:sp_helpdb 查看数据库gouse数据库名goselect * from sysobjects where xtype='u' 查看数据库中有什么数据表gosp_help 数据表名查看数据表的结构gosql="select sum(字段名) as 别名from 数据表where 条件表达式"set rs=conn.excute(sql)用rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表名称(永久性删除一个数据表)4. 记录集对象的方法:rs.movenext 将记录指针从当前的位置向下移一行rs.moveprevious 将记录指针从当前的位置向上移一行rs.movefirst 将记录指针移到数据表第一行rs.movelast 将记录指针移到数据表最后一行rs.absoluteposition=N 将记录指针移到数据表第N行rs.absolutepage=N 将记录指针移到第N页的第一行rs.pagesize=N 设置每页为N条记录2、更改表格ALTER TABLE table_nameADD COLUMN column_name DATATYPE说明:增加一个栏位(没有删除某个栏位的语法。

ALTER TABLE table_nameADD PRIMARY KEY (column_name)说明:更改表得的定义把某个栏位设为主键。

ALTER TABLE table_nameDROP PRIMARY KEY (column_name)说明:把主键的定义删除。

3、建立索引CREATE INDEX index_name ON table_name (column_name)说明:对某个表格的栏位建立索引以增加查询时的速度。

4、删除DROP table_nameDROP index_name二、的资料形态DATATYPEssmallint16 位元的整数。

interger32 位元的整数。

decimal(p,s)p 精确值和s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。

如果没有特别指定,则系统会设为p=5; s=0 。

float32位元的实数。

double64位元的实数。

char(n)n 长度的字串,n不能超过254。

varchar(n)长度不固定且其最大长度为n 的字串,n不能超过4000。

graphic(n)和char(n) 一样,不过其单位是两个字元double-bytes,n不能超过127。

这个形态是为了支援两个字元长度的字体,例如中文字。

vargraphic(n)可变长度且其最大长度为n 的双字元字串,n不能超过2000。

date包含了年份、月份、日期。

time包含了小时、分钟、秒。

timestamp包含了年、月、日、时、分、秒、千分之一秒。

三、资料操作DML(Data Manipulation Language)资料定义好之後接下来的就是资料的操作。

资料的操作不外乎增加资料(insert)、查询资料(query)、更改资料(update) 、删除资料(delete)四种模式,以下分别介绍他们的语法:1、增加资料:INSERT INTO table_name (column1,column2,...)valueS ( value1,value2, ...)说明:1.若没有指定column 系统则会按表格内的栏位顺序填入资料。

2.栏位的资料形态和所填入的资料必须吻合。

3.table_name 也可以是景观view_name。

INSERT INTO table_name (column1,column2,...)SELECT columnx,columny,... FROM another_table说明:也可以经过一个子查询(subquery)把别的表格的资料填入。

2、查询资料:基本查询SELECT column1,columns2,...FROM table_name说明:把table_name 的特定栏位资料全部列出来SELECT *FROM table_nameWHERE column1 = xxx[AND column2 > yyy] [OR column3 <> zzz]三)交叉连接交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48行。

SELECT type,pub_nameFROM titles CROSS JOIN publishersORDER BY typeUNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。

UNION的语法格式为:select_statementUNION [ALL] selectstatement[UNION [ALL] selectstatement][…n]其中selectstatement为待联合的SELECT查询语句。

ALL选项表示将所有行合并到结果集合中。

不指定该项时,被联合查询结果集合中的重复行将只保留一行。

联合查询时,查询结果的列标题为第一个查询语句的列标题。

因此,要定义列标题必须在第一个查询语句中定义。

要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。

在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。

在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。

在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。

例如:查询1 UNION (查询2 UNION 查询3)INSERT语句用户可以用INSERT语句将一行记录插入到指定的一个表中。

例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:INSERT INTO EMPLOYEES valueS('Smith','John','1980-06-10','Los Angles',16,45000);通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。

这些列按照我们创建表时定义的顺序排列。

在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。

如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。

如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。

这是因为SQL提供对事务的支持。

一次事务将数据库从一种一致性转移到另一种一致性。

如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。

回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。

为了增加可读性而在数字间插入逗号将会引起错误。

记住,在SQL中逗号是元素的分隔符。

同样要注意输入文字值时要使用单引号。

双引号用来封装限界标识符。

对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd)--设置用户访问数据库的形式Alter database TestAA set SINGLE_USER with rollback immediate --设置单用户访问数据库Alter database TestAA set RESTRICTED_USER with rollback immediateRESTRICTED_USER 只允许db_owner固定数据库角色成员以及dbcreator和sysadmin固定服务器角色成员连接到数据库,不过对连接数没有限制。

相关文档
最新文档