【oracle】学习笔记 SQL语句

oracle 记得用commit!!!
查看SCOTT账户下 所有表及索引:https://blog.csdn.net/qq_33530388/article/details/60882287
OEM安装出现问题:https://cy060888.iteye.com/blog/1687783
学习视频:https://www.bilibili.com/video/av49130427/?p=7
服务:

【oracle】学习笔记 SQL语句

第二个 没怎么用到
第三个 控制台服务
第四个 计时器服务
第五个 监听器服务 lsnrctl start 监听启动 lsnrctl stop 监听停止
第六个 数据库服务(orcl) net start oracleserviceorcl
oracle服务器 可以包含客户端 不通过网络访问
安装 TOAD
类型 number(1,3) 后面是精度 ,前面是小数
命令行 select sysdate from dual; 查询当前系统时间 sysdate sqlserver select getdate()
精确查询时间 为:select to_char(systimestamp , 'yyyymmdd hh24:mi:ssxff6') from dual;
stamp精确到小数点六位、date 精确到秒
https://www.bilibili.com/video/av49130427/?p=3
创建表的结构以及更新表的结构和查看表的结构
如果大变成小 如20 为调整为11 位 表又有20位的数据 即会报错

create table student(
    sno number(11),
    sex varchar(2),
    brth date 
)
alter table student add tel number(11);
alter table student modify sno number(6)
desc student
 
alter table drop column
 
insert into student values(1111,'2',sysdate)    '11-1月-11'
select * from student
 
alter session set nls_date_format='yyyymmdd' 更改格式 退出失效
 
insert into student values(3,null,to_date('19811023','yyyymmdd')) 会转换为 yy-mm-dd
 
seletc * from student where sex is null;        //is not null

SYS下可以进行的操作:create table, drop table, alter table add column, alter table modify column;
SYS下不能进行alter table drop column操作,会报“ORA-12988:无法删除属于SYS的表中的列”。
不要“as sysdba”,当你登录时使用“as sysdba”时,就连接到了SYS模式,而不管你用的是哪个用户名,也就是说你现在操作的表是SYS.employees而不是SCOTT.employees。
另外SCOTT只是一个普通用户建议不要给其SYSDBA和SYSOPER权限。

要取消SCOTT的SYSDBA权限,可使用以下命令:

SQL>conn system/manager as sysdba
SQL>revoke sysdba from scott

通过别的表创建表

create table student2 as select * from student
create table student2 as select * from student where 1>2 //创建一个无数据的表

删除有两种

truncate table student;   不用commit
delete from student  ;   进入日志

% 和 _ 的区别 where length(name)=2 张三也是两个 而不是四个

排序查找、分组查询

select * from student order by sno desc    或者用数字代替
select  sno,count(score)  from student group by sno  having ??> ??

【oracle】学习笔记 SQL语句

字符 ascii码的转换规则

select chr(97) from dual;
select ascii('a') from dual;

时间函数

select add_months(sysdate ,'4') from dual 没有日年
 
select months_between(sysdate , to_date('20190125','yyyymmdd')) from dual  小数 一天/30来求
 
select extract(month from sysdate) from dual  从时间中提取年月日
 
select last_day(sysdate) from dual
 
floor()小数点直接去

【oracle】学习笔记 SQL语句

转换函数

【oracle】学习笔记 SQL语句

union all 即使重复也不会过滤掉保留一次
union 重复了就会过滤 并保留一次
minus 把匹配的条件相减掉 大减小 (小减多 减没了)
intersect 交集

【oracle】学习笔记 SQL语句
【oracle】学习笔记 SQL语句

左/右连接 (+) 全连接:full outer join
left outer join right outer join
inner join //// where ......
修改表名
desc stu;
ALTER TABLE student RENAME TO stu

SQL语句执行顺序
【oracle】学习笔记 SQL语句

笛卡尔乘积!!!!两表 的两个结果乘接在一起 也可以看出 from where select 的顺序
Exists
【oracle】学习笔记 SQL语句

如果存在返回所有的值,不存在没输出

题目1

【oracle】学习笔记 SQL语句

题目2

【oracle】学习笔记 SQL语句
【oracle】学习笔记 SQL语句

case
【oracle】学习笔记 SQL语句
【oracle】学习笔记 SQL语句
【oracle】学习笔记 SQL语句

+update =

上一篇:mysql和oracle在分页 长字符串上的区别


下一篇:react-native-webview 组件中RN与web的通信 (我用它来写移动端的简易富文本编辑器——文字和图片的插入)