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
服务:
第二个 没怎么用到
第三个 控制台服务
第四个 计时器服务
第五个 监听器服务 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 ??> ??
字符 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()小数点直接去
转换函数
union all 即使重复也不会过滤掉保留一次
union 重复了就会过滤 并保留一次
minus 把匹配的条件相减掉 大减小 (小减多 减没了)
intersect 交集
左/右连接 (+) 全连接:full outer join
left outer join right outer join
inner join //// where ......
修改表名
desc stu;
ALTER TABLE student RENAME TO stu
SQL语句执行顺序
笛卡尔乘积!!!!两表 的两个结果乘接在一起 也可以看出 from where select 的顺序
Exists
如果存在返回所有的值,不存在没输出
题目1
题目2
case
+update =