oracle

oracle
1.创建一个新用户:指定了密码
CREATE USER dba_name IDENTIFIED BY password;
2.赋予权限
GRANT CONNECT, RESOURCE, DBA TO dba_name;
3.登录账号
CONNECT dba_name@orcl;
4.创建数据库
Create DATABASE database-name
5.删除数据库
drop database dbname

基本概念

实例 = 后台进程+内存结构
数据库 = 数据文件+控制文件

3/17
select disctinct column from table group by having * order by column desc(默认升序)
语法 通常每个字句占一行,用缩进增加可读性,字符串大小写敏感,可多行,关键字不能缩写或者跨行

注意:

如果列名包含大小写或者空格需要用""
优先级
括号
算数运算符 /
连接运算符||
比较运算法
is null like in
between
not
and
or
例题:链接:https://blog.csdn.net/a18602320276/article/details/75126008
获取当前账户的信息

select * from tabs;

like
查询雇员姓名中第三个字母为”A”的雇员信息

select * from emp where ename like '__A%';

disctinct 去除重复行
(!)=
(not) in/ (not) between and
is (not) null(oracle默认将null值作为最大值,不可以用=)
|| 例如

select  '编号:' || empno || '-姓名:' || ename || '-工作:' || job as 详情 from emp;

日期 ``

如果中间有空格或者关键字用"",否则’’
正则表达式 https://blog.csdn.net/wulex/article/details/82585755
请查询员工名包含a或e的员工名:

select last_name from employees where regexp_like( last_name ,'[ae]') ;

例题
请查询员工名和工作时间(换算成月并取整),并按工作时间排降序
select last_name, trunc(months_between(sysdate,hire_date),0) from employees order by trunc(months_between(sysdate,hire_date),0) desc;

字符串

select chr(2) from dual;
select concat(a,b) from stu;
select initcap(name) from stu;
select lower(e.ename) from emp e;
select lpad(e.ename,20,‘0’) from emp e;
select ltrim(e.ename,‘s’) ,e.ename from emp e;
select replace(e.ename,‘H’,‘h’) …
select substring(ename,0,1)…

数字

abs
ceil
floor
power(value,exponent)
mod(value,divisor)
trunc(number,[decimals]) 取整,默认值为0

日期

add_months(date,count)
last_day(date)
months_between(date1,date2)
sysdate
current_timestamp
round(date,‘day’)
trunc(date,‘day’)
extract(year from hire_date)

类型转换

to_char
to_date
to_number(char)

to_char(number,format) to_char(salary,’$99,999.99)
to_number((number,format)
select to_char(99,‘99.99’) from dual 结果: 99.00 必须整数数字相同,小数数字相同或为0
select to_number(’$123’,’$9999’) from dual;货币 格式范围大于数字
RML L
固定格式
9表示一个数字
0强制显示0
$货币符号
L本地货币符号
.小数点
,千分位

通用类函数

nvl(a,b) a为null返回b,否则a
nvl2(a,b,c) a不为null返回b,否则c
nullif(a,b) a,b相等返回null,否则a
coalesce
decode:(简单点用)
select decode(e.sal,1500,‘1’,2000,‘2’,‘3’) from emp;如果1500返回1,2000满足2,不满足则返回
case when:(会做比较傻的)
select case
when e.sal > 1000
then ‘1’
when e.sal > 2000
then ‘2’
else ‘3’
end
from emp

分组函数

对记录集进行分组
分组函数 avg、max、min、count、sum
查询结果筛选 having

+始终指向有缺损值得一方

笛卡尔积
等值连接
非等值连接
外连接(将那些不匹配的行也显示出来)
自连接
在这里插入图片描述
子查询作为列 作为中间表 作为筛选条件

单行子查询
只返回一行
使用单行比较操作符< > =

多行子查询
返回多行
多行操作符:in any all
在这里插入图片描述
top -n 分析
select * from (select * from emp order by sal desc )where rownul <=10;在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值