以前只是简单用程序操作数据,现在才发现自己没有系统的学习过,所以想在这里记录一下自己在数据库方面遇到的问题,会参考查询网络上一些资料,现在看的是韩顺平oracle视频的笔记;

一、关于oracle系统的一些常用操作

1、oracle安装时会自动生成sys和system用户,sys是超级用户,具有最高权限,具有sysdba角色,有创建数据库的权限,默认密码是:change_on_install;system是管理操作员,具有sysoper角色,没有创建数据库的权限默认密码是:manager;

2、desc 表名;查看表结构时:使用Command window(命令窗口),不是SQL Window

3、常用关于表查询

select table_name from user_tables; //当前用户的表

select table_name from all_tables; //所有用户的表
select table_name from dba_tables; //包括系统表(需要用户权限)
select * from user_tab_columns where table_name='表名'

4、set timing on;(命令窗口)打开显示操作时间的开关

5、sql*plus常用命令:

conn 用户名/密码 [as sysdba/sysoper] 对应的是disc
psssw 修改用户密码,需要用SYS/SYSTEM登陆
show user 显示当前用户

6、用户管理

创建用户:create user 用户名 identified by 密码; (密码以字母开头)
给自己修改密码:password 用户名;
给别人修改(有dba权限):alter user 用户名 identified by 新密码
删除用户:drop user 用户名 【cascade】(用户创建了表时,带cascade参数-级联删除该用户的所有对象)

7、权限

oracle的权限分为系统权限和对象权限:
系统权限:用户对数据库的相关权限(角色)
grant connect to scott with admin option;(system给scott用户connect角色)
对象权限:用户对其他用户的数据对象操作的权限(select,insert,update,delete,all)
grant select on emp to scott;(赋给scott用户查询emp的对象权限)
grant all on emp to scott;(赋给scott用户查询,修改,删除,添加emp的对象权限)
revoke select on emp from scott;(撤销scott用户对emp表的select对象权限)

8、给用户解锁:

alter user scott account unlock;

二、简单使用查询

(1)distinct 取消查询结果的重复行,distinct紧跟在selectt之后
(2)使用连接字符串(||)
select ename || ' is a ' || job from emp
(3)查询中,别名需要使用“”号圈中文,英文用‘’
(4)查询时,若列里有一个分组函数,其他的都必须是分组函数,否则就出错
select ename, max(sal) from emp;
分组查询时,分组字段可以和分组函数一起出现在查询列里
SELECT AVG(sal), MAX(sal), deptno FROM emp GROUP by deptno;
分组函数只能出现在选择列表、 having、 order by 子句中(不能出现在 where中)

三、连接查询:

Book表:BookId,BookName,StudentId
Student表:StudentId,StudentName

(1)默认查询:select * from book b,student s where b.studentid=s.studentid

内连接:select * from book b inner join student s on b.studentid=s.studentid

(2)左外连接:select * from book b left join student s on b.studentid=s.studentid
以Book表的b.StudentId为基准,遍历Student表中与之匹配的s.StudentId:若b.StudentId含有s.StudentId匹配项,则

进行拼接,然后遍历Student表的下一条s.StudentId,当查询完毕则进入下一条b.StudentId。若b.StudentId没有相应

s.StudentId匹配项时,则显示左表的项,拼接右表的项显示为NULL。

select * from book b left join student s on b.studentid=s.studentid where b.studentid=s.studentid

select * from book b,student s where b.studentid=s.studentid

(3)union用于合并多个select语句的结果,要求select查询的列相同(自动取消重复行);
union all不取消重复行

oracle基础操作(1)的更多相关文章

  1. Oracle基础操作

    数据库的定义.作用介绍: 什么是数据库? 按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 数据库的发展史: 起始于1962年,1968年在IBM出现 数据库在测试过程中的作用: 需 ...

  2. ORACLE日常操作手册

    转发自:http://blog.csdn.net/lichangzai/article/details/7955766 以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语 ...

  3. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  4. Oracle数据库操作---基础使用(二)

    此篇承接上一篇的基本原理,继续展开学习,本篇主要面向数据的使用和管理,也就是开发者常用的基础语句,开始喽…… >>>对整表的操作 >创建表   关键字 Create creat ...

  5. C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...

  6. SQL基础操作汇总

    SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:    CREATE TABLE  table_name ( col_name    datatype, -- ...

  7. 图说Oracle基础知识(一)

    本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...

  8. Oracle数据库操作---入门(一)

    由于工作原因,近期可能会开始多复习一些数据库相关的知识了,想深入了解的,也可以一起复习.学习~ 前期先巩固一下基础操作,后期会一点点的加深向运维方向深入.开篇主要介绍一些数据库理论知识,不感兴趣的可以 ...

  9. Oracle基础了解

    数据库: 关系型数据库 select * from 表名 非关系型数据库(做不到复杂查询) 以对象的形式进行存储 {"aaa":"ccc"}---键值对 ora ...

随机推荐

  1. java面试题之什么是CAS

    CAS,即Compare and Switch,比较-替换,里面有三个操作数:内存值V.旧的预期值A.要修改的值B: 当预期值A和内存值V相同时,才会将内存值修改为B并返回true,否则什么都不做并返 ...

  2. bzoj 1069 凸包+旋转卡壳

    题目大意 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成 的多边形面积最大. 分析 枚举对角线的一个端点 另一个端点开始转 转的时候求出对角线左边面积 ...

  3. APUE 学习笔记(九) 高级I/O

    1. 非阻塞I/O 低速系统调用时可能会使进程永远阻塞的一类系统调用,包括以下调用: (1)某些文件类型你(网络socket套接字.终端设备.管道)暂无可使用数据,则读操作可能会使调用者永远阻塞 (2 ...

  4. JS判断SharePoint页面编辑状态

    这篇博客主要讲使用不同的客户端方式来判断页面的编辑模式. 1.当页面处于发布状态时,可以使用下面两种方式:if(g_disableCheckoutInEditMode == true) {   ale ...

  5. http client transfer

    背景 在平时工作中我偶尔会写一些脚本监控HTTP接口的健康状况,基本上都是发送HTTP GET或HTTP POST请求,然后检测响应内容.但一直用的是WebClient和HttpWebRequest, ...

  6. 以iphone6plus 为标准单位是px的页面 在运行时转换为rem

    在页面中引入以下代码,把样式中带px单位的样式放到本页面中的<style>标签中 /** * Created by Administrator on 2017-03-14. */ /*** ...

  7. ListView+EditText使用遇到的坑

    最近项目中某功能需要ListView嵌套EditText来实现,使用过程中遇到一些问题: 1.点击弹出编辑框,edittext会失去焦点. 解决焦点丢失的问题 解决思路:软键盘弹出的时候会重新绘制界面 ...

  8. 问题:Linux 输入任何命令都显示 -bash: fork: Cannot allocate memory

    应该是某个程序吃掉了所有的内存,只能重启

  9. Oracle中PL/SQL 范例

    1.写匿名块,输入三角形三个表的长度.在控制台打印三角形的面积 declare v_side_first ):=&第一条边; v_side_second ):=&第二条边; v_sid ...

  10. Java-线程池总结

    线程池的优点: 重用线程,减少线程创建和销毁的性能开销. 管理线程,并提供定时执行以及指定间隔循环执行等功能. Android中的线程来源于Java中的Executor,实现类是ThreadPoolE ...