初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。
我自己就是一个oracle和sql的初学者,前段时间看了韩顺平老师的oracle视频教程,觉得很深入浅出,收获了很多。同时自己也做了不少笔记,现在想将纸质笔记以自己的话总结出来。俗话说得好:教学总是相得益彰,在总结的过程中想必会加深自己的印象,能够巩固自己的学习过程。
oracle 用户部分:
创建用户:create user user_name identified by user_password;
此时用户并没有连接数据库的权限。需要给其赋予连接权限
赋予权限:权限分为对象权限和系统权限。
grant [select|updat|all] on table_name to user_name;--对象权限
grant connect to user_name with admin option; --系统权限
with admin option 表示这个user可以将此权限继续下发
收回权限: revoke Quanxian on table_name from user_name;
连接数据库:conn user_name/user_password;
profile文件,可以限制某些用户的行为,如登录尝试次数,密码输入错误次数等。
创建profile 文件: create profile profile_name limit failed_login_attempts m password_lock time n;
应用给某用户:alter user user_name profile profile_name;
在初次建立oracle数据库实例的时候,默认创建了几个用户,但是只有几个用户没有上锁,给某个用户解锁的步骤如下:
首先要以sysdba的用户登录oracle数据库,需要打开sqlplus这个oracle安装自带的工具
cmd or terminal 下: sqlplus / as sysdba;
解锁用户:alter user user_name account unlock;
更改用户密码: alter user user_name identified by password;
这里,几个常用的用户的系统默认密码总结如下:
scott:tiger
system:manager
sys:change_on_install
sysdba 不需要密码登录。
几个用户的权限具体如何等我总结到后面再补上,韩顺平老师这里讲的有点分散。
继续用户管理。
设置口令历史:修改密码时不能使用以前使用的密码
password_reuse_time n;--n 天后才能重用密码
定期修改密码:
create profile profile_name limit password_life_time m pasword_grace_time n;
m天修改一次密码,宽限期n天。
sql语句中的几种数据类型:
char(n) :定长字符串,最长2000,查询速度快
varchar2(n):变长字符串,最长4000,节省空间
clob(character large object) :字符型大对象,最大4G
number(m,n):m位有效数,其中n位小数
number(m) :m位整数
date:日期类型 年月日时分秒
timestamp:更精确
blob:图片类型,二进制数据 可存放图片,声音,最大4G(韩老师当时用的是9i,我用了个64位的12c版本,估计能支持最大8G的吧。。自己猜的)
显示表结构:desc table_name;
增加字段:alter table table_name add (colum_name,colum_type);\
修改字段: alter table table_name modify (colum_name,colum_type);
删除字段:alter table table_name drop colum colum_name;
删除表:drop table table_name;
date格式'日-月-年'
insert into table_name values(每个字段的值,如果有非数字的字段值,需要用单引号对''括起来)
alter session set nls_date_format 'yyyy-mm-dd';
【注意】这个改的效果是临时生效的。
插入空值NULL(该字段允许为空才行)
查询空值:select xxx from xxx where colum_name is [NULL|NOT NULL];
更改表内容:update table_name set colum_name='xxx' where yyy;
删除数据:delete from table_name;--删除数据,表的结构还在,可恢复,删除速度略慢
truncate table table_name;删除表中所有的数据,表结构还在,但是由于不写日志,无法找回删除记录,好处是删除速度快。
恢复数据:
save point point_name;--创建恢复点
delete from table_name;
rollback to point_name;--恢复
删除表结构和数据:drop table table_name;--删除表的结构和数据
commit提交事物,提交后保存点会失效,要注意。
打开显示操作时间开关:set timming on;
nvl函数处理NULL值的情况:nvl(字段名,值),如果字段本身值为NULL,则改变其新值为逗号后面的那个,如果不是NULL,不做任何事。
where 语句后面的like关键字用于查找并匹配符合条件的字段:
%表示零到多个字符
下划线_ 表示任意单个字
in关键字表示从一个范围内选取
order by语句默认升序(ASC),如果想降序排列,可以这样:
select *** from table_name where xxx order by colum_name desc;
别名排序 select sss as xx from xxx之类的
数据分组函数:max,min,avg,sum,count
子查询:嵌入在其他sql语句中的select语句,也叫做嵌套查询。
分组查询:
group by | having
group by 用于对查询结果的分组统计 having用于限制分组显示的结果
select xxx,yyy from table_name where zzz group by xxx having (yyy的一些限制条件);
注意:分组查询的字段必须在查询的字段中出现,不然查询失败。
分组函数只能出现在选择列表,having,order by子句中
如果select语句中同时包含group by,having,order by那么顺序是group by-having-order by
在选择列表中如果有列,表达式和分组函数,那么这些列和表达式必须有一个出现在group by子句中,不然出错。
多表查询:以oracle自带的emp表和dept表结构为例
可以看到两个表共同的字段为deptno;
因此在查询中可以以这个为连接桥梁
比如我要查询分别位于两个表的ename,和loc,可以如下写。
在查询过程中需要将选出来的表重命名,并用点符号选出相应的字段,如上所示。
分页查询:
采用rownum分页
第一步:oracle自带的rownum函数将每行查询出来的结果编号,如下:
第二步:选取rownum<=10的列,以上次选取的结果作为结果。
第三步,选取>=6的列,继续以上一次选取的为结果进行查询。
这样就选取了6-10的分页结果。
注意事项:所有的改动,只需要改变最里面那层select语句即可,即改变
select * from emp这个语句,外面两层select 语句是为了完成分页功能而已。
合并查询:将多个select语句的查询结果进行相关操作,类似于集合的求交集,并集,差集之类的。
老师讲的比较少,这里就先不写。
查询结果创建表:
create table table_name(colum_name1 colum_type1,colum_name2 colum_type2...)
as select colum1,colum2,...colum_n from table_name2;
JAVA连接oracle数据库:
Class.forName( "oracle.jdbc.driver.OracleDriver" );
Connection cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );
初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。的更多相关文章
- Linux学习笔记-韩顺平
这是我学习哔哩哔哩UP主韩顺平的2021韩顺平图解Linux课程的学习笔记. 课程地址:2021韩顺平图解Linux课程 Linux基础篇-Linux目录结构 基本介绍 linux 的文件系统是采用级 ...
- ORACLE PL/SQL异常处理(Exception)学习笔记
1.PL/SQL错误类型 错误类型 报告者 处理方法 编译时错误 PL/SQL编译器 交互式地处理:编译器报告错误,你必须更正这些错误 运行时错误 PL/SQL运行时引擎 程序化地处理:异常由异常处理 ...
- Oracle PL/SQL语句基础学习笔记(上)
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...
- 韩顺平玩转Oracle视频资料整理
.oracle10g 11g:g(grid)表示网格技术 以baidu搜索为准,现在想使用一个软件,但是此软件在离自己非常近的地方就存在了下载地址,但是与自己非常远的地方也同样存在一个下载地址,而搜索 ...
- SQL反模式学习笔记12 存储图片或其他多媒体大文件
目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点: 1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...
- SQL反模式学习笔记16 使用随机数排序
目标:随机排序,使用高效的SQL语句查询获取随机数据样本. 反模式:使用RAND()随机函数 SELECT * FROM Employees AS e ORDER BY RAND() Limit 1 ...
- SQL反模式学习笔记17 全文搜索
目标:全文搜索 使用SQL搜索关键字,同时保证快速和精确,依旧是相当地困难. SQL的一个基本原理(以及SQL所继承的关系原理)就是一列中的单个数据是原子性的. 反模式:模式匹配 使用Like 或者正 ...
- SQL反模式学习笔记1 开篇
什么是“反模式” 反模式是一种试图解决问题的方法,但通常会同时引发别的问题. 反模式分类 (1)逻辑数据库设计反模式 在开始编码之前,需要决定数据库中存储什么信息以及最佳的数据组织方式和内在关联方式. ...
- SQL反模式学习笔记5 外键约束【不用钥匙的入口】
目标:简化数据库架构 一些开发人员不推荐使用引用完整性约束,可能不使用外键的原因有一下几点: 1.数据更新有可能和约束冲突: 2.当前的数据库设计如此灵活,以至于不支持引用完整性约束: 3.数据库为外 ...
随机推荐
- hadoop错误Cannot load libcrypto.so (libcrypto.so cannot open shared object file No such file or directory)
报如下错误 解决方法: 1.使用hadoop checknative –a命令检查,报如下错误 2.使用如下命令建立libcrypto.so文件的符号链接 如果,您认为阅读这篇博客让您有些收获,不妨点 ...
- C++ 读取XML文件(tinyXML库的应用)
C++读取xml有很多第三方的xml解析库,最近使用tinyxml库来解析,下面直接上应用例子: Skin.xml文档内容如下: <UI> <Image name="ban ...
- 第三篇:web之前端之JavaScript基础
前端之JavaScript基础 前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript ...
- input框中的背景文字
<input placeholder="入库单单号" type="text" ><button>查找</button>
- (转)PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
一.中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $l ...
- proxy.ini文件调用
self.CONFIG_FILENAME = os.path.splitext(os.path.abspath(__file__))[0]+'.ini' 改为: self.CONFIG_FILENAM ...
- Java设计模式(学习整理)---命令模式
设计模式之Command(学习整理) 1.Command定义 不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作. 将这些命令封装 ...
- 345. Reverse Vowels of a String(C++)
345. Reverse Vowels of a String Write a function that takes a string as input and reverse only the v ...
- 24种设计模式--建造者模式【Builder Pattern】
在一个周三,快要下班了,老大突然又拉住我,喜滋滋的告诉我“牛叉公司很满意我们做的模型,又签订了一个合同,把奔驰.宝马的车辆模型都交给我们公司制作了,不过这次又额外增加了一个新需求:汽车的启动.停止.喇 ...
- WPF RadioButton & CheckBox Style
<Style TargetType="CheckBox"> <Setter Property="Template"> <Sette ...