orcle 数据库名是orcl 有system scott hr 等多个用户,其中system为管理员账户,每个账户都有各自不同的table. oracle 会自动开启事务
常用语法总结:
oracle 常用的命令
1.host cls 清除屏幕;
2. spool D:\abc.text 在D盘创建一个text文件
spool off 结束储存
3. / 重复上次命令
4. -- 代表注释
5.ed 用于修改以保存的sql语句
oracle 中的数据类型
char varchar2 number date
各种小知识
1. 常用关键字
create table tname (colname type 约束);创建表
create table tabname1 as select * from tabname2; 复制一张表(包括数据)
create table tabname1 as select * from tabname2 where 1=2;复制表结构
select * from tab; 查看当前账户所有的表
desc tabname;查看表结构
show user; 显示当前用户
show linesize 显示行宽
et linesize 150 设置行宽
col col_mgr for a10(9999); 设置列宽10个字符的宽度(4个数字的宽度)
set pagesize 20; 设置一页行数
2. 约束
not null, nuique , primary key, foreign key, check(条件表达式)
例:age number check(age>0 and age <120);
3.伪表
dual 为了语句完整性而提供
select sysdate from dual;
4.伪列
rownum 在查询结果中加入的一列从一开始的序列号
可以用于orale 中的分页查询 rownum只能用于小于表达式 不支持(between and)
select * from (select rownum r,t,*fom tabname t where rownum<currpage*pagecount)
where r>(currpage-1)*pagecount;
rowid 基于64位编码的18个字符来唯一标识一条记录的物理位置的一个ID,类似于JAVA 中的哈希码,不支持增删改操作
5.外连接
(+)代表此字段所在的表为子表
select * from emp,dept where emp.deptno=dept,deptno(+);
6.||连接符
select '姓名:'||name||'工作'||job from tabname;
可将结果显示为字符串
7.常用函数
sysdate 当前日期
lower() 变小写 upper()变大写 initcap() 首字母大写()
substr(str,num,count) 截取字符 从num开始长度为count num和count 可省略
length() 字符数量
lpad(str,num,str1) str左边填充num个str1 rpad为右边
trim(char from str) 去掉str中的char
replace(str,'oldchar','newchar') 将字符str中的oldchar替换为newchar
round(num,length)四舍五入 length 为小数位数 负数(-1代表四舍五入舍掉个位数)
trunc(num,length)舍去 length 为小数位数
ceil()向上取整floor()向下取整
nvl(a,0) 如果a的值为空 则赋值为0
nvl2(a,b,default) 等同于 a==null?default:b
nullif(a,b)如果a==b返回null否则返回a
coalesce(列1,列2,列3) 从左到右返回第一个不为null的值
8.关于日期
日期格式
yyyy || 2011
year || twenty ninteen
' MM || 04
MONTH || 4月
DY || 星期一
DAY || 星期一
DD || 02
完整日期格式 ‘fm yyyy-mm-dd hh24:mi:ss’ 其中fm 可以去掉月和天前面的0 24代表24小时制
sysdate支持=-*/运算
months_between(date1,date2) 计算相差几月
add_months(date,num) date 添加num月
last_day(sysdate) 当前月份最后一天
next_day(sysdate,num(str)) 下一个周几 num只能为1-7 只能为星期一到星期日
9.类型转换函数
to_date(string,'yyyy') 转化字符串为日期格式
to_number(char) 将一段数字字符转化为number格式
to_char(num/date,'fromat') 将日期转化为字符串
select to_char(sysdate,’fmyyyy-mm-dd hh24:mi:ss“ today is “dd') from dual;
结果: 2019-8-28 15:58:34 today is 28 format中可拼接字符串
select to_char(88.8,'L9,999.99') from dual;
结果: ¥88.88
10.占位符:&
select * from tabnaem where name = '&name' 可从键盘接收name的值