sql基础

来源:互联网 发布:mac装了双系统怎么切换 编辑:程序博客网 时间:2024/06/05 12:03

oracle数据库的数据类型

NUMBER(p,s):p代表数据的总位数(1-38),s表示小数点后的位数,s可不要,表示整数。
CHAR(N):N代表字节数,最长2000字节,固定长度的字符类型,可以写成CHAR(N CHAR):表示2*N个字节,不指定N时,默认1。
VARCHAR2(N):N表示最多可占用的字节,最长4000字节,变长的字符类型,可以写成VARCHAR2(N CHAR):表示2*N个字节,必须指定N值。
LONG:varchar2的加长版,对多可存2GB字符串,变长字符串类型,一个表只允许一个long型,不能为主键,索引和查询条件中。
CLOB:存变长或定长的字符串,可存4GB字符串,建议使用。

DATE:格式(DD-MON-RR),长度时7个字节:依次表示:世纪+100、年、月、天、时、分、秒
timestamp:可保存日期和时间,也可保存小数,可精确到ns。保存为7个字节时余date相同,11个字节时:8-11字节表示纳秒。
sysdate:当前系统时间。默认格式:DD-MON-RR
systimestamp:可精确到ns。

函数:

to_date(char [,fmt [,language]]):将char 转换为formt格式的日期类型,language指定日期类型
to_char(date [,fmt [,language]]):将date转换为formt格式的字符串,language指定日期类型
格式语言:
YY(2位年份)、YYYY(4位年份)、MM(2位月份)、
MON(简拼月份)、MONTH(全拼月份)、
DD(2位天数)、DY(周几简拼)、DAY(周几全拼)、
HH24(24小时格式)、HH12(12小时格式)、
MI(分)、
SS(秒)
last_day:所在月的最后一天的,格式------last_day(date)
add_months:加上n月后日期,格式------add_months(date, n),若n为负,为减
months_between:两个日期间间隔多少月,格式------months_between(date1, date2)
next_day:下一个周几的日期,格式------next_day(date, char)
least、greatest:获取比较后的最小,最大值,格式------ least(expr1 [,expr2 ....])、greatest(expr1 [,expr2 ....])
extract:从日期中获取指定的数据,如年、月、日,格式------extract(dateType from date)
datetype:可为YEAR、HOUR等

concat:将字符串连接起来,格式------concat(ch1,ch2),可使用 “||” 连接操作符
length:获得字符串的长度,格式------length(str1)
upper、lower、initcap:转为大写、小写、首字母大写,格式------upper(str)、lower(str)、initcap(str),如果传null,返回还是null
TRIM、LTRIM、RTRIM:截掉子串,格式------trim(c2 from c1)、ltrim(c1, c2)、rtrim(c1,c2),如果没有c2,则去掉c1左右两边的空格
LPAD、RPAD:在ch1左端,或右端补足n位ch2,格式------LPAD(ch1,n,ch2)、RPAD(ch1,n,ch2)
substr:获取子串,格式------substr(char, [m,[n]]):从m开始查找char,获取n个字符。m为负从尾部开始
instr:返回字符串位置,格式------instr(char1,char2,[m,[n]] ):从m开始搜索char1,直到出现char2第n次的位置,并返回该位置下标
nvl:将NULL转为非NULL值,格式------nvl(expr1,expr2):expr1位NULL则去expr2值。
nvl2:将NULL转为非NULL值,格式------nvl2(expr1,expr2,expr3):expr1位NULL,返回expr3,不为NULL,返回expr2。


round:四舍五入,格式------round(m [,n]),n必须为整数,n表示小数点第几位,如果为负,则为小数点前n为,如果为0,表示整数,无n缺省为0。
trunc:截取,格式------trunc(m [,n]),n含义同上。
mod:求余,格式------mod(m,n),获取m除以n的余数,n为0,返回m。
ceil、floor:获取最大、小整数。格式------ceil(n)、floor(n)。

DDL(数据定义语言):

create:创建表语句,格式-----create table [schema.]tableName( colName type [default 默认值]);
drop:可删除表,格式-----drop tableName
desc:查看表结构,格式-----desc tableName
default:设置默认值,格式-----default 值1
not null:约束其值不为null
rename:修改表明,格式-----rename  oldName  to  newName
alert:用于修改表结构
如:增加列:alter table tableName add (colName type [default 默认值] ,......)——可同时增加多列
删除列:alter table tableName drop (colName)
修改列:alter table tableName modify (colName type [default 默认值],....)——可同时修改多列

DML(数据操作语言):

注意DML需要commit才会生效(即永久保存)

insert:向表中插入相应数据,格式------insert into talbeName [col1,col2,col3......] value(value1,[value2,value3]....);

update:更新表中的数据,格式------update tableName set colName1=值 [,colName2=值2,...]  [where condition]

delete:删除表中的数据,格式------delete [from] tableName [where condition]

truncate:删除全表的数据,并且是立即生效,无法回退,格式------truncate tableName