数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

MS SQL Server 数据库语法


发布日期:2018年09月11日
 
MS 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 定义当前事务数据访问特征

程序化SQL

DECLARE 为查询设定游标

EXPLAN 为查询描述数据访问计划

OPEN 检索查询结果打开一个游标

FETCH 检索一行查询结果

CLOSE 关闭游标

PREPARE 为动态执行准备SQL 语句

EXECUTE 动态地执行SQL 语句

DESCRIBE 描述准备好的查询

局部变量

declare @id char()

set @id =

select @id =

全局变量

必须以@@开头

IF ELSE

declare @x int @y int @z int

select @x = @y = @z=

if @x > @y

print x > y 打印字符串x > y

else if @y > @z

print y > z

else print z > y

CASE

use pangu

update employee

set e_wage =

case

when job_level = ’’ then e_wage*

when job_level = ’’ then e_wage*

when job_level = ’’ then e_wage*

else e_wage*

end

WHILE CONTINUE BREAK

declare @x int @y int @c int

select @x = @y=

while @x <

begin

print @x 打印变量x 的值

while @y <

begin

select @c = *@x + @y

print @c 打印变量c 的值

select @y = @y +

end

select @x = @x +

select @y =

end

WAITFOR

例 等待 小时 分零 秒后才执行SELECT 语句

waitfor delay ’::

select * from employee

例 等到晚上 点零 分后才执行SELECT 语句

waitfor time ’::

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 [azAZ]% ([]指定值的范围)

stockname like [^FM]% (^排除指定范围)

只能在使用like关键字的where子句中使用通配符)

or stockpath = stock_path

or stocknumber <

and stockindex =

not stock*** = man

stocknumber between and

stocknumber in()

order by stockid desc(asc) 排序desc降序asc升序

order by by列号

stockname = (select stockname from stock_information where stockid = )

子查询

除非能确保内层select只返回一个行的值

否则应在外层where子句中用一个in限定符

select *from table table

where tableid *= tableid 左外部连接table中有的而table中没有得以null表示

tableid =* tableid 右外部连接

select stockname from table

union [all] union合并查询结果集all保留重复行

select stockname from table

***insert***

insert into table_name (Stock_nameStock_number) value ("xxx""xxxx")

value (select Stockname Stocknumber from  Stock_table)value为select语句

***update***

update table_name set Stockname = "xxx" [where Stockid = ]

Stockname = default

Stockname = null

Stocknumber = Stockname +

***delete***

delete from table_name where Stockid =

truncate table_name 删除表中所有行仍保持表的完整性

drop table table_name 完全删除表

***alter table*** 修改数据库表结构

alter table databaseownertable_name add column_name char() null  

sp_help table_name 显示表已有特征

create table table_name (name char() age smallint lname  varchar())

insert into table_name select 实现删除列的方法(创建新表)

alter table table_name drop constraint Stockname_default   删除Stockname的default约束

统计函数

AVG 求平均值

COUNT 统计数目

MAX 求最大值

MIN 求最小值

SUM 求和

AVG

use pangu

select avg(e_wage) as dept_avgWage

from employee

group by dept_id

MAX

求工资最高的员工姓名

use pangu

select e_name

from employee

where e_wage =

(select max(e_wage)

from employee)

日期函数

DAY() 函数返回date_expression_r 中的日期值

MONTH() 函数返回date_expression_r 中的月份值

YEAR() 函数返回date_expression_r 中的年份值

DATEADD( )

函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期

DATEDIFF( )

函数返回两个指定日期在datepart 方面的不同之处

DATENAME( ) 函数以字符串的形式返回日期的指定部分

DATEPART( ) 函数以整数值的形式返回日期的指定部分

GETDATE() 函数以DATETIME 的缺省格式返回系统当前的日期和时间

系统函数

APP_NAME() 函数返回当前执行的应用程序的名称

COALESCE() 函数返回众多表达式中第一个非NULL 表达式的值

COL_LENGTH(<table_name> <column_name>)  函数返回表中指定字段的长度值

COL_NAME( ) 函数返回表中指定字段的名称即列名

DATALENGTH() 函数返回数据表达式的数据的实际长度

DB_ID([database_name]) 函数返回数据库的编号

DB_NAME(database_id) 函数返回数据库的名称

HOST_ID() 函数返回服务器端计算机的名称

HOST_NAME() 函数返回服务器端计算机的名称

IDENTITY([ seed increment]) [AS column_name])

IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中

ISDATE() 函数判断所给定的表达式是否为合理日期

ISNULL( ) 函数将表达式中的NULL 值用指定值替换

ISNUMERIC() 函数判断所给定的表达式是否为合理的数值

NEWID() 函数返回一个UNIQUEIDENTIFIER 类型的数值

NULLIF( )

NULLIF 函数在expression_r 与expression_r 相等时返回NULL  值若不相等时则返回expression_r

               

上一篇:解决SQL Server2000提示挂起的办法

下一篇:SQL Server 中的事务(含义,属性,管理)