资源描述:
《Oracle10g学习笔记(三)——SQL语言基础1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、content:SQL语言概述、分类各种语言常见语句写法常用查询语句的使用常用系统函数及其应用分组语句模糊查询表的连接子查询结构化查询语言是学好任何一个关系型数据库的前提语言分类数据定义语言DDLCREATE创建表创建数据库创建函数创建过程CREATETABLEabc(avarchar2(10),bchar(10));ALTER修改表的结构ALTERTABLEabcADDcnumber;DROP删除表删除字段删除数据库DROPTABLEabc;删除一个字段ALTERTABLEabcDROPCOLUMNc;数据控制语言DCLGRANT把scott用
2、户的dept表授权给tt用户GRANTSELECTONdeptTOtt;SELECT*FROMscott.dept;REVOKE解除授权REVOKESELECTONdeptFROMtt;数据操纵语言DMLSELECTSELECT*FROMdept;INSERTINSERTINTOabc(a,b)VALUES('ABC','XY');赋值个数和字段个数必须相等,且对应数据类型要相同DELETE清空表的所有数据DELETEFROMabcDELETEFROMabcWHEREa='abc';UPDATEUPDATEabcSETb='ttt';UPDATE
3、abcSETb='yyy'WHEREa='abc';常用的系统函数1、字符length,ltrim,replace,rtrim,substr,trim查看ABCDEFG包含几个字符SELECTLENGTH('ABCDEFG')FROMdual;查看ABCDEF汉字包含几个字符SELECTLENGTH('ABCDEF汉字')FROMdual;查看字节数SELECTLENGTHB('ABCDEF汉字')FROMdual;去掉左边空格SELECTLTRIM('ABCD')FROMdual;去掉右边空格字符(空字符串)SELECTRTRIM('ABCD'
4、)FROMdual;去掉左右空格字符SELECTTRIM('ABCD ')FROMdual;可变长字段varchar和定长字段char区别:可变长字段可以节省未用到的空间定长字段占用字段空间,未用到的使用空格填充,取定长字段时最好结合使用TRIM函数定义字符型字段尽可能定义成可变长字段,避免不必要的存储,有利于数据的正确查询截取字符串SELECTSUBSTR('abcdefgh',2,3)FROMdual;左取3个SELECTSUBSTR('abcdefgh',1,3)FROMdual;右取3个SELECTSUBSTR('abcdefgh',L
5、ENGTH('abcdefgh'-3+1,3)FROMdual2、日期sysdate,current_date,next_day查看系统时间SELECTsysdateFROMdual;设定时间格式ALTERSESSIONSETNLS_DATE_FORMAT='dd-mon-yyyyhh:mi:ss';SELECTCURRENT_DATEFROMdual;查看某日期后的星期几是几号SELECTNEXT_DAY(sysdate,'星期三')FROMdual;3、转换to_char,to_date,to_number将日期转换成字符SELECTsysd
6、ateFROMdual;SELECTTO_CHAR(sysdate,'yyyy-mm-ddhh24:mi:ss')FROMdual;将字符转换成日期SELECTTO_DATE('12-3月-08)FROMdual;将字符转换成数字SELECTTO_NUMBER('22')FROMdual;4、聚集函数sum,svg,min,max,count,decode,nvl求和SELECTsum(price)FROMbooks;求平均值SELECTavg(price)FROMbooks;查看某个字段的行数,当某个字段为空值时将不被统计SELECTCOUNT
7、(price)FROMbooks;查看表记录行数SELECTCOUNT(*)FROMbooks;聚集函数多为条件但不能与where语句结合SELECT*FROMbooksWHEREprice>20;SELECTuserFROMdual;decode函数为同值字段计数SELECTSUM(DECODE(SEX,'男',1,0))男人数,SUM(DECODE(SEX,'女',1,0))女人数FROMmember;空值处理为空值做标识使用函数处理空值SELECTa1,nvl(a2,'未输入')a2FROMmember;SELECT*FROMaaWHERE
8、a2ISNULL;SELECT*FROMaaWHEREa2ISNOTNULL;升序排列SELECT*FROMaaORDERBYa1ASC