SQL教程随看随记(三)

来源:互联网 发布:伊戈达拉数据 编辑:程序博客网 时间:2024/05/16 23:53

使用INSERT...VALUES添加记录
基本格式:INSERT INTO Tablename [(column1name,[column2name,....])] VALUES (value1,[value2,...])

使用INSERT...SELECT语句添加记录:1、指定添加的表Tablename后所包含的列的数目必须与SELECT语句中返回的列的数目相同。2、指定添加的表Tablename后所包含的数据类型必须与SELECT语句中返回的列的数据类型对象相同或系统可以自动转换。3、SELECT语句选择数据时,不能从正在添加数据的表中选择数据。
基本格式:INSERT INTO Tablename1[(column1name,[column2name,....])]  SELECT columnlist FROM Tablelist WHERE conditions

使用UPDATE修改记录
基本格式:UPDATE Tablename SET column1name=value1,[column2name=value2,...] WHERE [conditions]
例:UPDATE Project SET budget = budget/2   (将条记录的budget值变为原来的1/2)

使用DELETE删除记录
基本格式:DELETE FROM Tablename [WHERE conditions]

使用TRUNCATE或TRUNC删除表中所有记录:会忽略触发器,一次性删除所有记录,速度比DELETE快
基本格式:TRUNCATE TABLE Tablename

使用SELECT进行数据选择
基本格式:SELECT [ALL|DISTINCT] select_list FROM table_list/view_list [WHERE conditions] [GROUP BY group_list] [HAVING conditions] [ORDER BY order_list]
ALL表示显示所有检索到的数据,包括重复数据。DISTINCT表示不再结果中显示重复数据。
GROUP BY用于对检索的数据进行分组,HAVING用于限制组。
ORDER BY用于对检索到的数据进行排序。select_list中的列都必须出现在group_list中。

 表达式的使用
仅使用使用数字和字符串,列与常量的结合,同时使用多个列,别名的使用
例:Select 'Details of Department' dname,dnumber,1+1 as num,num1=dnumber+3,dnumber+3-dnumber
From Department
results
'Details of Department'    dname     dnumber     num(1+1)    num1(dnumber+3)      dnumber+3-dnumber
---------------------------------------------------------------------------------------------------------------------------------------------
'Details of Department'    开发部      1                    2                         3                                        3
'Details of Department'    市场部      2                    2                         4                                        3

指定要检索的表,表的别名:当指定了表的别名后,对列进行表名限定时需要使用别名
例:Select Department.dnumber,Department.dname From Department
        Select D.dnumber,D.dname From Department D

WHERE子句
**较运算符(数字的比较,字符串的比较,时间的比较)
**辑运算符及其优先级(+,->NOT>AND>OR)
**N子句,基本格式:SELECT select_list FROM table_list/view_list WHERE column [NOT] IN (value_list)
例:Select id,pswd From test Where id-3 in (1,2,5,6,7)
**ETWEEN子句,基本格式:SELECT select_list FROM table_list/view_list WHERE column [NOT] BETWEEN lower_value AND ipper_value
**IKE子句,匹配字符串,基本格式:SELECT select_list FROM table_list/view_list WHERE column [NOT] LIKE 'pattern' [ESCAPE escape_char]
pattern中使用通配字符来指定字符串的匹配模式,匹配模式需要包含在引号中。
当模式中需要使用通配符的原义时,使用可选项ESCAPE,并在excape_char中指定使用的转义符。
通配符:'%'表示匹配0个或多个任意字符。'_'匹配单个任意字符。
ESCAPE的例子:WHERE column LIKE '%12/%%' EXCAPE '/'    该子句的匹配模式为12%,因为/被定义成转义字符,所以/%被正常解析。
LIKE子句会影响查询性能,所以在明确知道字符个数时,应该使用'_',而不使用'%'。
**IS NULL,在标准SQL中空值既不大于任何数,也不小于任何数,但在SQ SLSERVER中空值小于所有非空值,在Oracle中空值大于所有非空值。该关键字用于判断空值。
基本格式:SELECT select_list FROM table_list/view_list WHERE column IS [NOT] NULL
**一些有用的函数:TRIM(string)消除字符串的空格;LOWER(string),UPPER(string)字符串大小写函数,这两个函数不会改变原有值;LENGTH(string)字符串长度函数;CONVERT(data_type,expression,[,style]),通用转换函数,TO_CHAR()将其他类型的数据转成字符串,TO_NUMBER()将其他类新的数据转成数字;聚集函数;函数嵌套。

原创粉丝点击