首页 > 代码库 > 初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。

初级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;--删除表的结构和数据

 

打开显示操作时间开关: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

 

子查询:在select语句的where字段后接一个select语句,具体情况具体分析。

 

分组查询

 

分页查询

 

明天继续。 

 

 

 

 

 



 

初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。