基本
在oracle中表名字段名尽量用大写
sqlplus从cmd进入oracle数据库
system/password权限很大,一般创建一个用户来使用
conn name/password用户登陆
oracle语句以;结尾
select语句必须带有表,有一个默认虚拟表dual;
在命令行关闭时需要commit才会提交
如果执行了DDL语句会自动提交(提交所有)
创建用户
create user name identified by password;
用户创建后需要权限才能登陆且做相应操作
select user from dual;
获取当前用户名
用户授权
grant resource,connect to name;
CONNECT角色: --是授予最终用户的典型权利,最基本的权力,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作。
RESOURCE角色: --是授予开发人员的,能在自己的方案中创建表、序列、视图等。
查询表
select table_name from user_tables
数据类型
1.数值
都可以用NUMBER(m,n)来定义,m代表总长度,n代表小数长度。当小数位过多可以定义,四舍五入。整数位数为(m-n),过多无法保存。
m,n参数都是可选项。
2.时间
DATE年月日时分秒(默认显示不含时分秒,to_char(name,‘yyyy-mm-dd hh:mi:ss’))格式化时间
获取当前时间sysdate
3.字符
中文占用三个长度
char(m),定长字符串(指定长度)
varchar(m),变长字符串(最大长度),不保证兼容性,不建议使用
varchar2(m),同varchar,建议使用
中文占用一个长度
nchar(m)同char,存储的内容的长度根据字符集确定
nvarchar2(m)同varchar2,存储的内容的长度根据字符集确定
如果需要存中文时使用nvarchar2
常用函数
聚合函数
count,avg,min,max,sum
字符串函数
ascii©–返回字符对应的ascii码
chr(i)–根据ascii码返回对应的字符
concat(s1,s2)–连接字符串
initcap(s)–首字母大写
length(s)–长度
lower(s)–全部小写
upper(s)–全部大写
rpad(s,length,c)–截取给定字符串的给定长度,如果长度不够,在右边填充给定字符
lpad(s,length,c)–截取给定字符串的给定长度,如果长度不够,在左边填充给定字符
trim(s)–删除指定字符串两边的空格
ltrim(s)–删除指定字符串左边的空格
rtrim(s)–删除指定字符串右边的空格
substr(s,start,length)–截取字符串(以1开始)
数学函数
abs(i)–绝对值
mod(i1,i2)–取余
power(i1,i2)–次方
sqrt(i)–开平方
ceil(i)–向上进位
floor(i)–向下进位
round(i)–四舍五入
日期函数
sysdate–当前日期
last_day(date)-- 获取给定日期当月的最后一天
MONTHS_BETWEEN(日期1,日期2)–获取两个日期之间相差的月数(日期1-日期2)
ADD_MONTHS(日期,数字) – 对给定日期增加(/减少)月数
日期 + 数字 – 对给定日期增加(/减少)天数
TO_DATE(字符串, pattern) – 把字符串转成日期
– pattern (yyyy-mm-dd hh24:mi:ss)
– java-oracle: MM-mm, mm-mi ,HH-hh24, hh-hh
TO_CHAR(日期, pattern) – 把日期转成字符串
如果两个日期相减 = 相差的天数(带小数)
数字函数
TO_NUMBER(字符串) – 字符串转数字
TO_CHAR(数字) – 数字转字符串
decode函数
DECODE(字段名, 值1, 字符串1,值2,字符串2,…,其他字符串)
相当于switch case