初级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语句,具体情况具体分析。

分组查询

分页查询

明天继续。

时间: 2024-08-24 10:53:18

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

ORACLE PL/SQL异常处理(Exception)学习笔记

1.PL/SQL错误类型 错误类型 报告者 处理方法 编译时错误 PL/SQL编译器 交互式地处理:编译器报告错误,你必须更正这些错误 运行时错误 PL/SQL运行时引擎 程序化地处理:异常由异常处理子程序引发并进行捕获 2.异常的声明 有两种异常:用户自定义异常和预定义异常 用户自定义异常就是由程序员自己定义的一个错误.该错误还不是非常重要,所以并没有将整个错误包含在Oracle的错误中.例如,它可能是一个与数据有关的错误.而预定义异常则对应于一般的SQL和PL/SQL错误. 用户自定义异常是

Oracle PL/SQL语句基础学习笔记(上)

PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及怎样设计并运行一个PL/SQL程序. 1.PL/SQL的长处 从版本号6開始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的长处以及其独有的数据管理的便利性,那么你非常难想象ORACLE缺了PL/SQL的情形.PL/SQL 不是一个独立的产品,他

java学习笔记——韩顺平视频

第0讲:开山篇 1.  Java se J2se        桌面 Java ee J2ee        网络 Java me J2me        手机 2.  SQL server   Mysql   Oracle 3. 学习软件编程的注意事项 1.高效愉快学习 2.先建立一个整体框架然后细节 3.用什么再学习什么 4.先知道how,再知道why 5.软件编程是一门"做中学"学科,做了才会 6.适当囫囵吞枣 7.琢磨别人怎么做,不是我认为这么做 第1讲  内容介绍.项目演示.

SQL语句教程学习笔记之一

转自http://www.1keydata.com/cn/sql/ 无论您是一位 SQL 的新手,或是一位只是需要对 SQL 复习一下的资料仓储业界老将, 您就来对地方了.这个 SQL 教材网站列出常用的 SQL 指令.包含以下几个部分: SQL 指令: SQL 如何被用来储存.读取.以及处理数据库之中的资料. 表格处理: SQL 如何被用来处理数据库中的表格. SQL语法: 这一页列出所有在这个教材中被提到的 SQL 语法. 对于每一个指令,我们将会先列出及解释这个指令的语法,然后我们会用一个

#SQL初学者指南#学习笔记(一)

Tip1:SQL语句在逻辑上应该类比于英语(状语后置)...是一种只关注关系型数据库的语言\n DML(Data Manipution Language)数据操纵语言,即对数据的操作:DDL(Data Definition Language)数据定义语言,即对数据库本身的操作:DCL(Data Control Language)数据控制语言,即维护数据库的安全\n SQL中,记录(record)和字段(field)对应于行和列的概念\n 主键:标识和唯一性,不能包含NULL:外键:一个表中的一个

SQL反模式学习笔记16 使用随机数排序

2014-10-15 10:06:48 目标:随机排序,使用高效的SQL语句查询获取随机数据样本. 反模式:使用RAND()随机函数 SELECT * FROM Employees AS e ORDER BY RAND() Limit 1 缺点:无法利用索引,每次选择的时候都不同且不可预测.进行全表遍历,性能极差. 如何识别反模式:当出现以下情况时,可能是反模式 1.在SQL中,返回一个随机行速度非常慢: 2.要获取所有的记录然后随机一个.要如何增加程序可使用的内存大小? 3.有些列出现的频率比

SQL反模式学习笔记17 全文搜索

2014-10-16 09:56:37 目标:全文搜索 使用SQL搜索关键字,同时保证快速和精确,依旧是相当地困难. SQL的一个基本原来(以及SQL所继承的关系原理)就是一列中的单个数据是原子性的. 反模式:模式匹配 使用Like 或者正则表达式. 缺点:(1)无法使用索引,进行全表遍历,非常耗时,性能极低. (2)有时候会返回医疗之外的结果.select * from bugs where description like '%one%', 返回结果可能是money.prone.lonely

SQL Server 2012学习笔记 1 命令行安装

setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=748RB-X4T6B-MRM7V-RTVFF-CHC8H /FEATURES=SQL,AS,RS,IS,Tools /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="TEST\sql" /SQLSVCPASSWORD="[email protected]" /SQLSYSADMINACCOUNTS=&qu

Oracle学习笔记4 使用Navicat for Oracle 连接Oracle时出现错误:ORA-28547: connection to server failed, probable Oracle Net admin error

出问题到的机器环境: Oracle 11gR2 64bit Navicat for Oracle 11.0.10 根据网上一些大神的做法及个人的一些推测,总结如下: 问题出现的原因:Navicat与Oracle的位数不一致,前者32bit,后者64bit 网上的一些没有起效的做法: 1.修改Oracle中的listener.ora 或者tnsname.ora等配置文件,未能生效: 2.使用Oracle中的oci.dll替换Navicat中的oci.dll,会出现“cannot load oci.