1、数据操作 Select从数据库表中检索数据行和列 Insert向数据库表添加新数据行 Delete从数据库表中删除数据行 Update更新数据库表中的数据2、数据定义 CreateTABLE创建一个数据库表 DropTABLE从数据库中删除表 AlterTABLE修改数据库表结构 CreateVIEW创建一个视图 DropVIEW从数据库中删除视图 CreateINDEX为数据库表创建一个索引 DropINDEX从数据库中删除索引 CreatePROCEDURE创建一个存储过程 DropPROCEDURE从数据库中删除存储过程 CreateTRIGGER创建一个触发器 DropTRIGGER从数据库中删除触发器 CreateSCHEMA向数据库添加一个新模式 DropSCHEMA从数据库中删除一个模式 CreateDOMAIN创建一个数据值域 AlterDOMAIN改变域定义 DropDOMAIN从数据库中删除一个域3、数据控制 GRANT授予用户访问权限 DENY拒绝用户访问 REVOKE解除用户访问权限4、事务控制 COMMIT结束当前事务 ROLLBACK中止当前事务 SETTRANSACTION定义当前事务数据访问特征5、程序化SQL DECLARE为查询设定游标 EXPLAN为查询描述数据访问计划 OPEN检索查询结果打开一个游标 FETCH检索一行查询结果 CLOSE关闭游标 PREPARE为动态执行准备SQL语句 EXECUTE动态地执行SQL语句 DESCRIBE描述准备好的查询6、局部变量 declareidchar(10) setid10010001 selectid100100017、全局变量 必须以开头8、IF语句 declarexintyintzint selectx1y2z3 ifxy printxy打印字符串xy elseifyz printyz elseprintzy9、CASE语句 usepangu updateemployee setewage case whenjoblevel’1’thenewage1。08 whenjoblevel’2’thenewage1。07 whenjoblevel’3’thenewage1。06 elseewage1。05 end10、WHILECONTINUEBREAK语句 declarexintyintcint selectx1y1 whilex3 begin printx打印变量x的值 whiley3 begin selectc100xy printc打印变量c的值 selectyy1 end selectxx1 selecty1 end11、WAITFOR语句 例等待1小时2分零3秒后才执行Select语句 waitfordelay’01:02:03’ selectfromemployee 例等到晚上11点零8分后才执行Select语句 waitfortime’23:08:00’ selectfromemployee12、Select语句 select(列名)fromtablename(表名)wherecolumnnameoperatorvalue ex:(宿主) selectfromstockinformationwherestockidstr(nid) stocknamestrname stocknamelikefindthis stocknamelike〔azAZ〕(〔〕指定值的范围) stocknamelike〔FM〕(排除指定范围) 只能在使用like关键字的where子句中使用通配符) orstockpathstockpath orstocknumber1000 andstockindex24 notstocksexman stocknumberbetween20and100 stocknumberin(10,20,30) orderbystockiddesc(asc)排序,desc降序,asc升序 orderby1,2by列号stockname(selectstocknamefromstockinformationwherestockid4) 子查询 除非能确保内层select只返回一个行的值, 否则应在外层where子句中用一个in限定符 selectdistinctcolumnnameformtablenamedistinct指定检索独有的列值,不重复 selectstocknumber,stocknumber10stocknumber10fromtablename selectstockname,stocknumbercount()fromtablenamegroupbystockname groupby将表按行分组,指定列中有相同的值 havingcount()2having选定指定的组 select fromtable1,table2 wheretable1。idtable2。id左外部连接,table1中有的而table2中没有得以null表示 table1。idtable2。id右外部连接 selectstocknamefromtable1 union〔all〕union合并查询结果集,all保留重复行 selectstocknamefromtable213、insert语句 insertintotablename(Stockname,Stocknumber)value(xxx,xxxx) value(selectStockname,StocknumberfromStocktable2)value为select语句14、update语句 updatetablenamesetStocknamexxx〔whereStockid3〕 Stocknamedefault Stocknamenull StocknumberStockname415、delete语句 deletefromtablenamewhereStockid3 truncatetablename删除表中所有行,仍保持表的完整性 droptabletablename完全删除表16、altertable修改数据库表结构 altertabledatabase。owner。tablenameaddcolumnnamechar(2)null。。。。。 sphelptablename显示表已有特征 createtabletablename(namechar(20),agesmallint,lnamevarchar(30)) insertintotablenameselect。。。。。。。。。实现删除列的方法(创建新表) altertabletablenamedropconstraintStocknamedefault删除Stockname的default约束