SQL常用语法Word格式文档下载.docx
- 文档编号:22955820
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:39
- 大小:29.18KB
SQL常用语法Word格式文档下载.docx
《SQL常用语法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SQL常用语法Word格式文档下载.docx(39页珍藏版)》请在冰豆网上搜索。
select*intotab_newfroms1
--*************************************************************************修改表
--alter
--主外键/引用/关系约束
/*
altertable[从表名][withcheck]--启用
withnocheck--禁用约束
addconstraintFK_主表名_从表名
foreignkey(从表中的字段名)references主表名(主表中的字段名)
--其它非主外键约束
altertabletablename
addconstraint[约束名][约束类型]具体的约束说明
altertablewf--修改联合主键
addconstraintPk_cola_primaryprimarykey(cola_primary,col1)
--*************************************************************************
--,列增加后将不能删除。
DB2中列加上后数据类型也不能改变,
--唯一能改变的是增加varchar类型的长度
altertable[s1]add[column_name]int--[]数据类型----增加一个列
droptable[s1]--删除新表
altertable[s1]addconstraintprimary_key_idprimarykey([col])--添加主键
altertable[s1]dropprimary_key_id--删除主键
--索引是不可更改的,想更改必须删除重新建
createuniqueindex[idxname]on[s1](id)--创建索引
dropindex[idxname]on[s1]--删除索引
--createviewviewnameasselectidfroms1go--创建视图
dropviewviewname--删除视图
select*froms1whereid='
1'
--选择
insertintos1(id,tid)values('
6'
'
06'
)--插入
deletefroms1whereid='
--删除
updates1setid='
whereid='
--更新
select*froms1wherenamelike'
%value1%'
--查找
select*froms1orderbyid,namedesc--排序
selectcount(*)as'
总数'
froms1--总数
selectsum(id)as'
求和'
froms1--求和
selectavg(id)as'
平均'
froms1--平均
selectmax(id)as'
最大'
froms1--最大
selectmin(id)as'
最小'
froms1--最小
EXECmaster..xp_fixeddrives--查看硬盘分区
--*************************************************************************字符串函数
--字符串函数长度与分析用
datalength(Char_expr)--返回字符串包含字符数,但不包含后面的空格
--取子串,字符串的下标是从“”,start为起始位置,length为字符串长度,
--实际应用中以len(expression)取得其长度
substring(expression,start,length)
--返回字符串右边第int_expr个字符,还用left于之相反
right(char_expr,int_expr)
--如果check_expression為空,則返回replacement_value的值,
--不為空,就返回check_expression字符操作类
isnull(check_expression,replacement_value)
--自定数据类型Sp_addtype
EXECsp_addtypebirthday,datetime,'
NULL'
setnocount{on|off}
--备份sqlserver
--创建备份数据的device
USEmaster
EXECsp_addumpdevice'
disk'
'
testBack'
c:
\mssql7backup\MyNwind_1.dat'
backupdatabasepubsTOtestBack
--如何为表中的某列设置为null
selectgetdate()--查当前系统时间
selectgetutcdate()--查询UTC时间
--*************************************************************************--联接(leftrightcross)
--联接:
--内联接也叫自然联接--连接条件通常采用“主键=外键”的形式
--select列名列表from表名[inner]join表名on表名.列名=表名.列名
--或
--select列名列表from表名,表名where表名.列名=表名.列名
--左外联接
--select列名列表
--from表名asaleft[outer]join表名asonA.列名=B.列名
--右外联接
--from表名asAright[outer]join表名asBonA.列名=B.列名
--全外联接
--from表名asAfull[outer]join表名asBonA.列名=B.列名
--交叉联接
--select列名列表from表名crossjoin表名
--或者
--select列名列表from表名,表名
--合并查询也称联合查询
--查询语句
--union[all]
--查询语句
--*************************************************************************--事务(transaction)
--事务
--begintransaction--标记显式连接事务的起始点。
--committransaction--如果没有遇到错误,可使用该语句成功地结束事务。
--该事务中的所有数据修改在数据库中都将永久有效。
事务占用的资源将被释放。
--RollackTransaction--用来清除遇到错误的事务。
该事务修改的所有数据都返回到事务开始时的状态。
--事务占用的资源将被释放。
--savetrunsaction--用户可以在事务内设置保存点或标记。
保存点是如果有条件地取消事务的一部分,事务可以返回的位置。
--withmark--标记事务选项使事务名置于事务日志中
--隐式事务:
setimplicit_transactins{on|off};
--altertableinsertcreateopendeleterevoke
--truncatetabledropselectfetchgrantupdate
--*************************************************************************--约束(constraint)
--约束
--查看表性别列的默认约束名。
--[exec]Sp_help表名
--域
--default指定列的默认值
--check指定列的允许值
--foreignkey指定必须存在值的列
--null指定是否允许为NULL
--实体
--primarykey唯一标识每一行
--UNIQUE防止非主键重复
--引用
--foreignkey定义值与同一个表或另一个表的主键值匹配的一列或多列组合
--CHECK指定根据同一个表中其他列的值可在列中接受的数据值
--*************************************************************************--约束语法
--createtable语句创建约束
/*createtabletable_name
({<
column_definition>
|<
table_constraint>
}[,...,n])
<
:
:
=
{column_namedata_type}
[{defaultconstant_expression|[identity[(seed,increment)]]}]
[<
column_constraint>
[·
·
n]]
列约束定义
column_constraint>
=
[constraintconstraint_name]
{
?
null|notnull]
|[primarykey|unique]
|[clustered|nonclustered]
|[referencesref_table[(ref_column)]
[ondelete{cascade|noaction}]
[onupdate{cascade|noaction}]
}
表约束定义
table_constraint>
[{primarykey|unique}{(column[,…,n])}]
|foreighkey(column[,…,n])
[referencesref_table[(ref_column[[,…,n])]
}
--*************************************************************************--主键约束(primarykey)
--在创建表时创建主键约束
--语法格式:
--createtable数据表名
--(列名数据类型[constraint约束名]primarykey[clustered︱nonclusterde][,…])
--([constraint约束名]primarykey[clustered︱nonclusterde](列名[,…n])[,…])
--向已有表中添加主键约束**保证主键列没有空值和重复值**
--altertable表名
--add[constraint约束名]primarykey(列名[,…n])[,…])
--删除主键约束
--dropconstraint约束名
--*************************************************************************--默认值约束(default)
--在创建表时创建默认值约束
createtable数据表名
(列名数据类型[constraint约束名]default默认值[,…])
([constraint约束名]default默认值for列[,…])
--向已有表中添加默认值约束
altertable表名
add[constraint约束名]默认值for列[,…])
--删除默认值约束
dropconstraint约束名
--*************************************************************************--检查约束(check)
--在创建表时创建检查约束
(列名数据类型[constraint约束名]check(逻辑表达式)[,…])
--向已有表中添加检查约束
withnocheck
add[constraint约束名]check(逻辑表达式)[,…])
--删除检查约束
--可以通过关键字WITHNOCHECK禁止CHECK约束检查表中已有的数据
nocheckconstraint约束名︱checkconstraint约束名
--*************************************************************************--(clusterednonclustered)
--唯一性约束
语法格式:
定义单列唯一约束
(列名数据类型[constraint约束名]unique[clustered︱nonclusted][,…])
定义多列组合唯一约束
/*
([constraint约束名]unique[clustered︱nonclusteed](列名[,…n])[,…])
--向已有表中添加唯一约束
add[constraint约束名]unique(列名[,…n])[,…])
--删除唯一约束
--*************************************************************************--外键(foreighkey)
--外键
--在创建表时创建外键约束
定义单列外键约束
(列名数据类型[constraint约束名][foreignkey]references参照主键表[(参照列)]
[ondeletecascade︱onupdatecascade][,…])
定义多列组合外键约束
([constraint约束名][foreignkey][(列[,…n])]
references参照主键表[(参照列[,…n])]
[ondeletecascade︱onupdatecascade[,…])
--ONDELETECASCADE表示级联删除,ONUPDATECASCADE表示级联更新,他们也称为级联参照完整性约束。
--向已有表中添加外键约束
add[constraint约束名]
[foreignkey][(列[,…n])]
references参照主键表[(参照列[,…n])]
--删除外键约束
--*************************************************************************--完整性
--级联引用完整性
cCascade选项*UPDATE行为*DELETE行为*
noaction(Default)*引发错误;
回滚操作*引发错误;
回滚操作*
cascade*在引用表中更新外键*在引用表中删除行*
setnull*在引用表中设置外键为NULL*在引用表中设置外键为NULL*
setdefault*在引用表中设置外键为DEFAULT值*在引用表中设置外键为DEFAULT值*
--*************************************************************************--触发器(trigger)
--触发器
createtriggertrigger_nameon{table|view}
[withencryption]
{{for|after|insteadof{[insert][,][update]}
[withappend]
[notforreplication]
as
{ifupdatecolumn
[{and|or}update(column)][...n]
|if(columns_updated(){bitwise_operator}updated_bitmask)
{comparison_operator}column_bitmask[...n]
sql_statement[...n]
trigger_name是用户要创建的触发器的名字
table是与用户创建的触发器相关联的表的名字,并且该表已经存在
withencryption表示对包含有CREATETRIGGERsyscomments文本的表进行加密。
after表示只有在执行了指定的操作(INSERT、DELETE、UPDATE)之后触发器才被激活,
执行触发器中的SQL语句。
若使用关键字FOR,则表示为AFTER触发器,
且该类型触发器仅能在表上创建。
INSTEADOF当为表或视图定义了针对某一操作(INSERT、DELETE、UPDATE)
的INSTEADOF类型触发器且执行了相应的操作时,
尽管触发器被触发,但相应的操作并不被执行,而运行的仅是触发器SQL语句本身。
[delete][,][insert][,][update]关键字用来指明哪种数据操作将激活触发器。
至少要指明一个选项。
withappend表明增加另外一个已存在某一类型触发器。
notforreplication表明当复制处理修改与触发器相关联的表时,触发器不能被执行。
as是触发器将要执行的动作
sql_statement是包含在触发器中的条件语句或处理语句。
触发器的条件语句定义了另外的标准
来决定将被执行的INSERT、DELETE、UPDATE语句是否激活触发器。
ifupdatecolumn用来测定对某一确定列是插入操作还是更新操作。
但不与删除操作用在一起。
ifcolumns_updated仅在INSERT和UPDATE
类型的触发器中使用,用其来检查所涉及的列是被更新还是被插入。
bitwise_operator是在比较中使用的位逻辑运算符。
updated_bitmask是那些被更新或插入的列的整型位掩码。
comparison_operat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 常用 语法