Oracle基础(二)---操作命令
接上篇博客介绍Oracle基本概要。以下将介绍数据库的操作指令。
Sql*plus经常使用命令
连接命令
1、 conn[ect]
使用方法 connusername/password@网路服务名[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语句一样。
所以学习的东西就少了非常多。
只是这些东西挺多的,所以就懒下别记了。什么时候用什么再回来看看,孰能生巧。这些命令特别是数据库的查询,怎样写,将影响到数据的查询性能。
Oracle基础(二)---操作命令的更多相关文章
- 数据库学习---SQL基础(二)
数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) 上篇复习的sql的增删改查,and ,or ,>=, <=,!=等逻辑运算符,还有in ...
- Oracle基础 表分区
Oracle基础 表分区 一.表分区 (一)表分区的分类 1.范围分区(range) 2.散列分区(hash) 3.列表分区(list) 4.复合分区:范围-哈希(range-hash).范围-列表( ...
- Oracle基础学习笔记
Oracle基础学习笔记 最近找到一份实习工作,有点头疼的是,有阶段性考核,这...,实际想想看,大学期间只学过数据库原理,并没有针对某一数据库管理系统而系统的学习,这正好是一个机会,于是乎用了三天时 ...
- ORACLE| ORACLE基础语法汇总
创 ORACLE| ORACLE基础语法汇总 2018-07-18 16:47:34 YvesHe 阅读数 9141更多 分类专栏: [数据库] 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- Oracle打怪升级之路一【Oracle基础、Oracle查询】
前言 背景:2021年马上结束了,在年尾由于工作原因接触到一个政府单位比较传统型的项目,数据库用的是Oracle.需要做的事情其实很简单,首先从大约2000多张表中将表结构及数据导入一个共享库中,其次 ...
- Oracle基础知识汇总一
Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接 https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...
- Oracle基础知识(一)、简介与安装
文章提纲 Oracle简介与发展历程 安装实例(面向普通开发者) 一.Oracle简介与发展历程 中文名称甲骨文公司,全称为甲骨文股份有限公司(甲骨文软件系统有限公司).甲骨文已超越 IBM ,成为继 ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Bootstrap <基础二十九>面板(Panels)
Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素添加 class .panel 和 class .pa ...
- Bootstrap <基础二十八>列表组
列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...
随机推荐
- axis2 webservices 411错误解决办法
错误:org.apache.axis2.AxisFault: Transport error: 411 Error: Length Required 可能会导致这个问题的原因: 1.访问地址经过端口映 ...
- 几种常用单片机I/O口线的驱动能力
摘要: 详细分析了几种常见单片机的I/O口结构,并据此分析其驱动能力大小 在控制系统中,经常用单片机的I/O口驱动其他电路.几种常用单片机I/O口驱动能力在相关的资料中的说法是:GMS97C2051. ...
- MySQL的用户密码过期功能详解
MySQL的用户密码过期功能详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 先说明两个术语. Payment Ca ...
- mysql入库中文乱码问题
mysql> show variables like '%char%';+--------------------------+----------------------------+| Va ...
- Nginx 介绍和安装
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...
- const和define的区别
1.在使用const定义常量时,只能使用标量初始化; 但我们可以使用任何表达式初始化define定义的常量 2.我们可以在条件表达式中使用define定义常量,但绝对不能使用const eg: def ...
- C++顺序性容器、关联性容器与容器适配器
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...
- CSS ::before 和 ::after 伪元素用法
CSS 有两个说不上常用的伪类 :before 和 :after,偶尔会被人用来添加些自定义格式什么的,但是它们的功用不仅于此.前几天发现了 Creative Link Effects 这个非常有意思 ...
- 理解数据点,自变量和因变量(参数和值)ChartControl
WinForms Controls > Controls > Chart Control > Fundamentals > Charting Basics > Under ...
- SQL SERVER2012 无法连接远程服务器
SQL SERVER2012 无法连接远程服务器,报"尝试读取受保护的内存"错误. 解决方法: 运行CMD,输入 netsh winsock reset,回车.重启SSMS,搞定.