ORACLE授课笔记

合集下载

oracle课程笔记.

oracle课程笔记.

1.触发器创建命令 Creat trigger <触发器名称>2.before insert or update of department_id on employees 意思是当表employees执行insert操作以及针对employees表中的department_id字段做update操作地时候,发起触发器;3.referencing old as old_value new as new_value for each row 定义了触发器关键动作(insert,update,delete)的修改临时变量(new,old) insert: 此时有一个new的修改临时变量可以被后续SQL操作当为insert时,只存在new变量,存放着insert的所有记录信息 update: 当为update时,update之前的数据存放在old中, update之后的数据存放在new中;注:如果update了一个字段,那么old和new里是保存着字段值还是一个完整的记录值 delete: 当为delete时,delete之前的数据存放在old中,并且只有old;4.定义触发器限制 when (new_value.department_id<>805.if...then elseif...then6. user当前登录用户7. Raise_application_error一个oracle定义的异常对象8. Create or replace 创建或者替换触发器9. sysdate当前系统时间 10.表修改关键字alter table 11.Declare 定义触发器中的变量 12.<字段>%type 表示字段的类型 13.定义触发器生效之后的SQL句操作 begin :new_mission_pct :=0; end; 14.before....for each row表示触发器对每一行生效 15.create sequence 建立字增长的序列号。

oracle听课笔记

oracle听课笔记

1 ORACLE简单介绍一下ocp11g培训课程+考试代号第一步获取OCASTEP 1 - PASS THIS EXAM ---->1Z051Oracle Database 11g: SQL Fundamentals I --->书写SQL能力Learn To:Retrieve row and column data from tables with the SELECT statement.Create reports of sorted data.Display data from multiple tables.Use DML statements to manage data.Use DDL statements to manage database objects.Create reports of restricted data.STEP 2 - PASS THIS EXAM---052Oracle Database 11g: Administration I ----》dba1 管理员1Learn To:Install Oracle Grid Infrastructure.----》安装grid软件Create and manage users.Install and configure an Oracle Database.Create and manage storage structures.---->ASM存储Administer the Oracle Database.Understand the Oracle database architecture and how its components work and interact with one another.----》建议看书:Concepts 或者推荐tom大师Oracle_Database_9i10g11g编程艺术深入数据库体系结构(第二版)PDF及涉及源代码Perform backup and recovery. 备份恢复----------------------OCA ---------------------------------第二步骤获取OCPSTEP 2 - COMPLETE TRAINING --参加培训STEP 3 - PASS THIS EXAM=----1z053Oracle Database 11g: Administration II---dba2 管理员2Learn To:Diagnose and repair data failures with Flashback technology. 闪回技术闪回事物Manage space to optimize database storage so you can respond to growing space requirements. 空间管理(搜索压缩镜像)Monitor and manage major database components, including memory, performance and resources.内存管理性能(优化监视)资源管理Secure the availability of your database through appropriate backup and recovery strategies.备份与恢复(完全恢复不完全恢复)Automate DBA tasks with the Scheduler. (作业调度窗口)最后一个步骤就必须提交表单hands onSTEP 4 - COMPLETE THIS FORM-----------------------------------最后获取ocp ---------------------------重点:如何搭建学习环境(自我学习)介绍环境:vm + redhat5.8(64) + oracle grid + oracle 11g r2 (64) + 介绍工具sqldeveloper PLSQL Developersqlplus +em(grid control)下载oraclre软件 --->download---database ---->Oracle Database 11g Release 2 Enterprise Edition按照我思路你可以再三种平台搭建学习环境Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 安装介质Oracle Grid Infrastructure 11g Release 2 (11.2.0.1.0) for Linux x86-64 grid软件问题:怎么装帮助手册----》Oracle Database 11g Documentation 看官方手册下载手册----》产品下载旁边解压---》index.html安装说明Database Installation Guide for Linux1 Overview of Oracle Database Installation 概述Database Storage Options 数据存储?File System 文件系统?Oracle Automatic Storage Management asm (建议我们学习都是基于ASM)裸设备2 Oracle Database Preinstallation Requirements(必须完成)一步步走This chapter describes the tasks that you must 必须complete before you start Oracle UniversalInstaller (OUI).(oracle软件的安装工具是图形)his guide contains information required to install Oracle Database 11g Release 2 (11.2).2.1 About Installing the Linux Operating System 完成linux系统安装SSH is required for an Oracle Grid Infrastructure installation. OpenSSH should be included in the Linux distribution minimal installation. To confirm that SSH packages are installed, enter the following command:# rpm -qa |grepssh你必须安装2.2 Logging In to the System as rootBefore you install the Oracle software, you must complete several tasks as the root user. To log in as the root user, complete one of the following procedures:安装oracle软件前必须用root登陆,然后完成一些任务安装linux系统的时候要求安装x-windowroot登陆测试图形是否可以显示借助一个命令xclok显示小钟用于测试图形是否正常显示安装前用的root配置开始安装必须用oracle软件拥有者安装比如oracle 软件----》oraclesu - oraclexclock失败!!!!!原因是root没有允许怎么允许xhost IP或者主机名后者+ (+代表所有)总结:root配置然后xhost +su - oracle 开始安装oracle软件问:如果我们服务上没有显示怎么能显示图形可以吧图形显示到我们笔记本先解决网络通讯问题1 看服务IP地址192.168.2.1 (网卡模式host-only ) (网卡模式桥接)2 看我们win7的IP地址应该配置vmnet1 192.168.2.111 物理网卡测试ping 192.168.2.1如何做远程连接---借助SSH---22借助工具(记录日志)puttySecureCRTXmanager Enterprise 3login as: rootroot@192.168.2.1's password:Last login: Wed May 22 05:26:00 2013 from 192.168.2.111把图形显示到笔记本上1 借助X-manager安装xmanager3.0 (注意输入SN)2 打开xmanager--passive 查看:0.03 使用putty连接root登陆(任何用户登陆都必须按照下面来操作)export DISPLAY=你要把图形显示地方(笔记本)192.168.2.111 + :0.0export DISPLAY=192.168.2.111:0.0xhost +xclock测试研究xmanager2.3 Checking the Hardware Requirements 硬件检查2.3.1 Memory Requirements内存Minimum: 1 GB of RAMRecommended: 2 GB of RAM or more?To determine the RAM size, enter the following command:swap分区ram swap1-2G 1.5倍2-16 相等>16G 16GTo determine the size of the configured swap space, enter the following command:# grepSwapTotal /proc/meminfoTo determine the available RAM and swap space, enter the following command:# free -mAutomatic Memory Management 自动内存管理Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm)and file descriptors/dev/shm ---》可以通过把数据存在/dev/shm---->直接读写内存file descriptors---》文件个数The size of the shared memory must be at least the greater of the MEMORY_MAX_TARGET and MEMORY_TARGET parameters for each Oracle instance on the computer.什么叫自动内存管理----——》内存的管理交给oracle --->设置参数MEMORY_TARGET MEMORY_MAX_TARGET学习方法:查资料一个参数-----什么意义怎么设置?-----》Reference ---》ctrl+f MEMORY_TARGET MEMORY_TARGET specifies the Oracle system-wide usable memory. The database tunes memory to the MEMORY_TARGET value, reducing or enlarging the SGA and PGA as needed.The size of the shared memory must be at least the greater of the MEMORY_MAX_TARGET and MEMORY_TARGET parameters for each Oracle instance on the computer./dev/shm》MEMORY_TARGETTo determine the amount of shared memory available, enter the following command:# df -h /dev/shm/ 默认你内存一半默认1G如果我把memory_target=5GORA-00845: MEMORY_TARGET not supported on this systemORA-01078: Failure in processing system parameters通常需要扩展/dev/shmFor example: 临时# mount -t tmpfsshmfs -o size=10g /dev/shmTo make this change persistent永久保存across system restarts, add an entry in /etc/fstab similar to the following:vim /etc/fstabshmfs /dev/shmtmpfs size=10g 0文件描述符The number of file descriptors for each Oracle instance must be at least 512*PROCESSES. The limit of descriptors for each process must be at least 512. If file descriptors are not sized correctly, you see an ORA-27123 error from various Oracle processes and potentially Linux Error EMFILE (Too many open files)in non-Oracle processes.2.3.2 System ArchitectureTo determine if the system architecture can run the software, enter the following command:# uname -mx86_64。

Oracle超详细学习笔记

Oracle超详细学习笔记

Oracle超详细学习笔记-----员⼯培训------1.最简单的查询--例SELECT *FROM employees;DESC employees;SET linesize 600;SET PAGESIZE 50;--例2SELECT table_name FROM user_tables;--查询数据库中所有表名--2.查询特定的列--例SELECT employee_id,fisrt_name,last_name.salaryFROM employees;--3.在SELECT⼦句中使⽤直接量--例SELECT 5FROM employees;-----------------------SELECT 5FROM dual;--这是Oracle提供的伪表--例2:SELECT 'Hello Oracle SQL'--在Oracle中如何表⽰字符串常量FROM employees;SELECT 'Hello Oracle SQL'--在Oracle中如何表⽰字符串常量FROM dual;--例3:SELECT 'Hello Oracle''s SQL'--⽤两个连续单引号进⾏单引号转义FROM employees;--4在SELECT⼦句中使⽤算术表达式--例1:查询员⼯的编号、姓名和年薪SELECT employee_id,fist_name,last_name,salry,salary*12FROM employees;--例2:SELECT 5/2FROM dual;--5.给例定义别名--例1:SELECT employee_id AS idFROM employees;--例2:SELECT employee_id AS "Id"--双引号中的字符原样显⽰FROM employees;--例3:SELECT employee_id,fist_name,last_name,salry,salary*12 AS annual_salary FROM employees;--例4:SELECT employee_id,fist_name,last_name,salry,salary*12 AS "annual salary" FROM employees;--如果别名有特殊字符必须使⽤双引号--6.字符串的链接运算符--例:SELECT employee_id||''||fist_name,last_name,salry,salary*12 AS annual_salary FROM employees;--7.过滤重复记录--例1:SELECT DISTINCT department_idFROM employees;--例2:SELECT DISTINCT department_id,job_idFROM employees;--第⼆章过滤查询和结果集排序--1.使⽤WHERE⼦句过滤记录--例1:SELECT *FROM employeesWHERE salary > 8000;--例2:SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary = 17000;--例3:SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary <> 17000;-- !=--⽐较运算符号:>,>=,<,<=,=,!=或<>--例4SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary >=2500 AND salary <= 17000;--逻辑运算符:AND,OR,NOT--2.在WHERE⼦句中使⽤字符串和⽇期--例1:查询职位ID为st_clerk的员⼯信息SELECT employee_id,job_id,first_name,FROM employeesWHERE job_id = 'ST_CLERK';--表中字段的值是区分⼤⼩写的--例2:查询1998年7⽉9⽇⼊职的员⼯信息SELECT employee_id,job_id,first_nameFROM employeesWHERE hire_date = '09-7⽉-1998';--⽇期直接量必须以字符串的形式来体现--Oracle的⽇期是格式敏感的--标准⽇期表⽰DD-MM-RR--3.其他⽐较运算符--1)BETWEEN AND--例1:查询⼯资在【2500,7000】上的员⼯信息SELECT employee_id,job_id,first_name,salaryFROM employeesWHERE salary BETWEEN 2500 AND 7000;--包含边界值--第⼀个值要⼩于第⼆个值--练习:查询1998年⼊职的员⼯信息SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE hire_date BETWEEN '01-1⽉-1998' AND '31-12⽉-1998';--2) IN--例1:查询职位ID是ST_CLERK或者ST_MAN的员⼯SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id IN ('ST_CLERK','ST_MAN');--例2SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE NOT job_id IN ('ST_CLERK','ST_MAN');----------------------------------------------------------------------------SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id NOT IN ('ST_CLERK','ST_MAN');--3)LIKE--例1:模糊查询SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id LIKE 'ST%';--通配符:%任意多个字符,_⼀个字符。

韩顺平oracle学习笔记

韩顺平oracle学习笔记

韩顺平oracle学习笔记第0讲:如何学习oracle一、如何学习oracleOracle目前最流行的数据库之一,功能强大,性能卓越。

学习oracle需要具备一定基础:1.学习过一门编程语言(如:java ,c)2.最好学习过一门别的数据库(sql server,mysql , access)教程推荐:oracle使用教程,深入浅出oracle记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理Oracle高级部分:oracle表的查询; oracle的函数; oracle数据库管理;oracle 的权角色; pl/sql 编程;索引,约束和事物。

期望目标:1 学会安装、启动、卸载oracle2 使用sql *plus工具3 掌握oracle用户管理4 学会在oracle中编写简单的select语句第1讲:基础语法内容介绍:1.为什么学习oracle2.介绍oracle及其公司的背景3.学会安装、启动、卸载oracle4.oracle开发工具5.Sql*plus的常用命令6.oracle用户管理一、主流数据库包括:●微软:sql server 和 access●瑞典:mysql AB公司●IBM公司:DB2●美国sybase公司:sybase●IBM公司:infromix●美国oracle公司:oracle(目前最流行的之一)二、oracle安装,启动及卸载1.系统要求:操作系统最好为windows2000内存最好在256M以上硬盘空间需要2G以上2.oracle安装会自动的生成sys和system两个用户说明:○1Sys用户是超级用户,具有最高权限,具有sysdba角色,create database 的权限,默认密码是manager○2System 用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是 change_on_install○3一般讲,对数据库维护,使用system用户登录就可以了3.启动oracle右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener4.卸载oracle1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products->Universal Installer 卸载oracle3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。

oracle 笔记

oracle 笔记

oracle 笔记摘要:一、Oracle 简介1.Oracle 的发展历程2.Oracle 的产品和服务二、Oracle 数据库的基本概念1.数据库管理系统2.关系型数据库3.Oracle 数据库的结构三、Oracle 数据库的安装与配置1.安装Oracle 数据库的前提条件2.安装过程及注意事项3.配置Oracle 数据库四、Oracle 数据库的管理1.数据库的启动与关闭2.数据库的备份与恢复3.用户与权限管理五、SQL 语言基础1.SQL 简介2.SELECT 查询语句3.INSERT、UPDATE 和DELETE 操作语句六、PL/SQL 编程1.PL/SQL简介2.存储过程与函数3.触发器与异常处理七、Oracle 数据库的应用1.Oracle 数据库在企业级应用中的优势2.Oracle 数据库在典型行业的应用案例正文:一、Oracle 简介Oracle(甲骨文)公司成立于1977 年,总部位于美国加州,是全球著名的数据库软件及解决方案供应商。

Oracle 的产品和服务涵盖了数据库、应用软件、中间件、云计算等领域,广泛应用于企业、政府、金融、医疗等各个行业。

二、Oracle 数据库的基本概念1.数据库管理系统:数据库管理系统(DBMS)是一种用于存储、检索和管理数据的计算机软件。

它提供了对数据的高效组织、存储、检索、更新和维护功能。

2.关系型数据库:关系型数据库是基于关系模型的数据库,采用表格形式存储数据,并通过SQL(结构化查询语言)进行操作。

Oracle 数据库是一种关系型数据库,具有强大的数据管理功能和高度的数据安全性。

3.Oracle 数据库的结构:Oracle 数据库由物理结构和逻辑结构组成。

物理结构包括数据库文件、数据块、表空间等;逻辑结构包括表、视图、索引等。

三、Oracle 数据库的安装与配置1.安装Oracle 数据库的前提条件:首先,需要确保计算机硬件满足Oracle 数据库的最低要求;其次,需要获取Oracle 数据库的安装文件,这些文件通常可以从Oracle 官网下载。

oracle第一章课堂笔记

oracle第一章课堂笔记
4)删除用户:drop user 用户名 cascade;
5)删除表空间:drop tablespace 表空间名
[include contents and datafiles]
oracle Sql查询
*********************
FROM itemfile;
主外键列:列 类型 primary key
列 类型 references 主表(主键)
主外键约束:
alter table 表名 add constraint 约束名 primary key(主键);
2)后台进程:服务器进程。每一个进程在数据库中执行不同的任务。
补充:SGA:由共享池、数据缓冲区、日志缓冲区三部分组成。
共享池:PL/SQL进行分析、编译的内存区域。
数据缓冲区:数据修改时,首先从数据文件取出,存储在数据缓冲区中;修改,插入的数据也存储在这里。最后被写入文件。
日志缓冲区:日志信息产生于日志缓冲区中。当日志达到一定数量时,由LGWR写入日志文件。
第一章 oracle体系结构
一、oracle服务器组成
1.oracle实例:包含内存结构和后台进程
1)内存结构:
(1)PGA:程序全局区。一个用户有一个。不共享。当用户结束回话时释放。(program global area)
(2)SGA:系统全局区。只有一个。共享。实例启动时创建。服务停掉时释放。(system global area)
alter table 表名 add constraint 约束名 foreign key(外键) references 主表(主键);
alter table 表名 drop constraint 约束名;

Oracle学习笔记

Oracle学习笔记

Oracle 入门学习笔记
4.3 分析函数 .................................................................................................... 17 第三章 分区表与锁 ................................................................................................ 17 1. 分区表的分类 ....................................................................................................... 17 2. 分区表的使用 ....................................................................................................... 17 3. 分区表的维护 ....................................................................................................... 20 4. 锁 ........................................................................................................................ 21 第四章 数据对象..............................................................................

oracle笔记第一讲

oracle笔记第一讲

Sys用户(超级用户权限最大)System用户(管理员用户,其权限仅次于sys)Scott用户(普通用户)10g(g是Grid的缩写):支持网格,支持自动管理9i与10g的区别:1.增加了网格计算2.安装简单3.增加了浏览器管理在默认的情况,scott用户是锁定状态(lock user)不能使用我们要启用他登录:如果你安装的时候忘记对某个用户解锁,比如scott,我们可以通过system来对该用户解锁解锁步骤:(1)先使用system登录(密码为oraclesls)(2)然后alter user account unlockOracle企业管理器:(一般情况下不启用该服务)登录方式:http://localhost:1158/emShow user:显示当前用户名是什么?conn[ect] 用户名/密码:该命令经常用于切换当前用户,因为建议使用普通用户conn user systemdisc[onnect]:该命令用于断开和oracle连接,但是不退出sqlplus窗口exit该命令用于断开和oracle连接,但是退出sqlplus窗口Passw[ord]该命令用于修改密码基本用法:Password 用户名:如果给自己修改密码,则可以不带用户名,如果给别人密码,则需要带用户名。

(前者是sys 用户或system用户)&:交互式命令Set linesize 140创建sql文件(编辑文本)edit d:/aa.sqlspool需求如下:把屏幕上显示的记录,保存到文件中Spool on基本用法:(1)spool 文件路径(spool d:/bak.sql)(2)执行操作(select * from emp;)(3)Spool off(1)set linesize字符数用于控制每行显示多少个字符,默认80字符基本用法:set linesize字符数(2)pagesize用于每页显示多少行,默认显示14行基本用法:set pagesize每页显示的行数oracle的用户管理需求:假设你是oracle管理员,当你一个同时入职,你需要给他分配一个帐号①建用户(需要有dba权限的用户)基本语法Create user用户名identified by密码举例创建一个普通用户xiaomingCreate user xiaoming identified by m123(oracle要求用户名密码不能以数字开头)为什么创建的用户无法登录?这是因为oracle刚刚创建的用户是没有任何权限需要管理员给其授权才能够登录Shunping create session②如何给用户分配权限grant create session to xiaoming;表空间:什么是表空间?就是表存在的空间,一个表空间是指向具体的数据文件得到③创建用户的细节方法create user sunlinsong identified by m123defaulttablespace userstemporarytablespace tempquota 3m on user;(说明:quota是限制配额的意思,也就是说此处创建的用户只拥有3m的空间)角色:1.预定义角色dba,connect,resource2.自定义角色Revoke:回收权限回收要用system身份登录回收Revoke connect from xiaohongRevoke resource from xiaohong删除用户:Drop user xiaohong [cascade] 注:cascade,级联Oracle里的表用number来表示创建表:Create table users (id number);方案(schema):需求:给xiaohong能够查看scott的emp表的权限(1)conn scott/tiger(2)赋权限grant select[update/delete/insert/all] on emp to xiaohong; 查询scott的emp表:select * from scott.emp;系统权限:with admin option对象权限:with grant optionProfile管理用户口令Create profile 文件名limit failed_login_attempts 3 password _lock_time 2; 分配文件alter user 用户名profile文件名如何给一个用户解锁Alter user 用户名account unlock终止口令需求:说一个帐号,最多10天,宽限期为2天,到时候必须重置密码基本用法:Create profile 文件名limit password_life_time 10 password_grace_time 2; 分配文件:Alter user 用户名profile 文件名解锁:Alter user 用户名account unlock口令历史:1)建立profileSql>create profile password_history limit password_life_time 10 password_grace_time2 password_reuse_time 1;Password_reuse_time //指定口令可重用时间即10天后就需要修改2)分配给某个用户alter user tea profile myprofile删除profiledrop profile profile文件名oracle启动流程----Windows下1)lsnrctl start(启动监听)2)oradim–startup-sid数据库实例名(orclsls)3)sqlplus sys/change_on_install as sysdba(以sysdba身份登录,在oracle10g后可以这样写)sqlplus /nologconn sys/change_on_install as sysdba3)startup普通用户与特权用户普通用户:connscott/tiger特权用户:conn scott/*** as sysdba-- 以sysdba身份登录(sys),不用验证密码密码恢复:小知识:查看Windows运行了多长时间用Systeminfo命令使用profile文件对口令进行管理需求:只允许某个用户最多尝试登录三次,如果三次没有成功,则锁定两天,两天后才能重新登录。

oracle课堂笔记

oracle课堂笔记

9.数据库的备份和恢复
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件
imp命令可以把dmp文件从本地导入到远处的数据库服务器中
10.表的创建
语法:
create table 表名(列名 数据类型 [default 默认值],列名2 数据类型,...);
修改表结构:
SERIALIZABLE:串行化。不允许任何并发事务问题。最严格的事务隔离性。
Oracle只支持READ COMMITTED和SERIALIZABLE。
默认为READ COMMITTED
设置一个事务的隔离级别
set transaction isolation level serializable
自动隐式提交事务:
执行一个DDL语句、执行一个DCL语句、从SQL*Plus正常退出(exit,quit)
自动隐式回滚事务:
强行退出SQL*Plus、客户端到服务器的连接异常中断MMIT;
回滚事务:ROLLBACK [TO 回滚点];
ALTER TABLE 表名
ADD [CONSTRAINT 约束名] 约束类型(要约束的列名);
ALTER TABLE 表名
ADD [CONSTRAINT 约束名]
FOREIGN KEY (要添加外键的列名)
REFERENCES 主表名(主表的某一列名);
设置事务回滚点:SAVEPOINT 回滚点;
5.事务的隔离级别
SQL标准定义了四种隔离级别:
READ UNCOMMITTED: 读未提交数据。脏读、不可重复读、幻读都可能发生。它的事务隔离性最低。
READ COMMITTED:读已提交数据。不允许脏读。

学习笔记之二Oracle

学习笔记之二Oracle

Oracle学习笔记Java相关课程系列笔记之二笔记内容说明Oracle数据库、SQL(薛海璐老师主讲,占笔记内容100%);目录一、数据库介绍 (1)1.1表是数据库中存储数据的基本单位 (1)1.2数据库标准语言 (1)1.3数据库(DB) (1)1.4数据库种类 (1)1.5数据库中如何定义表 (1)1.6 create database dbname的含义 (1)1.7安装DBMS (1)1.8宏观上是数据-->database (1)1.9远程登录:telnet IP地址 (1)1.10 TCP/IP通信协议 (2)1.11数据库建连接必须提供以下信息 (2)1.12一台机器可跑几个数据库,主要受内存大小影响 (2)1.13源表和结果集 (2)1.14几个简单命令 (2)1.15 tarena给jsd1304授权 (2)1.16课程中使用的5个表 (3)二、select from语句 (5)2.1 select语句功能 (5)2.2 select语句基本语法 (5)2.3列别名 (5)2.4算术表达式 (5)2.5空值null的处理 (5)2.6 nvl(p1,p2)函数 (5)2.7拼接运算符|| (6)2.8文字字符串 (6)2.9消除重复行 (6)2.10其他注意事项 (6)三、SQL语句的处理过程 (7)3.1 SQL语句处理过程 (7)3.2处理一条select语句 (7)四、where子句 (8)4.1 where子句后面可以跟什么 (8)4.2语法和执行顺序 (8)4.3字符串是大小写敏感的,在比较时严格区分大小写 (8)4.4 where子句后面可以跟多个条件表达式 (8)4.5 between and运算符 (8)4.6 in运算符(多值运算符) (8)4.7 like运算符 (9)4.8 is null运算符 (9)4.9比较和逻辑运算符(单值运算符) (9)4.10多值运算符all、any (9)4.11运算符的否定形式 (9)1五、order by子句 (10)5.1语法和执行顺序 (10)5.2升降序 (10)5.3 null值在排序中显示 (10)5.4 order by后面可以跟什么 (10)5.5多列排序 (10)六、单行函数的使用 (11)6.1数值类型 (11)6.2日期类型 (11)6.3字符类型 (13)6.4转换函数 (14)6.5其他注意事项 (14)七、SQL语句中的分支 (15)7.1分支表达式 (15)7.2分支函数 (15)八、组函数 (16)8.1报表统计常用 (16)8.2缺省情况组函数处理什么值 (16)8.3当组函数要处理的所有值都为null时 (16)8.4行级信息和组级信息 (16)九、group by子句 (17)9.1语法和执行顺序 (17)9.2分组过程 (17)9.3常见错误 (17)9.4多列分组 (17)十、having子句 (18)10.1语法和执行顺序 (18)10.2执行过程 (18)10.3 where和having区别 (18)十一、非关联子查询 (19)11.1语法 (19)11.2子查询的执行过程 (19)11.3常见错误 (19)11.4子查询与空值 (19)11.5多列子查询 (20)十二、关联子查询 (21)12.1语法 (21)12.2执行过程 (21)12.3 exists (21)12.4 exists执行过程 (21)12.5 not exists (22)12.6 not exists执行过程 (22)12.7 in和exists比较 (22)十三、多表查询 (23)13.1按范式要求设计表结构 (23)213.4内连接 (23)13.5外连接 (25)13.6非等值连接 (27)13.7表连接总结 (27)十四、集合 (28)14.1表连接主要解决的问题 (28)14.2集合运算 (28)14.3集合运算符 (28)14.4子查询、连接、集合总结 (29)十五、排名分页问题 (30)15.1什么是rownum (30)15.2 where rownum<=5的执行过程 (30)15.3 where rownum=5的执行过程 (30)十六、约束constraint (31)16.1约束的类型 (31)16.2 primary key:主键约束 (31)16.3 not null:非空约束 (31)16.4 unique key:唯一建约束 (31)16.5 references foreign key:外键约束 (32)16.6 check:检查约束 (34)十七、事务 (35)17.1 transaction (35)17.2定义 (35)17.3事务的特性:ACID (35)17.4事务的隔离级别 (35)17.5数据库开发的关键挑战 (35)17.6锁的概念 (36)17.7 Oracle的锁机制 (36)17.8事务不提交的后果 (36)17.9回滚事务rollback (36)17.10保留点savepoint (36)十八、数据库对象:视图view (38)18.1带子查询的create table (38)18.2带子查询的insert (38)18.3定义缺省值:default (38)18.4 视图view (39)18.5视图的应用场景 (39)18.6视图的分类 (40)18.7视图的维护 (40)十九、数据库对象:索引index (42)19.1创建index (42)19.2扫描表的方式 (42)19.3索引的结构 (42)319.6索引的类型 (43)19.7哪些写法会导致索引用不了 (44)二十、数据库对象:序列号sequence (45)20.1什么是sequence (45)20.2创建sequence (45)20.3缺省是nocycle(不循环) (45)20.4缺省cache 20 (45)二十一、其他注意事项 (47)21.1删除表,删除列,删除列中的值 (47)21.2多对多关系的实现 (47)21.3一对多(两张表) (47)21.4一对一 (47)21.5数据库对象 (47)12.6缺省(默认)总结: (47)4一、数据库介绍1.1表是数据库中存储数据的基本单位1.2数据库标准语言结构化查询语言SQL:Structureed Query Language1)数据定义语言DDL:Data Definition Languagecreate table列表结构、alter table修改列、drop table删除列2)数据操作语言DML:Data Manipulation Languageinsert增加一行,某些列插入值、update修改一行,这一行的某些列、delete删除一行,跟列无关3)事务控制语言TCL:Transaction Conrtol Languagecommit确认,提交(入库)、rollback取消,回滚,撤销4)数据查询语言DQL:Data Query Languageselect语句5)数据控制语言DCL:Data Control Language系统为多用户系统因此有隐私权限问题:grant 授权、revoke回收权限1.3数据库(DB)DATABASE 关系数据库使用关系或二维表存储信息。

韩顺平老师oracle视频教程听课笔记

韩顺平老师oracle视频教程听课笔记

韩顺平老师 oracle教程笔记1.Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)system用户是管理操作员,权限也很大。

具有sysoper角色,没有create database的权限,默认的密码是manager (3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

2.Oracle的基本使用--基本命令sql*plus的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 2.disc[onnect]说明: 该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。

4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。

案例: sql>spool d:\b.sql 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。

培训机构的Oracle学习笔记1

培训机构的Oracle学习笔记1

1、创建学生表-查看表结构-主键create table stu(stid varchar2(10),stuname varchar2(20),stupwd varchar2(10),stusex varchar2(2),stuage number,stugrade varchar2(10),birthday date);2、查看表结构,查看表中有多少个字段,每个字段的数据类型,以及其他一些信息desc stu;3、定义学生表,设置列是否允许为空,和stuid为主键,主键对列的数据类型和是否自增不做要求,仅仅是主键所表示的列中不能有重复的值create table students(stuid varchar2(10) primary key not null,stuname varchar2(10) not null,stupwd varchar2(10) not null,stusex varchar2(2) not null);4、主键也是对象,在oracle中,如果给某个字段设置为主键,那么oracle会产生一个对象,该对象即为主键对象,此对象与该列关联5、如果要给表中所有的字段赋值,可省略表明后面括号中的字段,但在values中给定的值必须和表的字段个数与顺序一直,否则会抛出没有足够的值异常SQL> create table stu(stuid,stuname,stupwd,stusex,stuage,stugrade,brithday)第二节创建新表-删除表-修改表-增加约束-设置外键-主外键级联删除------------------------------------------------------------------------------------------------创建表create,根据结果集创建表,注意:原表中的约束无法copy到新表,比如:主键约束1、根据原表的记录集合创建新表(复制表)create table emp2 as select * from emp;2、根据原表中的部分字段创建新表(复制部分结构)create table emp2 as select 字段名1,字段名2,字段名3 from emp;3、根据原表创建新表(复制部分内容)create table emp4 as select * from emp where deptno=30;4、根据原表创建新表,但不复制内容create table emp5 as select * from emp where 1=2;5、根据原表创建新表,新表字段名自定义create table emp6(员工编号,员工姓名,员工薪水,员工部门) as select empno,ename,sal,deptno from emp;------------------------------------------------------------------------------------------------删除表drop1、drop table emp6;------------------------------------------------------------------------------------------------修改表alter1、增加列(字段)add(新字段名类型(长度))alter table 表名(emp5) add(age number);2、修改列的类型和长度modify(字段名新类型和长度)alter table 表名(emp5) modify(age varchar2(10));3、修改列名rename column 原列名to 新列名alter table emp5 rename column age to sex;4、删除列drop column 列名alter table emp5 drop column sex;5、增加约束(主键约束)add constraint 主键名称primary key(列名)alter table emp5 add constraint p_emp primary key(empno);6、设置外键:(保证系统数据参照完整性)注意:外键的值在主键中必须存在,主键的值在外建中不一定存在,如果主键引用到了外键的值,则不能删除该条记录alter table score add constraint p_emp foreign key(stuid) references student(sid);7、主外键级联删除on delete cascade,目的是用户保证数据参照完整性alter table score add constraint fk_score foreign key(stuid) references student(sid) on delete cascade;8、删除约束删除外键alter table score drop constraint fk_score;删除主键,如果有外键引用到这个主键,可以先删除外键,再删除主键或者直接删除主键,采用级联删除cascadealter table student drop constraint pk_stu cascade;9、修改表名:注意,如果要修改的表的主键约束了另外一张表的外键,那么必须先删除外键约束,再修改表,修改后重新建立外键约束rename 原表名to 新表名运算符+ - * / ()运算符-null值-定义别名-字段的连接-消除重复数据1、得到新的结果,但是结果运算来源于表字段,注意优先级“()”优先级最高select empno,ename,(sal+100)*0.1+(sal+100) from emp;2、注意null值,查询所有没有薪水的员工。

oracle精品笔记(53节完整版)名师手书

oracle精品笔记(53节完整版)名师手书

尚学堂马士兵老师oracle笔记(2008-10-30 10:17:39)第一课:客户端1. Sql Plus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。

2. 从开始程序运行:sqlplus,是图形版的sqlplus.3. http://localhost:5560/isqlplusToad:管理,PlSql Developer:第二课:更改用户1. sqlplus sys/密码as sysdba2. alter user scott account unlock;(解锁账号)第三课:table structure(系统自带的表有emp、salgrade、dept、bonus、dual)1. 描述某一张表:desc 表名2. select * from 表名第四课:select 语句:1.计算数据可以用空表:比如:.select 2*3 from dual2.select ename,sal*12 annual_sal from emp;与select ename,sal*12 "annual sal" from emp;区别:加双引号保持原大小写,不加全变大写。

任何含有空值的数学表达式结果都为空值。

3. select ename || ‘abcd’|| 用来连接两个字符串如果连接字符串中含有单引号,用两个单引号代替一个单引号。

第五课:distinctselect deptno from emp;select distinct deptno from emp;select distinct deptno ,job from emp去掉deptno,job两者组合的重复。

更多的项,就是这么多项的组合的不重复组合。

第六课:Whereselect * from emp where deptno =10;select * from emp where deptno <>10;不等于10select * from emp where ename ='bike';select ename,sal from emp where sal between 800 and 1500 (>=800 and <=1500)空值处理:select ename,sal,comm from emp where comm is (not) null;select ename,sal,comm from emp where ename ( not)in ('smith','king','abc');模糊查询like :%代表任意数量的任意字符_代表一个任意字符select ename from emp where ename like '_A%';如果要查询含有%的,要用转义字符\转义字符可以自定义:escape '自定义的转义字符' 比如:select ename from emp where ename like '%$a%' escape '$';第七课: order byselect * from dept;默认按升序(asc)排列,要按降序(desc)用如下语句:select * from dept order by dept desc;select ename,sal,deptno from emp order by deptno asc,ename desc;第八课: sql function1:select ename,sal*12 annual_sal from empwhere ename not like '_A%' and sal>800order by sal desc;select lower(ename) from emp;select ename from empwhere lower(ename) like '_a%';等同于select ename from emp where ename like '_a%' or ename like '_A%';select substr(ename,2,3) from emp;从第二个字符开始截,一共截三个字符.select chr(65) from dual 结果为:Aselect ascii('a') from dual 结果为:65select round(23.652,1) from dual; 结果为: 23.7(第二个参数为指定四舍五入到哪位数)select round(23.652,-1) from dual; 20select to_char(sal,'$99,999,999') from emp;(用9就可以在没有数字的地方不显示,如果用0的话一定会用0填充满)select to_char(sal,'L99_999_999') from emp; L:代表本地符号这个需要掌握牢:select hiredate from emp;显示为:BIRTHDATE----------------17-12月-80----------------改为:select to_char(hiredate,'YYYY-MM-DD HH:MI:SS') from emp;显示:BIRTHDATE-------------------1980-12-17 12:00:00-------------------select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //也可以改为:HH12TO_CHAR(SYSDATE,'YY-------------------2007-02-25 14:46:14to_date函数:select ename,hiredate from emp where hiredate > to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');如果直接写birthdate>'1981-2-20 12:34:56'会出现格式不匹配,因为表中的格式为: DD-MM月-YY.select sal from emp where sal>888.88 无错.但select sal from emp where sal>$1,250,00;会出现无效字符错误.改为:select sal from emp where sal>to_number('$1.250.00','$9,999,99');把空值改为0select ename,sal*12+nvl(comm,0) from emp;作用:把comm为空的地方用0代替,这样可以防止comm为空时,sal*12相加也为空的情况.第九课: Group function 组函数(即从多行中得到一个输出)牢记组函数:max(), min(), avg(), sum(), count()select to_char(avg(sal),'99999999,99') from emp;select round(avg(sal),2) from emp;结果:2073.21select count(*) from emp where deptno=10;select count(ename) from emp where deptno=10; count某个字段,如果这个字段不为空就算一个.select count(distinct deptno) from emp;select sum(sal) from emp;第十课: Group by语句注意:count() 是计数不是空值的数量需求:现在想求每个部门的平均薪水.select avg(sal) from emp group by deptno;select deptno, avg(sal) from emp group by deptno;select deptno,job,max(sal) from emp group by deptno,job;求薪水值最高的人的名字.select ename,max(sal) from emp;出错,因为max只有一个值,但等于max值的人可能好几个,不能匹配.应如下求:select ename from emp where sal=(select max(sal) from emp);Group by语句应注意,出现在select中的字段,如果没出现在组函数中,必须出现在Group by语句中.第十一课: Having 对分组结果筛选Where是对单条纪录进行筛选,Having是对分组结果进行筛选.select avg(sal),deptno from empgroup by deptnohaving avg(sal)>2000;查询工资大于1200雇员,按部门编号进行分组,分组后平均薪水大于1500,按工薪倒充排列.select avg(sal) from empwhere sal>1200group by deptnohaving avg(sal)>1500order by avg(sal) desc;第十二课:子查询谁挣的钱最多(谁:这个人的名字, 钱最多)select 语句中嵌套select 语句,可以在where,from后.问那些人工资,在平均工资之上.select ename,sal from emp where sal>(select avg(sal) from emp);查找每个部门挣钱最多的那个人的名字.select ename ,deptno from emp where sal in (select max(sal) from ename group by deptno) 查询会多值.应该如下:把select max(sal),deptno from emp group by deptno;当成一个表.语句如下:select ename, sal from emp join(select max(sal) max_sal,deptno from emp groupby deptno) t on (emp.sal=t.max_sal and emp.deptno=t.deptno);每个部门的平均薪水的等级.分析:首先求平均薪水(当成表),把平均薪水和另外一张表连接.第十四课:self_table_connection把某个人的名字以及他的经理人的名字求出来(经理人及这个人在表中同处一行)分析:首先求出这个人的名字,取他的编号,然后从另一张表与其相对应编号,然后找到经理的名字.select e1.ename ,e2.ename from emp e1,emp e2 where e1.mgr= e2.empno.empno编号和MGR都是编号.第十15课: SQL1999_table_connectionsselect ename, dname,grade from emp e,dept d, salgrade swhere e.deptno = d.deptno and e.sal between s.losal and s.hisal andjob <> 'CLERK'有没有办法把过滤条件和连接条件分开来? 出于这样考虑,Sql1999标准推出来了.有许多人用的还是旧的语法,所以得看懂这种语句.select ename,dname from emp,dept;(旧标准).select ename,dname from emp cross join dept;(1999标准)select ename,dname from emp,dept where emp.deptno=dept.deptno (旧)select ename,dname from emp join dept on(emp.deptno = dept.deptno); 1999标准.没有Where语句.select ename,dname from emp join dept using(deptno);等同上句,但不推荐使用.select ename,grade from emp e join salgrade s on(e.sal between s.losal and s.hisal);join 连接语句, on过滤条件。

oracle笔记总结很全很仔细

oracle笔记总结很全很仔细

玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装连接命令(1)conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/s ysoper]例如:conn system /manager当用户特权用户连接时,必须带上(例如sys的登录)as sysdba 或是as sysoper显示当前用户show user;(2)disc[onnect]说明:该命令用来断开与当前数据库的连接(3)passw[ord]说明:该命令用于修改用户的密码,如果想修改其他用户的密码,需要用sys/system登录(4)show user说明:显示当前用户名(5)exit说明:该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令(1)start和@说明:运行sql脚本案例:sql>@ d:\a.sql 或者sql>start d:\a.sql(2)edit说明:该命令可以编辑指定的sql脚本案例:sql>edit d:\a.sql(3)spool说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去案例:sql>spool d:\b.sql 并输入sql>spool off显示和设置环境变量概述:可以用来控制输出的格式,set show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本(1)linesize说明:设置显示行的宽度,默认是80个字符Sql>show linesizeSql>set linesize 90(2)pagesize说明:设置每页显示的行数目,默认是14,用法和linesize一样至于其它环境参数的使用也是大同小异创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般具有dba (数据库管理员)的权限才能使用案例:create user xiaoming identified by m123;给修改用户密码概述:如果给自己修改密码可以直接使用Sql>password 用户名如果给别人修改密码则需要具有dba的权限,或者拥有alter user的系统权限Sql>alter user 用户名identified by 新密码删除用户概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user的权限。

orcale上课笔记

orcale上课笔记

7.Oracle 与 SQL Server 的区别
在 oracle 中不用 varchar(20),而是使用 varchar2(20)
6
@FloraCHY
在 oracle 中不用 datetime,而是使用 date
在 oracle 中不能直接接函数,也没有 getdate()
Oracle 日期格式与 SQL Server 不一样。Oracle 中用 date,SQL Server 中用 datetime
11.1 增加数据
//向表中插入数据 insert into chen(id,myname,age) values(1,'chen',22); oracle
13
@FloraCHY
SQL Server
11.2 查询语句
14
@FloraCHY
11.3 修改数据
oracle
SQL Server
11.4 删除数据
12.4 连接操作符
18
@FloraCHY
12.5 操作符的优先级
13.SQL 函数
13.1 单行函数分类
13.2 日期函数
19
@FloraCHY
20
@FloraCHY
21
@FloraCHY
22
@FloraCHY
23
@FloraCHY
13.3 字符函数
24
@FloraCHY
25
@FloraCHY
两条 sql(一条 update,一条 insert)实现将新表的数据与老表保持同步
不带 where
43
@FloraCHY
---------------------------------------------------------------------------------------------------------------------resource to bbb; 限包含在 CONNECT 角色中

Oracle_笔记

Oracle_笔记

Oracle 笔记目录绪论............................................................................................................................................................. 错误!未定义书签。

---------------------------day 01---------------------------------1.概念导论-- 1)什么是数据库-- 有组织和结构存储数据。

可以存储--字符、字节、图形、图像等类型数据-- DB(数据库):数据集合-- DBMS(数据库管理系统):对数据集合进行管理和操作的软件-- --Oracle-- --DB2-- --MySQL-- --SQLSERVER-- 2)为什么使用数据库-- 程序在运行时,对数据需要以下几点服务:-- --持久存储(文件或数据库)-- --高可靠性-- --存取方便-- --大数据量-- 3)如何使用数据库-- a.Oracle--Oracle甲骨文公司-->Oracle数据库--Larry Ellison Oracle之父CEO--1970,IBM一个研究员发布一篇数据关系模型文章。

--1977,Larry Ellison同另外两个人一起创办了公司***实验室(32岁)--1979公司改名,最终在1983年改成Oracle.--第一个员工是SCOTT/TIGER---- *b.操作语句SQL--Oracle数据库通过SQL命令操作数据。

--SQL有以下几种类型:-- --DML(Data Manipulation Language):数据操作语句。

例如存取数据。

-- --DDL(Data Definition Language):数据定义语句。

例如定义存储结构-- --DCL(Data Control Language):数据控制语句。

Oracle学习笔记

Oracle学习笔记

断壁残垣---Oracle学习笔记Emitter第一章关系数据库用户解锁:使用system用户登录Sql语句:SELECT username,account_status FROM dba_users;ALTER USER scott ACCOUNT_UNLOCK;//解锁ALTER UESR scott IDENTIFIED BY tiger;//设定密码CONNECT scott/tiger;SELECT * FROM emp;第二章体系结构概述体系结构Oracle数据库从存储结构上可以分为物理存储结构与逻辑存储结构,从实例结构上可以分为内存结构与进程结构。

Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。

一般,Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。

数据文件数据文件(Data File)是指存储数据库数据的文件。

数据库中的所有数据最终都保存在数据文件中,例如,表中的记录和索引等。

如果数据文件中的某些数据被频繁访问,则这些数据会被存储在内存的缓冲区中。

读取数据时,Oracle系统会首先从内存的数据缓冲区中查找相关数据信息,如果找不到,则从数据库文件中把数据读取出来,存放到内存的数据缓冲区中,供查询使用;存储数据时,修改后的数据信息,也是先存放在内存的数据缓冲区中,在满足写入条件(例如执行提交操作)时,由Oracle的后台进程DBWn将数据写入数据文件。

SELECT file_name FROM dba_data_files;控制文件控制文件(Control File)是一个很小的二进制文件,用于描述和维护数据库的物理结构。

在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。

Oracle数据库在启动时需要访问控制文件,在数据库的使用过程中,数据库需要不断更新控制文件,由此可见,一旦控制文件受损,那么数据库将无法正常工作。

韩顺平 oracle视频教程上课笔记

韩顺平 oracle视频教程上课笔记

一、oracle 常用sql plus 命令(1)conn[ect] 用户名/密码@网络[as sysdba /sysoper](2)一般情况下使用普通用户登录,除非需要更高权限时,在切换高级用户;(3)disc[onnect] 断开连接,又不退出当前窗口;(4)quit/exit 完全退出;(5)show user 显示当前用户;(6)管理员修改用户密码:alter user xxxx identified by yyyy;(7)Passw[ord]pass 用户名;给自己修改密码,不需要带用户名;给别的用户修改,需要带用户名;创建临时表空间create temporary tablespaceuser_temptempfile 'd:\user_temp.dbf'size 50mautoextend onnext 50m maxsize 1024mextent management local;创建表空间createtablespaceuser_tsdatafile 'd:\user_ts.dbf'size 50mautoextend onnext 50m maxsize 1024mextent management local;创建用户create user test38 identified by test38default tablespaceuser_tstemporary tablespaceuser_tempquota 5m on user_ts;给用户赋予权力grantdba to test38;给scott用户解锁alter user scott account unlock;用system 用户给scott修改密码Alter user scott identified by tiger;不常用的命令:linesize一行能显示多少个字符就换行了默认就只有80字符,所以会出现一个记录一行没有显示完全就换行了。

Oracle基础知识学习笔记(自己整理的)

Oracle基础知识学习笔记(自己整理的)

基本概念:数据:描述事物的符号;数据库:数据存放的地方,数据库是由数据和数据库对象组成的;数据库管理系统(DBMS):用于管理数据的计算机软件,使用户能方便的定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和数据库恢复。

关系数据库(RDB):基于关系模型的数据库。

ORACLE数据库的体系结构是由一个实例和若干个数据库文件组成。

SQL语句分为:数据定义语句(DDL):create、drop、alter、truncate(不能回滚)数据操作语句(DML):insert、select、update、delete、merge数据控制语句(DCL):grant、revoke事物控制语句:commit、rollback、savepointORACLE数据库的核心组件:数据字典(DD)动态性能表(DPT)触发器PL/SQL包用户与角色:角色是一些权限的集合,分为dba、connect、resource、exp_full_database、imp_full_database。

用户分为sys、system。

用户权限包括两种:是指执行某一SQL语句或访问另一用户对象的权限。

它分为系统权限和对象权限。

(Dba_roles/dba_roles_privs/dba_sys_privs/dba_tab_pri vs/dba_col_privs/role_role_privs/role_sys_privs/role_ta b_privs)创建用户:Create user username identified by password;修改用户:Alter user username identified by newpassword; 创建角色:Create role rolename identified by password;修改角色:Alter role rolename identified by new password; ORACLE数据库的物理结构:1.数据文件:用于存放所有的数据库数据,若干个数据文件组成表空间;它包括系统数据(数据字典)、用户数据(表、索引、簇等)、undo数据等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.NVL 函数
select case NVL(mission_pct,0)
When 0 THEN -1
else mission_pct
END "AA"
FROM employees
2 。

TO_CHAR
The following are number examples for the to_char function. to_char(1210.73, '9999.9')would return '1210.7'
to_char(1210.73, '9,999.99')would return '1,210.73'
to_char(1210.73, '$9,999.00')would return '$1,210.73'
to_char(21, '000099')would return '000021'
日期:
2.Round 四舍五入
3.To_date
前几天做了些关于oracle的数据库知识,总结了一些,网上查了一些,传上来,分享一下24小时的形式显示出来要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
to_date() function
select to_date('2008-03-01 12:11:20','yyyy-MM-dd HH24:mi:ss') from dual;
1.日期格式参数含义说明
D 一周中的星期几
DAY 天的名字,使用空格填充到9个字符
DD 月中的第几天
DDD 年中的第几天
DY 天的简写名
IW ISO标准的年中的第几周
IYYY ISO标准的四位年份
YYYY 四位年份
YYY,YY,Y 年份的最后三位,两位,一位
HH 小时,按12小时计
HH24 小时,按24小时计
MI 分
SS 秒
MM 月
5 TO_NUMBER
使用TO_NUMBER函数将字符转换为数字
TO_NUMBER(char[, '格式'])
数字格式格式
9 代表一个数字
0 强制显示0
$ 放置一个$符
L 放置一个浮动本地货币符
. 显示小数点
, 显示千位指示符
1. 人员总工资薪资×13 + 佣金
1.每个人佣金调整为0.15
显示部门员工和他们的部门经理的名字
SELECT st_name "Employee", w.employee_id "EMP#", st_name "Manager", m.employee_id "Mgr#"
FROM employees w join employees m
ON (w.manager_id = m.employee_id);
显示经理之前聘用的员工。

显示部门,经理,员工
SELECT st_name, w.hire_date, st_name, m.hire_date FROM employees w, employees m
WHERE w.manager_id = m.employee_id
AND w.hire_date < m.hire_date;
显示部门的平均年薪并且显示名称地点。

使用round 函数
SELECT d.department_name "Name", d.location_id "Location", COUNT(*) "Number of People",
ROUND(AVG(salary),2) "Salary"
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY d.department_name, d.location_id;
显示1995,1996,1997,1998 聘用员工的总数
SELECT COUNT(*) total,
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1995,1,0))"1995", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1996,1,0))"1996", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1997,1,0))"1997", SUM(DECODE(TO_CHAR(hire_date, 'YYYY'),1998,1,0))"1998" FROM employees;
显示King部门下的(lastname)的员工平均工资
SELECT last_name, salary
FROM employees
WHERE manager_id = (SELECT employee_id
FROM employees
WHERE last_name = 'King');
显示平均工资最高的部门
SELECT department_id, MIN(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) = (SELECT MAX(AVG(salary))
FROM employees
GROUP BY department_id);
显示员工数最多的部门
SELECT d.department_id, d.department_name, COUNT(*) FROM departments d, employees e
WHERE d.department_id = e.department_id
GROUP BY d.department_id, d.department_name HAVING COUNT(*) = (SELECT MAX(COUNT(*))
FROM employees
GROUP BY department_id);
Rollback
SavePoint
Commit
把所有人的佣金提高一倍
Create Table
create table v as
SELECT employee_id, last_name, salary, commission_pct FROM employees
WHERE job_id LIKE '%REP%';
Insert into v
INSERT INTO reps_table (id, name, salary, commission_pct) SELECT employee_id, last_name, salary, commission_pct FROM employees
WHERE job_id LIKE '%REP%';
显示行政部的所有人员Executive
SELECT department_id, last_name, job_id
FROM employees
WHERE department_id IN (SELECT department_id FROM departments
WHERE department_name = 'Executive');
列出首字母是J K LM的员工名字substr last_nane
SELECT TO_CHAR(hire_date, 'Day')
FROM employees
显示聘用人数最多的是星期几(TO_CHAR(hire_date, 'DAY'))
SELECT last_name, TO_CHAR(hire_date, 'DAY') day
FROM employees
WHERE TO_CHAR(hire_date, 'Day') =
(SELECT TO_CHAR(hire_date, 'Day')
FROM employees
GROUP BY TO_CHAR(hire_date, 'Day')
HAVING COUNT(*) = (SELECT MAX(COUNT(*))
FROM employees
GROUP BY TO_CHAR(hire_date, 'Day')));
列出公司的员工进入公司那天的生日,(员工日历)按照日期大小排序。

TO_CAHR(hire_date,’DDD’)
SELECT last_name, TO_CHAR(hire_date, 'Month DD') BIRTHDAY FROM employees
ORDER BY TO_CHAR(hire_date, 'DDD');。

相关文档
最新文档