Oracle基础(二)---操作命令

接上篇博客介绍Oracle基本概要。以下将介绍数据库的操作指令。

Sql*plus经常使用命令

连接命令

1、 conn[ect]

使用方法 connusername/[email protected]网路服务名[as sysdba/sysoper] 当用特权用户身份连接时,必须带上as sysdba或者是as sysoper

文件操作命令

1、start 和@

执行sql脚本      案例sql >@ d:\a.sql或者sql>start d:\a.sql

2、 edit

该命令能够编辑制定的sql脚本  Sql>edit d:\a.sql

3、spool

该命令能够将sql*plus屏幕上的内容输出到指定文件里去。案例:slq>spool d:\b.sql 并输入sql>spool off

显示和环境变量设置

能够用来控制输入的各种格式,set show 假设希望永久的保存相关设置。能够去改动glogin.sql脚本

1、 linesize 设置显示行的宽度。默认是80个字符

Sql>show linesize

Sql>set linesize 90

Pagesize  设置每页显示的行数目。默认是14 Set pagesize 8

2、创建用户

Create user 一般具有dba的权限才干够使用

Sql>create user xiaoming identified bym123   名字以字母开头

3、 改动password  自己password sql >password username  System 能够改动

4、删除用户  自己删自己不可。drop user ;怎样删除的用户,已经创建了表。那么须要在删除时带一个參数cascade

5、用户管理

为新用户加入登录权限:连接 sql>conn username

赋权限 sql>grant connect to xiaoming

权限:系统权限。用户对数据库的相关权限,登录,改动password等; 对象权限用户对其它用户的数据对象訪问的权限。

角色:自己定义角色;提前定义角色;Dba角色

Resourse 随意在表空间建表

建表 sql>create table test(userID varchar2(30)

对象权限分类:Select,insert,update ,delete .alll ,createindex

授权:Grant select on emp to xiaoming

Sql>conn xiaoming /m1234

Sql>select * from scott.emp;

希望用户具有全部权限:Grant all on emp to xiaoming

收回权限:Revoke select on emp from xiaoming

对权限的维护,权限的传递

假设是对象权限,增加with grand option比如:    Grant select on emp to xiaoming with grantoption

创建用户

Sql>create user xiaohong identified bym123

Sql>grant connect on xiaohong

Sql>conn xiaoming /m123

Sql>grant select on scott.emp toxiaohong

假设是系统权限

Grant connet to xiaoming with admin option

xiaoming 能够将权限下分到还有一个人

使用 profile管理用户口令(是口令限制,资源限制的命令集合)

1、 账户锁定

登录次数的限定

Sql> create profile
lock_account()规则名称 limistfailed_login_attempts 3 password_lock_time 2(天);

Sql>alter user teaprofile lock_account;

2、 给用户解锁

Sql>alter user tea account unlock;

3、终止口令

Dba身份   Sql>create profile myprofile limitpassword_life_time10 password_grace_time2;

每10天改动password。2天的延迟

Sql>alter user tea profile myprofile.

口令历史:不能使用曾经的password:

建立profile:Sql>createprofile password_historylimitpassword_life_time
10password_grace _time2password_reuse_time 10    凝视:Password_reuse_time
10天后能够反复

4、删除profile

Sql>drop profilepassword_history[cascade](级联)

Oracle表的管理

1、数据类型

字符型: Char  定长 最大2000字符

Varchar2(20) 变长,最大4000字符

Clob(character large object)字符型大对象  最大4G

数字类型

Number 范围-0的-38次方,到10的38次方

Number(5,2)表示一个小数位有5位有效数,2位小数 范围-999.99-999.99

Number(5)表示一个五位整数   -99999-99999

日期类型

Date 包括年月日和时分秒   Timestamp 扩展

图片:Blob 二进制数据,能够存放图片、声音 4g

2、建表:

Sql> create table users (usernamechar(200),

Sql>create table classes(classId

Sql> dec

3、加入字段

Sql>alter table student add(classidnumber(2));

4、改动

Sql>alter table student modify(xmvarchar(30));

5、删除

Sql>alter table student drop column sal;

6、改动变名称

Sql>rename student to stu;

7、删除表

Sql>drop table student ;

8、加入数据

Insert into student values(‘A001’,’张三‘);默认时间格式 dd-mon-yy 09-6月-99

改动日期的默认格式 alter session setnls_date_fomart=’yyyy-mm-dd’

改动后加入数据

Insert into student values(‘a002’,’mike’,’男’,‘1905-05-06‘)。

9、插入部分字段

Insert into student(xh,xm,sex)values(‘A003’,’john’,’女”)。

10、插入空值

Insert into student (xh,xm,sex,birthday)values(‘a004’,’mat’,’男’,null)

11、改一个字段

Update student set sex=’女“

12、保存点:Sql> savapoint aa;Sql>rollback to aa;回滚

13、删除数据

Delete from student

删除全部记录,表结构还在,写日志,能够恢复,速度慢

Drop table student 删除表的结构和数据

Delete from student where xh=‘a001’; 删除一条数据

Truncate table student;

删除表中的全部记录,表结构还在,不谢日志。无法找回,速度快

14、查看表结构:Sql>desc dept

Oracle查询

1、怎样取消反复行

Select distinct deptno, job from emp;

2、复制

Sql>nstert into users(userid,username,userpss) select * from users

3、使用算数表达式

4、使用列的别名:Select ename “姓名” ,en fromemp;别名

Sql> select name from emp

5、怎样处理null

使用nvl(comm,0)假设comm是空值则用0来表示

6、怎样连接字符串(||)

Select ename || ‘is a’|| job form emp;

7、使用where、

Sql> select ename,sal from emp wheresal>3000; sal>=2000 and sal|<=2500

8、使用 like

Select ename,sal from emp where emp whereename like ’_ _o%’

9、在where条件中使用in

Select *from emp  where empno in(11,234,456);

10、使用is null 的操作符

Select * from emp where mgr is null;

11、使用逻辑操作符:使用order by。使用列的别名排序

12、分页查询

Group by 用于对查询结果分组统计

Having 子句用于限制分组显示结果

13、多表查询

按部门排序

Sql>select?。?,?。from empa1,dept a2 where a1.deptno= a2.deptno order by a.deptno;

假设是group by 字段必须包括在查询的字段里面

14、自连接:是指在同一张表的链接查询

Select worker.name.boss.name  from emp worker, emp boss where  worker.mgr = boss.empno workere.name =‘frode’;

15、单行子查询

Select *from emp where deptno =(select…);     数据在运行sql是从左到右运行

16、多行子查询

Select ename,sal,dept from emp wheresal>all(select sal form emp where deptno =30);

任一:Select ename,sal,dept from emp wheresal>any(select sal form emp where deptno =30);

17、多列子查询

Select * from emp where (deptno,job)=(selectdeptno,job from emp where name=’’);

18、分页查询

右子查询过来

Select a1.* ,rownum rn from(select * from emp) al;

一共同拥有三种方式

1.      rownum 分页

select * from emp

select * from (Select a1.* 。rownum rn from (select * from emp) alwhere rownum<=10) where rn>6;

2.      显示rownum

Select  al.* ,rownum  rn form emp

19、建表并将其它表数据导入到新表

Create table mytable (id,name ,sal,job,deptno) as select empno,ename,sal ,job ,deptbo from emp;

20、合并查询

1 union 取得两个结果集的并集,自己主动去掉反复行。

Select ename,sal ,job from emp wheresal>2500 union select ename ,sal,job from emp where job =’manager’;

2 union all   同Union ,但不取消反复行,并且不会排序

Select ename,sal ,job from emp wheresal>2500 union all select ename ,sal,job from emp where job =’manager’;

3 minus合并查询

获得两个结果集的差集,仅仅显示存在第一个集合中。而不存在第二集合中的数据

Select ename,sal ,job from emp wheresal>2500 minus select ename ,sal,job from emp where job =’manager’;

Orale视图

特点:不占磁盘;不能加入索引。使用视图能够简化
复杂查询。提高安全性。

创建视图

Create view
视图名 as select
语句[with read only]

创建或改动视图

Create or replaceview
视图名 as select
语句[withread only]

删除视图

Drop view
视图名

以上是主要的操作命令,一開始认为挺多的,可是后来觉着这些东西跟SQL Server的SQL语句一样。

所以学习的东西就少了非常多。

只是这些东西挺多的,所以就懒下别记了。什么时候用什么再回来看看,孰能生巧。这些命令特别是数据库的查询,怎样写,将影响到数据的查询性能。

时间: 2024-10-06 20:54:29

Oracle基础(二)---操作命令的相关文章

oracle基础二

Oracle  两种优化模式 1.cbo   cbo模式下  where字句对查询速度没有影响 2.rbo    在rbo下  会先执行索引.. oltp   联机事务处理  指经常变更数据的系统. olap   表数据分析  指数据不经常变的系统  只取数据做分析使用 子查询解决的问题:问题不能一步求解时  考虑使用子查询.. 子查询注意的问题: 1.将子查询放入括号中 2.采用合理的换行和缩进 3.可以在主查询的where from  select having 放子查询 3.1 selec

Oracle基础实训

一.Oracle基础SQL练习 班级表:班级编号(主键.标识列).班级名称.班主任.开班日期老师表:老师编号(主键.标识列) .姓名.性别(默认值‘男’).身份证号(必须是18位数字).联系电话学生表:学号(主键.固定五位数字) .班级编号.姓名.性别.出生日期.联系电话.家庭地址成绩表:编号(主键.标识列) .学号.科目名称.分数 1.表格创建 create table();语法 CREATE TABLE [schema.]table (column datatype [DEFAULT exp

Oracle基础 shutdown和startup

原文:Oracle基础 shutdown和startup 一.shutdown命令:SHUTDOWN有四个参数:NORMAL.TRANSACTIONAL.IMMEDIATE.ABORT.缺省不带任何参数时表示是NORMAL. SHUTDOWN NORMAL:不允许新的连接.等待会话结束.等待事务结束.做一个检查点并关闭数据文件.启动时不需要实例恢复. SHUTDOWN TRANSACTIONAL:不允许新的连接.不等待会话结束.等待事务结束.做一个检查点并关闭数据文件.启动时不需要实例恢复. S

Oracle基础 数据库备份和恢复

原文:Oracle基础 数据库备份和恢复 一.为什么需要数据备份 造成数据丢失的主要原因: 1.介质故障. 2.用户的错误操作. 3.服务器的彻底崩溃. 4.计算机病毒. 5.不可预料的因素. Oracle中故障类型分为以下4种. 1.语句故障: 执行SQL语句过程发生的逻辑故障可导致语句故障.如果用户编写的SQL语句无效,就会发生语句故障.Oracle可自我修复语句故障,撤销语句产生的而印象,并将控制权交给应用程序. 2.用户进程故障 当用户程序出错而无法访问Oracle数据库时,就会发生用户

Oracle基础知识笔记(11) 建表、更新、查询综合练习

有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.  建表,并在相应字段上增加约束: 定义各个表的主键和外键约束: 运动员的姓名和所属系别不能为空: 积分要第为空值,要么为6,4

Oracle基础及三层分页查询

一.数据库表空间和数据文件 解析:一个数据库下可以开N个表空间,一个表空间可以包含N个数据文件.表空间是逻辑概念. 二.关于listener.ora位置 修改该界面上的数据,会影响指定路径的监听配置文件 D:\app\asus\product\11.2.0\dbhome_2\NETWORK\ADMIN 三.数据库和实例的关系 数据库(database):物理操作系统文件或磁盘(disk)的集合.使用Oracle 10g的自动存储管理(Automatic Storage Management,AS

Html5开发——html+css基础二(个人博客一)

今天没有写完,而且写的还有点问题,所以今天就先不上传代码了(ps:快写完了才发现布局有问题,导致代码太多,感觉写的不是很好,所以今天先分析一下布局) 第一步先写一个大的div用来放ABC三个部分,这个大的div居中! 第二步分别写ABC三个部分,ABC三个部分分别使用浮动(float)来定位.A和B都各使用了一张非常小的图片,通过重复(repeat)属性生成A和B 第三步C部分分别写好3~16这几个模块,在通过组合利用浮动定位.分组如下: E:3 F:4.7.10.13 G:5.8.11.14

【转载:Oracle基础知识】Oracle数据库体系结构

先来看张直观的图:                                            oracle 11g 体系结构图 理解Oracle体系结构要充分理解三个概念:数据库(database),数据库实例(instance),会话(session),一定不要把这三个概念弄混. 数据库的概念 (A)    物理存储结构由数据文件.控制文件.重做日志文件组成: 1.       数据文件(datafile) select * from dba_data_files; 数据文件包括存

Scala 中的函数式编程基础(二)

主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. 2. Higher Order Functions 把其他函数作为参数或者作为返回值,就是 higher order functions,python 里面也可以看到这样使用的情形.在酷壳上的博客有一个例子就是将函数作为返回值. 2.1 匿名函数 在 python 里边叫 lambda 函数,常常与 map(

Oracle学习(二):过滤和排序

1.知识点:可以对照下面的录屏进行阅读 SQL> --字符串大小写敏感 SQL> --查询名叫KING的员工信息 SQL> select * 2 from emp 3 where ename = 'KING'; SQL> --日期格式敏感 SQL> --查询入职日期为17-11月-81的员工 SQL> select * 2 from emp 3 where hiredate='17-11月-81'; --正确例子 SQL> ed 已写入 file afiedt.b