SQL常用语法.docx

上传人:b****1 文档编号:2833735 上传时间:2023-05-04 格式:DOCX 页数:39 大小:29.18KB
下载 相关 举报
SQL常用语法.docx_第1页
第1页 / 共39页
SQL常用语法.docx_第2页
第2页 / 共39页
SQL常用语法.docx_第3页
第3页 / 共39页
SQL常用语法.docx_第4页
第4页 / 共39页
SQL常用语法.docx_第5页
第5页 / 共39页
SQL常用语法.docx_第6页
第6页 / 共39页
SQL常用语法.docx_第7页
第7页 / 共39页
SQL常用语法.docx_第8页
第8页 / 共39页
SQL常用语法.docx_第9页
第9页 / 共39页
SQL常用语法.docx_第10页
第10页 / 共39页
SQL常用语法.docx_第11页
第11页 / 共39页
SQL常用语法.docx_第12页
第12页 / 共39页
SQL常用语法.docx_第13页
第13页 / 共39页
SQL常用语法.docx_第14页
第14页 / 共39页
SQL常用语法.docx_第15页
第15页 / 共39页
SQL常用语法.docx_第16页
第16页 / 共39页
SQL常用语法.docx_第17页
第17页 / 共39页
SQL常用语法.docx_第18页
第18页 / 共39页
SQL常用语法.docx_第19页
第19页 / 共39页
SQL常用语法.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SQL常用语法.docx

《SQL常用语法.docx》由会员分享,可在线阅读,更多相关《SQL常用语法.docx(39页珍藏版)》请在冰点文库上搜索。

SQL常用语法.docx

SQL常用语法

/*1433端口,是SQLServer默认的端口,

SQLServer服务使用两个端口:

TCP-1433、UDP-1434。

其中用于供SQLServer对外提供服务,

1434用于向请求者返回SQLServer使用了哪个TCP/IP端口。

*/

--*************************************************************************创建新表

createtabletableok

col1int,

col2_notnullintnotnull,

col3_defaultnchar

(1)notnulldefault('男'),--默认男

col4_defaultdatetimenotnulldefault(getdate()),--默认得到系统时间

col5_checkintnotnullcheck(col5_check>=18andcol5_check<=55),--添加约束,数据值在到之间

col6_checknchar(9)notnullcheck(col6_checklike'msd0902[0-9][^6-9]'),--添加约束,数据值前位必须是‘msd0902’,倒数第两位可以是-9中任意一个数字,最后一位不是-9之间的数字。

cola_primarynchar(5)notnullprimarykey,--建立主键

colb_uniqueintunique,--唯一约束

col7_Identityintnotnullidentity(100,1),--自增长,从开始,每列值增加个

col8_identitynumeric(5,0)notnullidentity(1,1),--自增长,从开始,每列值增加个,最大值是位的整数

col9_guiduniqueidentifiernotnulldefault(newid())--使用newid()函数,随机获取列值

--根据已有的表创建新表:

--createtabletab_newlikes1

--createtabletab_newasselectcol1,col2…fromtab_olddefinitiononly

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='1'--删除

updates1setid='6'whereid='1'--更新

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.列名

--右外联接

--select列名列表

--from表名asAright[outer]join表名asBonA.列名=B.列名

--全外联接

--select列名列表

--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

({|}[,...,n])

:

:

=

{column_namedata_type}

[{defaultconstant_expression|[identity[(seed,increment)]]}]

[[···n]]

列约束定义

:

:

=

[constraintconstraint_name]

{ ?

 null|notnull]

|[primarykey|unique]

|[clustered|nonclustered] ?

 ?

 ?

 ?

|[referencesref_table[(ref_column)]

[ondelete{cascade|noaction}]

[onupdate{cascade|noaction}]

}

表约束定义

:

:

=

[constraintconstraint_name]

{ ?

[{primarykey|unique}{(column[,…,n])}]

|foreighkey(column[,…,n])      

[referencesref_table[(ref_column[[,…,n])]

[ondelete{cascade|noaction}]

[onupdate{cascade|noaction}]

}

*/

--*************************************************************************--主键约束(primarykey)

--在创建表时创建主键约束

--语法格式:

--createtable数据表名

--(列名数据类型[constraint约束名]primarykey[clustered︱nonclusterde][,…])

--语法格式:

--createtable数据表名

--([constraint约束名]primarykey[clustered︱nonclusterde](列名[,…n])[,…])

--向已有表中添加主键约束**保证主键列没有空值和重复值**

--altertable表名

--add[constraint约束名]primarykey(列名[,…n])[,…])

--删除主键约束

--altertable表名

--dropconstraint约束名

--*************************************************************************--默认值约束(default)

--在创建表时创建默认值约束

--语法格式:

/*

createtable数据表名

(列名数据类型[constraint约束名]default默认值[,…])

*/

--语法格式:

/*

createtable数据表名

([constraint约束名]default默认值for列[,…])

*/

--向已有表中添加默认值约束

/*

altertable表名

add[constraint约束名]默认值for列[,…])

*/

--删除默认值约束

/*

altertable表名

dropconstraint约束名

*/

--*************************************************************************--检查约束(check)

--在创建表时创建检查约束

/*

createtable数据表名

(列名数据类型[constraint约束名]check(逻辑表达式)[,…])

*/

--向已有表中添加检查约束

/*

altertable表名

withnocheck

add[constraint约束名]check(逻辑表达式)[,…])

*/

--删除检查约束

/*

altertable表名

dropconstraint约束名

*/

--可以通过关键字WITHNOCHECK禁止CHECK约束检查表中已有的数据

/*

altertable表名

nocheckconstraint约束名︱checkconstraint约束名

*/

--*************************************************************************--(clusterednonclustered)

--唯一性约束

/*

语法格式:

定义单列唯一约束

createtable数据表名

(列名数据类型[constraint约束名]unique[clustered︱nonclusted][,…])

*/

--语法格式:

定义多列组合唯一约束

/*

createtable数据表名

([constraint约束名]unique[clustered︱nonclusteed](列名[,…n])[,…])

*/

--向已有表中添加唯一约束

/*

altertable表名

add[constraint约束名]unique(列名[,…n])[,…])

*/

--删除唯一约束

/*

altertable表名

dropconstraint约束名

*/

--*************************************************************************--外键(foreighkey)

--外键

--在创建表时创建外键约束

--语法格式:

定义单列外键约束

/*

createtable数据表名

(列名数据类型[constraint约束名][foreignkey]references参照主键表[(参照列)]

[ondeletecascade︱onupdatecascade][,…])

*/

--语法格式:

定义多列组合外键约束

/*

createtable数据表名

([constraint约束名][foreignkey][(列[,…n])]

references参照主键表[(参照列[,…n])]

[ondeletecascade︱onupdatecascade[,…])

*/

--ONDELETECASCADE表示级联删除,ONUPDATECASCADE表示级联更新,他们也称为级联参照完整性约束。

--向已有表中添加外键约束

/*

altertable表名

add[constraint约束名]

[foreignkey][(列[,…n])]

references参照主键表[(参照列[,…n])]

[ondeletecascade︱onupdatecascade][,…])

*/

--删除外键约束

/*

altertable表名

dropconstraint约束名

*/

--*************************************************************************--完整性

--级联引用完整性

/*

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2