1、SQL语句集锦SQL语句集锦-语 句 功 能-数据操作SELECT -从数据库表中检索数据行和列INSERT -向数据库表添加新数据行DELETE -从数据库表中删除数据行UPDATE -更新数据库表中的数据-数据定义CREATE TABLE -创建一个数据库表DROP TABLE -从数据库中删除表ALTER TABLE -修改数据库表结构CREATE VIEW -创建一个视图DROP VIEW -从数据库中删除视图CREATE INDEX -为数据库表创建一个索引DROP INDEX -从数据库中删除索引CREATE PROCEDURE -创建一个存储过程DROP PROCEDURE -从
2、数据库中删除存储过程CREATE TRIGGER -创建一个触发器DROP TRIGGER -从数据库中删除触发器CREATE SCHEMA -向数据库添加一个新模式DROP SCHEMA -从数据库中删除一个模式CREATE DOMAIN -创建一个数据值域ALTER DOMAIN -改变域定义DROP DOMAIN -从数据库中删除一个域-数据控制GRANT -授予用户访问权限DENY -拒绝用户访问REVOKE -解除用户访问权限-事务控制COMMIT -结束当前事务ROLLBACK -中止当前事务SET TRANSACTION -定义当前事务数据访问特征-程序化SQLDECLARE -
3、为查询设定游标EXPLAN -为查询描述数据访问计划OPEN -检索查询结果打开一个游标FETCH -检索一行查询结果CLOSE -关闭游标PREPARE -为动态执行准备SQL 语句EXECUTE -动态地执行SQL 语句DESCRIBE -描述准备好的查询 -局部变量declare id char(10)-set id = 10010001select id = 10010001 -全局变量-必须以开头 -IF ELSEdeclare x int y int z intselect x = 1 y = 2 z=3if x yprint x y -打印字符串x yelse if y zpri
4、nt y zelse print z y -CASEuse panguupdate employeeset e_wage =case when job_level = 1 then e_wage*1.08 when job_level = 2 then e_wage*1.07 when job_level = 3 then e_wage*1.06 else e_wage*1.05end -WHILE CONTINUE BREAKdeclare x int y int c intselect x = 1 y=1while x 3begin print x -打印变量x 的值 while y 3
5、begin select c = 100*x + y print c -打印变量c 的值 select y = y + 1 end select x = x + 1 select y = 1end -WAITFOR-例 等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay 01:02:03select * from employee-例 等到晚上11 点零8 分后才执行SELECT 语句waitfor time 23:08:00select * from employee *SELECT* select *(列名) from table_name(表名) where
6、column_name operator value ex:(宿主) select * from stock_information where stockid = str(nid) stockname = str_name stockname like % find this % stockname like a-zA-Z% - (指定值的范围) stockname like F-M% - (排除指定范围) - 只能在使用like关键字的where子句中使用通配符) or stockpath = stock_path or stocknumber =表达式的最小整数返回的数据类型与表达式相同
7、可为 -INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) -返回=表达式的最小整数返回的数据类型与表达式相同可为 -INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) -返回以integer_expression 为精度的四舍五入值返回的数据 -类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) -返回表达式的绝对值返回的数据类型与表达式相同可为 -INTEGER/MONEY/REAL/FLOAT 类型SIGN(nu
8、meric_expression) -测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型 -与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() -返回值为 即3.1415926535897936RAND(integer_expression) -用任选的integer_expression做种子值得出0-1 间的随机浮点数 -字符串函数-ASCII() -函数返回字符表达式最左端字符的ASCII 码值CHAR() -函数用于将ASCII 码转换为字符 -如果没有输入0 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() -函
9、数把字符串全部转换为小写UPPER() -函数把字符串全部转换为大写STR() -函数把数值型数据转换为字符型数据LTRIM() -函数把字符串头部的空格去掉RTRIM() -函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() -函数返回部分字符串CHARINDEX(),PATINDEX() -函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() -函数返回一个四位字符码 -SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值 DIFFERENCE() -函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异 -
10、0 两个SOUNDEX 函数返回值的第一个字符不同 -1 两个SOUNDEX 函数返回值的第一个字符相同 -2 两个SOUNDEX 函数返回值的第一二个字符相同 -3 两个SOUNDEX 函数返回值的第一二三个字符相同 -4 两个SOUNDEX 函数返回值完全相同 QUOTENAME() -函数返回被特定字符括起来的字符串/*select quotename(abc, ) quotename(abc)运行结果如下-abc abc*/ REPLICATE() -函数返回一个重复character_expression 指定次数的字符串/*select replicate(abc, 3) repl
11、icate( abc, -2)运行结果如下- -abcabcabc NULL*/ REVERSE() -函数将指定的字符串的字符排列顺序颠倒REPLACE() -函数返回被替换了指定子串的字符串/*select replace(abc123g, 123, def)运行结果如下- -abcdefg*/ SPACE() -函数返回一个有指定长度的空白字符串STUFF() -函数用另一子串替换字符串指定位置长度的子串 -数据类型转换函数-CAST() 函数语法如下CAST() ( AS length )CONVERT() 函数语法如下CONVERT() ( length , , style) sel
12、ect cast(100+99 as char) convert(varchar(12), getdate()运行结果如下- -199 Jan 15 2000 -日期函数-DAY() -函数返回date_expression 中的日期值MONTH() -函数返回date_expression 中的月份值YEAR() -函数返回date_expression 中的年份值DATEADD( , ,) -函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF( , ,) -函数返回两个指定日期在datepart 方面的不同之处DATENAME( , ) -函数以字符
13、串的形式返回日期的指定部分DATEPART( , ) -函数以整数值的形式返回日期的指定部分GETDATE() -函数以DATETIME 的缺省格式返回系统当前的日期和时间 -系统函数-APP_NAME() -函数返回当前执行的应用程序的名称COALESCE() -函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(, ) -函数返回表中指定字段的长度值COL_NAME(, ) -函数返回表中指定字段的名称即列名DATALENGTH()-函数返回数据表达式的数据的实际长度DB_ID(database_name) -函数返回数据库的编号DB_NAME(database_id)
14、-函数返回数据库的名称HOST_ID() -函数返回服务器端计算机的名称HOST_NAME() -函数返回服务器端计算机的名称IDENTITY(, seed increment) AS column_name)-IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() -函数判断所给定的表达式是否为合理日期ISNULL(, ) -函数将表达式中的NULL 值用指定值替换ISNUM
15、ERIC() -函数判断所给定的表达式是否为合理的数值NEWID() -函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(, )-NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值精妙SQL语句说明:复制表(只复制结构,源表名:a 新表名:b)SQL: select * into b from a where 11说明:拷贝表(拷贝数据,源表名:a 目标表名:b)SQL: insert into b(a, b, c) select d,e,f from b;说明:显示文章、提交人和最后回复
16、时间SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b说明:外连接查询(表名1:a 表名2:b)SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c说明:日程安排提前五分钟提醒SQL: select * from 日程安排 where datediff(minute,f开始时间,getdate()5说明:
17、两张关联表,删除主表中已经在副表中没有的信息SQL: delete from info where not exists ( select * from infobz where info.infid=infobz.infid ) 说明:-SQL: SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATEFROM TABLE1, (SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATEFROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHANDFROM TABL
18、E2WHERE TO_CHAR(UPD_DATE,YYYY/MM) = TO_CHAR(SYSDATE, YYYY/MM) X, (SELECT NUM, UPD_DATE, STOCK_ONHANDFROM TABLE2WHERE TO_CHAR(UPD_DATE,YYYY/MM) = TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, YYYY/MM) | /01,YYYY/MM/DD) - 1, YYYY/MM) ) Y, WHERE X.NUM = Y.NUM (+)AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) X.STOCK_ONHAND ) BWHERE A.NUM = B.NUM说明:-SQL: select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称=&strdepartmentname& and 专业名称=&strprofessionname& order by 性别,生源地,高考总成绩说明:从数据库中去一年的各单位电话
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1