西门子ABB等PLC专用经典SQL语句大全一、基础
- 格式:doc
- 大小:87.00 KB
- 文档页数:18
sql基础语句汇总SQL是结构化查询语言(StructuredQueryLanguage)的缩写,是一种非常强大的数据库管理系统(DBMS)语言。
它的设计是为了操纵数据库,可以实现数据库的创建、存取和管理功能。
SQL语言既可以解决数据库中单一问题,也可以实现多表数据之间联合查询。
SQL语句可以分为三类:数据查询语句、数据定义语句和数据控制语句。
数据查询语句用于查询数据,是SQL中使用最多、最常见的语句。
主要涉及SELECT语句。
其语法格式包括:SELECT查询的列名> FROM 名> [WHERE询条件>]。
数据定义语句用于将数据存储到表中。
它的语法格式包括:CREATE TABLE名>(1定义>,2定义>,)。
数据控制语句用于控制数据库的更新操作,包括数据的插入、删除和更新操作。
它的语法格式包括:INSERT INTO名>(插入的列1>,插入的列2>,) VALUES入的值1>,入的值2>,)。
SQL语句包含以上三类语句,使用SQL语句能够实现更加细致的数据库管理。
除了以上三类基本语句之外,SQL语句还包括若干其他语句,比如创建索引、修改表结构、视图管理等等,下面我们将综合介绍它们的用法:1. CREATE INDEX:可以用来为某张表创建索引,它的语法格式为:CREATE INDEX引名> ON名>(1>,2>,)2. ALTER TABLE:可以用来修改表结构,它的语法格式为:ALTER TABLE名> ADD列定义>3. DROP TABLE:可以用来删除表,它的语法格式为:DROP TABLE 名>4. CREATE VIEW:可以用来创建视图,它的语法格式为:CREATE VIEW图名> AS询语句>5. DROP VIEW:可以用来删除视图,它的语法格式为:DROP VIEW 图名>6. GRANT/REVOKE:可以用来给用户分配或撤销权限,它的语法格式为:GRANT限> ON象> TO户名>REVOKE限> ON象> FROM户名>7.接查询:可以用来访问多个表格之间的数据,它的语法格式为:SELECT名> FROM1> JOIN2> ON接条件>8.查询:可以用来查询另一个查询的结果,它的语法格式为:SELECT名> FROM名> WHERE名> IN (SELECT名> FROM他表>) 总之,SQL语句是对数据库的操作的最基本工具。
sql常用语句SQL(StructuredQueryLanguage)是操作关系型数据库的标准语言,已经成为现代计算机处理数据库管理系统中最重要的语言之一。
SQL语言包含有很多操作语句,可以完成常规的CRUD(Create、Read、Update和Delete)操作,以及定义视图、原生态语句、存储过程等等,是数据库表格的基础数据操作语句。
一、Select语句SELECT语句是SQL语言中最重要也是最常见的语句,它被用来搜索数据库表格,并返回满足条件的记录。
SELECT语句的格式如下: SELECT columnsFROM table[WHERE condition]其中columns是待查询的表格列,table是待查询的表格名称,condition是查询条件,可选部分。
SELECT语句还可以使用ORDER BY 子句以指定排序字段来对结果进行排序,例如:SELECT column1, column2FROM tableWHERE conditionORDER BY column2举个例子,假设有一个名为customers的表格,我们希望查询该表格中name(姓名)字段以“Y”开头的记录,可用以下SQL语句实现:SELECT NameFROM customersWHERE Name LIKE Y%二、Insert语句INSERT语句用于插入新的记录到数据库表格中,INSERT语句的格式如下:INSERT INTO table (column1, column2,…VALUES (value1, value2,)其中table是要插入记录的表格名称,column1和column2是要插入记录的表格列,value1和value2是要插入记录中对应列的值。
例如,下面的语句用于向customers表格中插入一行记录:INSERT INTO customers (Name, Address, Phone)VALUES (John123 Main Street111-222-3333三、Update语句UPDATE语句用于更新数据库表格中的记录,UPDATE语句的格式如下:UPDATE tableSET column1=value1, column2=value2,[WHERE condition]其中table是待更新的表格名称,column1和column2是要更新的表格列,value1和value2是要更新的对应列的值,condition是更新的条件,可选部分。
SQL常用语句一览SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。
本文将介绍SQL中常用的语句,包括数据查询、数据插入、数据更新和数据删除等操作。
数据查询在SQL中,使用SELECT语句来查询数据。
下面是一些常用的数据查询语句:1.查询所有数据:SELECT * FROM table_name;2.查询指定列的数据:SELECT column1, column2, ... FROM table_name;3.查询带有条件的数据:SELECT * FROM table_name WHERE condition;4.查询排序后的数据:SELECT * FROM table_name ORDER BY column ASC/DESC;5.查询前N条数据:SELECT TOP N * FROM table_name;6.查询满足条件的唯一数据:SELECT DISTINCT column FROM table_name;数据插入在SQL中,使用INSERT语句将数据插入到表中。
下面是一些常用的数据插入语句:1.插入完整行数据:INSERT INTO table_name VALUES (value1, value2, ...);2.插入指定列的数据:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);数据更新在SQL中,使用UPDATE语句更新表中的数据。
下面是一些常用的数据更新语句:1.更新指定列的数据:UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;数据删除在SQL中,使用DELETE语句删除表中的数据。
下面是一些常用的数据删除语句:1.删除满足条件的数据:DELETE FROM table_name WHERE condition;在SQL中,使用聚合函数来执行各种计算。
西门子PLC编程指令集大全,看完必有收获!西门子PLC编程指令包括:位逻辑指令,比较指令,转换指令等14个,相信很多初学的朋友们对这些指令了解的不是很全面,有些指令符号并不理解是什么意思。
那么小编为了大家更好的学习,整理出西门子PLC指令大全,希望对大家有帮助!一、位逻辑指令1. -||- 常开接点(地址)2. -|/|- 常闭接点(地址)3. XOR 位异或4.-|NOT|- 信号流反向5. -( ) 输出线圈6. -(#)- 中间输出7. -(R) 线圈复位8. -(S) 线圈置位9. RS 复位置位触发器10. RS 置位复位触发器11. -(N)- RLO下降沿检测12. -(P)- PLO上升沿检测13. -(SAVE) 将RLO存入BR存储器14. MEG 地址下降沿检测15. POS 地址上升沿检测二、转换指令1. BCD_IBCD码转换为整数2. I_BCD 整数转换为BCD码3. I_DINT 整数转换为双整数4. BCD_DIBCD码转换为双整数5. DI_BCD 双整数转换为BCD码6. DI_REAL 双整数转换为浮点数7. INV_I 整数的二进制反码8. INV_DI 双整数的二进制反码9. NEG_I 整数的二进制补码10. NEG_DI 双整数的二进制补码11. NEG_R 浮点数求反12. ROUND 舍入为双整数13. TRUNC 舍去小数取整为双整数14. CEIL 上取整15. FLOOR 下取整三、比较指令1. CMP?R 实数比较2. CMP?I 整数比较3. CMP?D 双整数比较四、计数器指令1. S_CUD 加减计数2. S_CU 加计数器3. S_CD 减计数器4. -(SC) 计数器置初值5. -(CU) 加计数器线圈6. -(CD) 减计数器线圈五、逻辑控制指令1. -(JMP) 无条件跳转2.-(JMP) 条件跳转3. -(JMPN) 若非则跳转4. LABEL 标号六、数据块指令1. -(OPN) 打开数据块:DB或DI七、整数算术运算指令1. ADD_I 整数加法2. SUB_I 整数减法3. MUL_I 整数乘法4. DIV_I 整数除法5. ADD_DI 双整数加法6. SUB_DI 双整数减法7. MUL_DI 双整数乘法8. DIV_DI 双整数除法9. MOD_DI 回送余数的双整数八、浮点算术运算指令一基础指令1. ADD_R 实数加法2. SUB_R 实数减法3. MUL_R 实数乘法4. DIV_R 实数除法5. ABS 浮点数绝对值运算二扩展指令1.SQR 浮点数平方2. SQRT 浮点数平方根3. EXP 浮点数指数运算4. LN 浮点数自然对数运算5. SIN 浮点数正弦运算6. COS 浮点数余弦运算7. TAN 浮点数正切运算8. ASIN 浮点数反正弦运算9. ACOS 浮点数反余弦运算10.ATAN 浮点数反正切运算九、程序控制指令1. -(Call) 从线圈调用FC/SFC(无参数)2. CALL_FB 从方块调用FB3. CALL_FC 从方块调用FC4. CALL_SFB 从方块调用SFB5. CALL_SFC 从方块调用SFC6. -(MCR<) 主控继电器接通7. -(MCR>) 主控继电器断开8. -(MCRA) 主控继电器启动9. -(MCRD) 主控继电器停止10. -(RET) 返回十、赋值指令1. MOVE 赋值2. 移位和循环指令十一、移位指令1.SHR_I 整数右移2. SHR_DI 双整数右移3. SHL_W 字左移4.SHR_W 字右移5. SHL_DW 双字左移6. SHR_DW 双字右移十二、循环指令1.ROL_DW 双字左循环2. ROR_DW 双字右循环十三、状态位指令1. OV -||- 溢出异常位2. OS -||- 存储溢出异常位3. UO -||- 无序异常位4. BR -||- 异常位二进制结果5. ==0-||- 结果位等于'0'6. <>0-||- 结果位不等于'0'7. >0-||- 结果位大于'0'8.<0-||- 结果位小于'0'9. >=0-||- 结果位大于等于'0'10. <=0-||- 结果位小于等于'0' 十四、定时器指令1.S_PULSE 脉冲S5定时器2.S_PEXT 扩展脉冲S5定时器3. S_ODT 接通延时S5定时器4. S_ODTS 保持型接通延时S5定时器5. S_OFFDT 断电延时S5定时器6. -(SP) 脉冲定时器线圈7. -(SE) 扩展脉冲定时器线圈8. -(SD) 接通延时定时器线圈9. -(SS) 保持型接通延时定时器线圈10. -(SF) 断开延时定时器线圈十五、字逻辑指令1. WAND_W 字和字相'与'2. WOR_W 字和字相'或'3.WAND_DW 双字和双字相'与'4. WOR_DW 双字和双字相'或'5. WXOR_W 字和字相'异或'6. WXOR_DW 双字和双字相'异或。
1 、普通SQL语句可以用Exec执行eg: Select * from tableNameExec('select * from tableName')Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N2、字段名,表名,数据库名之类作为变量时,必须用动态SQLeg:declare @fname varchar(20)set @fname = 'FiledName'Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意加号前后的单引号的边上加空格当然将字符串改成变量的形式也可declare @fname varchar(20)set @fname = 'FiledName' --设置字段名declare @s varchar(1000)set @s = 'select ' + @fname + ' from tableName'Exec(@s) -- 成功exec sp_executesql @s -- 此句会报错declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)set @s = 'select ' + @fname + ' from tableName'Exec(@s) -- 成功exec sp_executesql @s -- 此句正确3、输出参数declare @num int,@sqls nvarchar(4000)set @sqls='select count(*) from tableName'exec(@sqls)--如何将exec执行结果放入变量中?declare @num int,@sqls nvarchar(4000)set @sqls='select @a=count(*) from tableName 'exec sp_executesql @sqls,N'@a int output',@num outputselect @num此外,如果想要在SQL语句字符串中使用单引号'' 可以使用''''--语句功能--数据操作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 --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator valueex:(宿主)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 < 1000and stockindex = 24not stock*** = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数----A VG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--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(numeric_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() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PA TINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--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) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DA TEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DA TEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DA TENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DA TEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDA TE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DA TALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值sql中的保留字action add aggregate allalter after and asasc avg avg_row_length auto_incrementbetween bigint bit binaryblob bool both bycascade case char characterchange check checksum columncolumns comment constraint createcross current_date current_time current_timestampdata database databases datedatetime day day_hour day_minuteday_second dayofmonth dayofweek dayofyeardec decimal default delayeddelay_key_write delete desc describedistinct distinctrow double dropend else escape escapedenclosed enum explain existsfields file first floatfloat4 float8 flush foreignfrom for full functionglobal grant grants grouphaving heap high_priority hourhour_minute hour_second hosts identifiedignore in index infileinner insert insert_id intinteger interval int1 int2int3 int4 int8 intoif is isam joinkey keys kill last_insert_idleading left length likelines limit load locallock logs long longbloblongtext low_priority max max_rowsmatch mediumblob mediumtext mediumintmiddleint min_rows minute minute_secondmodify month monthname myisamnatural numeric no notnull on optimize optionoptionally or order outeroutfile pack_keys partial passwordprecision primary procedure processprocesslist privileges read realreferences reload regexp renamereplace restrict returns revokerlike row rows secondselect set show shutdownsmallint soname sql_big_tables sql_big_selectssql_low_priority_updates sql_log_off sql_log_update sql_select_limitsql_small_result sql_big_result sql_warnings straight_joinstarting status string tabletables temporary terminated textthen time timestamp tinyblobtinytext tinyint trailing totype use using uniqueunlock unsigned update usagevalues varchar variables varyingvarbinary with write whenwhere year year_month zerofill常用SQL命令和ASP编程在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下:SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表where 字段名=字段值order by 字段名[desc]"sql="select * from 数据表where 字段名like %字段值% order by 字段名[desc]"sql="select top 10 * from 数据表where 字段名order by 字段名[desc]"sql="select * from 数据表where 字段名in (值1,值2,值3)"sql="select * from 数据表where 字段名between 值1 and 值2"(2) 更新数据记录:sql="update 数据表set 字段名=字段值where 条件表达式"sql="update 数据表set 字段1=值1,字段2=值2 ……字段n=值n where 条件表达式" (3) 删除数据记录:sql="delete from 数据表where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:A VG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名from 数据表where 条件表达式"set rs=conn.excute(sql)用rs("别名") 获取统的计值,其它函数运用同上。
西门子ABB等PLC专用经典SQL语句大全一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键: Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxna me on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
sql基础语句汇总SQL(StructuredQueryLanguage)是一种结构化查询语言,用于存取数据库系统,它是一种关系型数据库中使用的特定语言,能够通过例如检索、插入、更新、删除等操作来管理数据。
它的语法分为DDL(数据定义语言)和DML(数据操纵语言)两种部分,下面先介绍一些常见的SQL基础语句:DDL:建表格语句:使用CREATE TABLE语句可以创建一个表格,其中可以指定表格的字段名称、类型和性质等。
除表格语句:使用DROP TABLE语句可以删除一个表格,但该操作不可恢复。
加字段语句:使用ALTER TABLE语句可以在表格中添加新的字段。
除字段语句:使用ALTER TABLE语句可以在表格中删除字段。
DML:入语句:使用INSERT INTO语句可以把数据插入到指定的表格中。
新语句:使用UPDATE语句可以更新表格中的数据。
除语句:使用DELETE语句可以删除表格中的数据。
询语句:使用SELECT语句可以从表格中检索出指定的数据。
以上就是常见的SQL基础语句,下面我们从实践上来看看这些语句都可以用于什么地方。
首先是创建表格,使用CREATE TABLE语句可以创建一个表格,这对于在数据库中存储信息是非常有用的,比如下面的例子:CREATE TABLE customers(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255) NOT NULL,address VARCHAR(255) NOT NULL,PRIMARY KEY (id));上面的代码会创建一个客户表,其中存储了客户ID、名称和地址等信息。
接下来是插入语句,使用INSERT INTO语句可以将数据插入到指定的表格中,比如下面的例子:INSERT INTO customers (name, address) VALUES (Tom 123 Main Street上面的代码会把客户名称和地址插入到表格customers中。
sql常用语句SQL(结构化查询语言)是一种用于从关系型数据库中检索和操作数据的标准计算机语言。
SQL语句用于定义和操纵数据表和其它数据结构,使用SQL可以在关系型数据库中检索、插入、更新和删除数据,以实现数据持久化管理。
SQL语句的结构比较简单,通常由以下几种类型组成:1.据定义语言(DML):用于插入、更新和删除数据的常见语句,包括: SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE (删除)等。
2.据控制语言(DCL):用于控制数据操作的常见语句,包括:GRANT (授权)、REVOKE(撤销授权)等。
3. 事务控制语句:用于处理数据库事务的常见语句,包括:COMMIT(提交)、ROLLBACK(回滚)等。
4.据库定义语言(DDL):用于创建、修改和删除数据库对象的常见语句,包括:CREATE(创建)、ALTER(修改)、DROP(删除)等。
虽然SQL语句的整体结构简单,但各类SQL语句的使用方法可不少,下面就来简要介绍一下SQL常用语句。
1. SELECT句:SELECT句用于从数据库中检索数据,其语法为:SELECT [字段名] FROM [表名] WHERE [条件];其中,[字段名]示要查询出的字段,[表名]示要查询的表,[条件]示查询的条件。
2. INSERT句:INSERT句用于向数据库表中插入数据,其语法为:INSERT INTO [表名] ([字段名], [字段名]... ) VALUES ([值], [值]... );其中,[表名]示要插入的表,[字段名]示要插入的字段,[值]示要插入的值。
3. UPDATE句:UPDATE句用于更新数据库表中的数据,其语法为:UPDATE [表名] SET [字段名] = [值], [字段名] = [值]...WHERE [条件];其中,[表名]示要更新的表,[字段名]示要更新的字段,[值]示要更新的值,[条件]示更新的条件。
SQL基础语句大全(中文)SQL基础语句大全(中文)SQL基础本章内容SQL介绍使用SELECT 语句从表中取数据创建新表字段属性向表中添加数据删除和修改表为了建立交互站点,你需要使用数据库来存储来自访问者的信息。
例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简历,所感兴趣的工作等等这样的信息。
创建动态网叶也需要使用数据库,如果你想显示符合来访者要求的最好的工作,你就需要从数据库中取出这份工作的信息。
你将会发现,在许多情况下需要使用数据库。
在这一章里,你将学会怎样使用“结构化查询语言”(SQL〕来操作数据库。
SQL语言是数据库的标准语言。
在Active Sever Pages 中,无论何时你要访问一个数据库,你就要使用SQL语言。
因此,掌握好SQL对ASP编程是非常重要的。
注意:你可以把“SQL”读作“sequel”,也可以按单个字母的读音读作S-Q-L。
两种发音都是正确的,每种发音各有大量的支持者。
在本书里,认为“SQL”读作“sequel”。
通过这一章的学习,你将理解怎样用SQL实现数据库查询,你将学会怎样使用这种查询从数据表中取出信息,最后,你将学会怎样设计和建立自己的数据库。
注意:通过下面几章对SQL的介绍,你将对SQL有足够的了解,从而可以有效地使用Active Sever Pages。
但是,SQL是一种复杂的语言,本书不可能包括它的全部细节。
要全面掌握SQL语言,你需要学习在Microsoft SQL Sever 中使用SQL。
你可以到附近的书店去买一本Microsoft SQL Sever 6.5。
SQL介绍:本书假设你是在SQL操作Microsoft SQL Sever 的数据库。
你也可以用SQL操作许多其它类型的数据库。
SQL是操作数据库的标准语言。
(事实上,关于SQL语言有一个专门的ANSI标准〕注意:不要在你的站点上试图用Microsoft Access代替Microsoft SQL Sever。
SQL语句大全--语句功能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据-数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器l e x y DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域ALTER DOMAIN --改变域定义DROP DOMAIN --从数据库中删除一个域--数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限--事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'l e x y else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employeel e x y***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 '[a-zA-Z]%' --------- ([]指定值的范围)stockname like '[^F-M]%' --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber < 1000and stockindex = 24not stock*** = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接l e x yselect stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))l e x yinsert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差l e x y --VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返l e x y回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_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() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下l e x y----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----l e x yDAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值l e x ysql中的保留字action add aggregate allalter after and asasc avg avg_row_length auto_incrementbetween bigint bit binaryblob bool both bycascade case char characterchange check checksum columncolumns comment constraint createcross current_date current_time current_timestampdata database databases datedatetime day day_hour day_minuteday_second dayofmonth dayofweek dayofyeardec decimal default delayeddelay_key_write delete desc describedistinct distinctrow double dropend else escape escapedenclosed enum explain existsfields file first floatfloat4 float8 flush foreignfrom for full functionglobal grant grants grouphaving heap high_priority hourhour_minute hour_second hosts identifiedignore in index infileinner insert insert_id intinteger interval int1 int2int3 int4 int8 intoif is isam joinkey keys kill last_insert_idleading left length likelines limit load locallock logs long longbloblongtext low_priority max max_rowsmatch mediumblob mediumtext mediumintmiddleint min_rows minute minute_secondmodify month monthname myisamnatural numeric no notnull on optimize optionoptionally or order outerl e x y outfile pack_keys partial passwordprecision primary procedure processprocesslist privileges read realreferences reload regexp renamereplace restrict returns revokerlike row rows secondselect set show shutdownsmallint soname sql_big_tables sql_big_selectssql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_joinstarting status string tabletables temporary terminated textthen time timestamp tinyblobtinytext tinyint trailing totype use using uniqueunlock unsigned update usagevalues varchar variables varyingvarbinary with write whenwhere year year_month zerofill查看全文常用SQL命令和ASP编程在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL 语句,如下:SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表where 字段名=字段值order by 字段名[desc]"sql="select * from 数据表where 字段名like %字段值% order by 字段名[desc]"sql="select top 10 * from 数据表where 字段名order by 字段名[desc]"sql="select * from 数据表where 字段名in (值1,值2,值3)"sql="select * from 数据表where 字段名between 值1 and 值2"(2) 更新数据记录:l e x ysql="update 数据表set 字段名=字段值where 条件表达式"sql="update 数据表set 字段1=值1,字段2=值2 ……字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名from 数据表where 条件表达式"set rs=conn.excute(sql)用rs("别名") 获取统的计值,其它函数运用同上。
常用SQL语句一、使用基本查询应用程序与数据库的交互操作是通过sql语句完成的,sql语句具有结构简单、功能强大的有点。
在所有sql语句中,select语句的语法是最复杂的,功能也是最强大的。
在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家演示如何使用select 语句,select语句在软件编程中非常的有用,希望大家好好的掌握1.简单查询语句①确定表结构当检索表数据时,既可以检索所有列的数据,也可以检索特定列的数据,所以必须要清楚表的结构。
通过使用SQL*Plus的describe全职(可以简写为DESC),可以显示表结构。
例如,desc emp ,控制页面会显示emp的表结构数据,包括:属性名,是否为空,类型,如:SQL> desc emp;名称是否为空? 类型说明----------------EMPNO NOT NULL NUMBER(4) 员工号ENAME V ARCHAR2(10) 员工姓名JOB VARCHAR2(9) 工作(职位)MGR NUMBER(4) 负责人的编号HIREDA TE DATE 入职时间SAL NUMBER(7,2) 薪水COMM NUMBER(7,2) 提成DEPTNO NUMBER(2) 所在部门号SQL> desc dept;名称是否为空? 类型说明----------------------------------------------------------------- -------- --------------DEPTNO NOT NULL NUMBER(2) 部门号DNAME V ARCHAR2(14) 部门姓名LOC V ARCHAR2(13) 部门所在地②检索所有列Select *from emp;③检索特定列Select ename,job from emp④检索日期列Select ename,hiredate from empSelect ename,to_char(hiredate,'YYYY-MM-DD') from emp⑤如何取消重复行select job from empSelect distinct job from emp⑥使用算术表达式Select ename,sal from empSelect ename,sal*12 from emp⑦使用列的别名Select ename,sal*12 from empSelect enamas '姓名',sal*12 as '年收入' from emp⑧如何处理null值Select ename,sal,comm,sal+comm from empSelect ename,sal,comm,sal+nvl(comm,0) as '月收入' from empSelect ename,nvl2(comm,sal+comm,sal) from emp如果comm不是null,则返回sal+comm,如果comm是null,则返回sal,这三个的数据类型必须一至。
1.SQL命令和常用语句大全【经典】学习SQL应知道的动态SQL语句基本语法1 、普通SQL语句可以用Exec执行eg: Select * from tableNameExec('select * from tableName')Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N2、字段名,表名,数据库名之类作为变量时,必须用动态SQLeg:declare @fname varchar(20)set @fname = 'FiledName'Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意加号前后的单引号的边上加空格当然将字符串改成变量的形式也可declare @fname varchar(20)set @fname = 'FiledName' --设置字段名declare @s varchar(1000)set @s = 'select ' + @fname + ' from tableName'Exec(@s) -- 成功exec sp_executesql @s -- 此句会报错declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)set @s = 'select ' + @fname + ' from tableName'Exec(@s) -- 成功exec sp_executesql @s -- 此句正确3、输出参数declare @num int,@sqls nvarchar(4000)set @sqls='select count(*) from tableName'exec(@sqls)--如何将exec执行结果放入变量中?declare @num int,@sqls nvarchar(4000)set @sqls='select @a=count(*) from tableName 'exec sp_executesql @sqls,N'@a int output',@num output select @num此外,如果想要在SQL语句字符串中使用单引号'' 可以使用''''--语句功能--数据操作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 --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen 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 < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ‘01:02:03‘select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ‘23:08:00‘select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator valueex:(宿主)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 < 1000and stockindex = 24not stock*** = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name select stockname , "stocknumber" = count(*) from table_name group by stockname --------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null 表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的def ault约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--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(numeric_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() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--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) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回ex pression1 的值sql中的保留字action add aggregate allalter after and asasc avg avg_row_length auto_incrementbetween bigint bit binaryblob bool both bycascade case char characterchange check checksum columncolumns comment constraint createcross current_date current_time current_timestampdata database databases datedatetime day day_hour day_minuteday_second dayofmonth dayofweek dayofyeardec decimal default delayeddelay_key_write delete desc describedistinct distinctrow double dropend else escape escapedenclosed enum explain existsfields file first floatfloat4 float8 flush foreignfrom for full functionglobal grant grants grouphaving heap high_priority hourhour_minute hour_second hosts identifiedignore in index infileinner insert insert_id intinteger interval int1 int2int3 int4 int8 intoif is isam joinkey keys kill last_insert_idleading left length likelines limit load locallock logs long longbloblongtext low_priority max max_rowsmatch mediumblob mediumtext mediumintmiddleint min_rows minute minute_secondmodify month monthname myisamnatural numeric no notnull on optimize optionoptionally or order outeroutfile pack_keys partial passwordprecision primary procedure processprocesslist privileges read realreferences reload regexp renamereplace restrict returns revokerlike row rows secondselect set show shutdownsmallint soname sql_big_tables sql_big_selectssql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_joinstarting status string tabletables temporary terminated textthen time timestamp tinyblobtinytext tinyint trailing totype use using uniqueunlock unsigned update usagevalues varchar variables varyingvarbinary with write whenwhere year year_month zerofill常用SQL命令和ASP编程在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下:SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表where 字段名=字段值order by 字段名[desc]"sql="select * from 数据表where 字段名like %字段值% order by 字段名[desc]"sql="select top 10 * from 数据表where 字段名order by 字段名[desc]"sql="select * from 数据表where 字段名in (值1,值2,值3)"sql="select * from 数据表where 字段名between 值1 and 值2"(2) 更新数据记录:sql="update 数据表set 字段名=字段值where 条件表达式"sql="update 数据表set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名from 数据表where 条件表达式"set rs=conn.excute(sql)用rs("别名") 获取统的计值,其它函数运用同上。
sql基础语句汇总SQL(StructuredQueryLanguage)是一种关系型数据库管理系统(RDBMS)所使用的语言,可以用来操作数据库和运行各种SQL查询,以获取所需的数据,实现一定的功能。
SQL语句的基本结构有六类:数据定义语句(DDL)、数据操纵语言(DML)、数据查询语句(DQL)、数据控制语句(DCL)、事务控制语句(TCL)和系统控制语句(SCL)。
在数据库操作过程中,最常使用的是DML语句,其具体内容如下:一、数据定义语句(DDL)DDL语句用于定义数据库中对象的结构,常用的类型有建库(create database)、建表(create table)、建索引(create index)、修改表(alter table)和删除表(drop table)等等。
1.库:CREATE DATABASE [database name]2.表:CREATE TABLE [table name] (field name 1datatype(length), field name 2 datatype(length), ...)3. 修改表:ALTER TABLE [table name] ADD [column name] datatype(length)4.除表:DROP TABLE [table name]二、数据操纵语言(DML)DML语句用于操作数据库中的数据,常用的有查询(select)、插入(insert)、更新(update)和删除(delete)四种类型。
1.询:SELECT [columns] FROM [table name] WHERE [condition]2.入:INSERT INTO [table name] ([columns], [values])3.新:UPDATE [table name] SET [column = new value] WHERE [condition]4.除:DELETE FROM [table name] WHERE [condition]三、数据查询语句(DQL)DQL语句用于查询数据库中指定类型的对象,常用的有SELECT语句和SUM(SUM)函数,SELECT语句用于从数据库中选择所需的数据,而SUM函数用于对给定的字段进行求和操作。
sql常用语句最近几年,随着越来越多的互联网公司的发展,数据库的重要性也在不断增加。
传统的关系型数据库,使得我们能够处理并组织大量的数据,这就引出了SQL语言的出现。
SQL(Structured Query Language,结构化查询语言)是一种特殊的编程语言,它被广泛用于访问和处理数据库,特别是关系型数据库。
SQL语句可以用来定义、查询、更新和删除数据库中的数据。
它包含一系列的命令,它们经常用来创建、修改、检索数据库中的数据,也可以用来充实数据库中的内容,建立关系,了解特定表的细节,查找满足某些条件的数据等。
SQL常用语句用于访问和操作数据库中的内容,且被广泛应用于各种数据库系统中,例如Microsoft SQL Server,Oracle,MySQL,PostgreSQL等。
常用的SQL语句涵盖了数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL),它们的作用分别是:1.据定义语言(DDL):用于定义数据库对象,如表、视图和索引,常见的DDL语句有:CREATE、ALTER、DROP和TRUNCATE等;2.据操纵语言(DML):用于操作数据库中的数据,常见的DML语句有:SELECT、INSERT、UPDATE、DELETE等;3.据控制语言(DCL):用于授权、管理数据库的权限和安全,常见的DCL语句有:GRANT、REVOKE等。
此外,还有几种特定的SQL语句,他们主要用于对数据库的优化,如:数据库的创建、表的创建、VIEW的创建、触发器的创建、存储过程的创建等。
以上只是SQL常用语句的基本知识,但是在实际的工作中,有必要更深入地了解SQL语句,熟悉它们的用法及其细节,以获得最佳的效率和准确性。
下面就介绍几条最常用的SQL语句,这些语句在日常SQL开发工作中很有用。
1. SELECT语句:SELECT语句用于提取满足特定条件的数据记录,其基本格式如下:SELECT段1,段2,FROM名WHERE件1 AND件2;通过SELECT语句,我们能够检索特定表中满足条件的记录,例如,检索名字以“J”或“K”开头的所有学生信息,可以写成:SELECT *FROM生表WHERE名 LIKE J% OR名 LIKE K%2. INSERT语句:INSERT语句用于插入数据记录到数据表中,其基本格式如下:INSERT INTO名VALUES(字段1,段2,段n);INSERT语句可以指定字段名称来插入数据,如:INSERT INTO名(字段1,段2,段n)VALUES(值1,2,n);例如,可以用INSERT插入一条新的记录,如:INSERT INTO生表VALUES(001 Lily 18 女湖南3. UPDATE语句:UPDATE语句用于更新数据库中的记录,其基本格式如下:UPDATE名SET段1 =值1,段2 =值2, WHERE件;例如,我们可以用UPDATE语句将某个学生的年龄改为20岁: UPDATE生表SET龄 = 20WHERE名 = Lily4. DELETE语句:DELETE语句用于删除数据库中的记录,其基本格式如下:DELETE FROM名WHERE件;例如,我们可以用DELETE语句删除名字为“Lily”的学生记录: DELETE FROM生表WHERE名 = Lily以上就是最常用的SQL语句,这些语句经常用于访问和操作数据库中的内容,是数据库开发的基本知识。
结构化文本ST编程,西门子PLC编程语言中叫SCL ,其它任何PLC控制器编程语言还是叫结构化编程ST。
西门子SCL语言第一章IF:条件执行IF 分支IF <条件> THEN <指令>END_IF;如果满足该条件,则将执行THEN 后编写的指令。
如果不满足该条件,则程序将从END_IF 后的下一条指令开始继续执行。
IF 和ELSE 分支IF <条件> THEN <指令1>ELSE <指令0>;END_IF;如果满足该条件,则将执行THEN 后编写的指令。
如果不满足该条件,则将执行ELSE 后编写的指令。
程序将从END_IF 后的下一条指令开始继续执行。
IF、ELSIF 和ELSE 分支IF <条件1> THEN <指令1>ELSIF <条件2> THEN <指令2>ELSE <指令0>;END_IF;如果满足第一个条件(<条件1>),则将执行THEN 后的指令(<指令1>)。
执行这些指令后,程序将从END_IF 后继续执行。
如果不满足第一个条件,则将检查第二个条件(<条件2>)。
如果满足第二个条件(<条件2>),则将执行THEN 后的指令(<指令2>)。
执行这些指令后,程序将从END_IF 后继续执行。
如果不满足任何条件,则先执行ELSE 后的指令(<指令0>),再执行END_IF 后的程序部分。
在IF 指令内可以嵌套任意多个ELSIF 和THEN 组合。
可以选择对ELSE 分支进行编程。
IF "Tag_1" = 1THEN "Tag_Value" := 10;ELSIF "Tag_2" = 1THEN "Tag_Value" := 20;ELSIF "Tag_3" = 1THEN "Tag_Value" := 30;ELSE "Tag_Value" := 0;END_IF;IF 案例如下:FUNCTION_BLOCK "IF"TITLE = 'IF Statement'//IF ... THEN ... ELSE ... END_IFVAR_INPUTStart : BOOL;Manual : BOOL;ActVal : INT;END_VARVARManual_FM : BOOL;over : BOOL;under : BOOL;equal_to : BOOL;Setpoint_man : INT := 1000;Setpoint : INT;Deviation : INT;y_index : INT := 12;Total : INT;END_VARVAR_TEMP i : INT; END_VARBEGIN//Simple IF branchIF Start THEN Setpoint := 1200; END_IF; IF Manual THENSetpoint := Setpoint_man;Q4.0 := TRUE;END_IF;//Branch with THEN...ELSEIF ActVal > SetpointTHEN Deviation := ActVal - Setpoint;ELSE Deviation := Setpoint - ActVal; END_IF;//Branch with ELSIFIF ActVal > SetpointTHEN over := TRUE;under := FALSE;equal_to := FALSE;ELSIF ActVal < SetpointTHEN under := TRUE;over := FALSE;equal_to := FALSE;ELSE equal_to := TRUE;over := FALSE;under := FALSE;END_IF;//Edge evalaution (rising edge)IF Manual AND NOT Manual_FMTHEN (*rising edge*);END_IF;Manual_FM := Manual; //Correct edge memory bit//Counting bits set to "1"Total := 0;FOR i:=1 TO 32 DOIF M[y_index,i] = TRUETHEN Total := Total + 1;END_IF;END_FOR;END_FUNCTION_BLOCK第二章CASE:创建多路分支说明:使用“创建多路分支”指令,可以根据数字表达式的值执行多个指令序列中的一个。
西门子ABB等PLC专用经典SQL语句大全一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键: Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxna me on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc]总数:select count as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table111、说明:几个高级查询运算词A:UNION 运算符UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。
当 ALL 随 UNION 一起使用时(即 UNION AL L),不消除重复行。
两种情况下,派生表的每一行不是来自 TABLE1 就是来自TABLE2。
B: EXCEPT 运算符EXCEPT运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。
当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符INTERSECT运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
当ALL随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接A、left (outer) join:左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.cB:right (outer) join:右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full/cross (outer) join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:Group by:一张表,一旦分组完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据在selecte统计函数中的字段,不能和普通的字段放在一起;13、对数据库进行操作:分离数据库: sp_detach_db;附加数据库:sp_attach_db 后接表明,附加需要完整的路径名14.如何修改数据库的名称:sp_renamedb 'old_name', 'new_name'二、提升1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1(仅用于SQlServer)法二:select top 0 * into b from a2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..4、说明:子查询(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)5、说明:显示文章、提交人和最后回复时间select a.title,ername,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、说明:外连接查询(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b. c7、说明:在线视图查询(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1;8、说明:between的用法,between限制查询数据范围时包括了边界值,not bet ween不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值29、说明:in 的使用方法select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists ( select * from table2 where tabl e1.field1=table2.field1 )11、说明:四表联查问题:select * from a left inner join b on a.a=b.b right inner join c on a. a=c.c inner join d on a.a=d.d where .....12、说明:日程安排提前五分钟提醒SQL: select * from 日程安排 where datediff('minute',f开始时间,getdat e())>513、说明:一条sql 语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段from 表名order by 排序字段desc) a,表名 b where b.主键字段= a.主键字段order by a.排序字段具体实现:关于数据库分页:declare @start int,@end int@sql nvarchar(600)set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’exec sp_executesql @sql注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。
Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。
因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引)14、说明:前10条记录select top 10 * form table1 where 范围15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)16、说明:包括所有在TableA中但不在TableB和TableC中的行并消除所有重复行而派生出一个结果表(select a from tableA ) except (select a from tableB) except (select a from tableC)17、说明:随机取出10条数据select top 10 * from tablename order by newid()18、说明:随机选择记录select newid()19、说明:删除重复记录1),delete from tablename where id not in (select max(id) from tablena me group by col1,col2,...)2),select distinct * into temp from tablenamedelete from tablenameinsert into tablename select * from temp评价:这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段alter table tablename--添加一个自增列add column_b int identity(1,1)delete from tablename where column_b not in(select max(column_b) from tablename group by column1,column2,...) alter table tablename drop column column_b20、说明:列出数据库里所有的表名select name from sysobjects where type='U' // U代表用户21、说明:列出表里的所有的列名select name from syscolumns where id=object_id('TableName')22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。