数据操作
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