Oracle学习笔记(一)
来源:互联网 发布:淘宝假冒申诉 编辑:程序博客网 时间:2024/06/06 02:54
一、关于Oracle
Oracle 安装 1 安装目标位置不能有空格 汉字 2 window7及以上版本一定要调整兼容性 3 双显卡尤其是N卡用户,一定要使用集成显卡安装 A卡 AMD 图片 UI N卡 昂达 游戏性 4 口令: 不要使用数字开头数据库 DataBase DBMS(DATABASE MANAGEMENT SYSTEM) 数据库管理信息系统 RDBMS (Relation DBMS) 关系型数据库管理信息系统 关系型: 基于关系模型发展起来 表格 依据一定的逻辑方式来存储数据的 行和列Oracle 10g 8i 9i 10g 11g 12g/12c2 连接Oracle sqlplus 进入Oracle的命令 Oracle的服务 (运行中使用 services.msc 命令) OracleOraDb10g_home1TNSListener * 允许外部应用程序访问Oracle OracleServiceORCL * Oracle中某个数据库的服务实例 oracle实例 = 数据库进程 + SGA(系统共享区内存)3 Oracle中的用户 用户: 存储数据的集合 schema 模式 角色: 多个权限的集合 SYSTEM DBA角色 SYS SYSDBA 权限 (最广的系统权限) SCOTT 普通用户4 Oracle中的常用命令 show user 显示当前连接的用户 host cls 清理屏幕 clear screen 清理屏幕 connect 或者 conn 连接其他用户 change *用来修改上一个出错的SQL语句 change /出错的内容/修改后的内容 比如: SQL> select table_names from user_tables; select table_names from user_tables * 第 1 行出现错误: ORA-00904: "TABLE_NAMES": 标识符无效 SQL> change /_names/_name 1* select table_name from user_tables SQL> / * edit 或者 ed 命令 * 用来修改上一个出错的SQL * start 或者@ 用来执行一个SQL文件脚本 * spool "文件路径" spool off; * spool表示将接下来在CMD中显示的内容, 原封不动写入到文件中,一直到 spool off结束
二、表结构与字段介绍
表: 有行和列组成的一个概念 按照一定的数据来存储数据,是一个存储数据的集合记录: 把表中的每一行数据称作字段字段(属性): 表的每一个列可以看作是记录的一个属性存储数据: 最小单位: 数据块 2KB大小的内存空间 || 盘区 (若干个数据块组成一个盘区) || 段 (若干个盘区,组成一个段)|| 数据文件 (通常是 .dbf 文件)创建表: create table 表名( 列名1 数据类型, 列名2 数据类型, ... 列名x 数据类型 ); * 第一范式: 同一张表中不能出现重复的列名 * 列与列之间需要用逗号隔开 最后一个列不需要写逗号 Exec: 创建学生表Student: 学号sno number 姓名sname varchar2(20) 性别gender 手机号phone----------------------------------------------------数据类型: 字符类型: char 固定长度类型 最长2000B ANSI 一个汉字两个字节 nchar 固定长度类型 2000B 本地国家字符集 一个汉字一个字节 * 带n的类型是本地国际字符集的编码 一个汉字一个字节* 固定长度:如果数据不超出最大长度,则开辟固定的内存大小 varchar 可变长度类型 标准SQL中的类型 varchar2 可变长度类型 Oracle支持 nvarchar 可变长度类型 Oracle不支持 nvarchar2 可变长度类型 Oracle支持 * 可变长度是根据数据所占有的内存空间的实际消耗来开辟 ** 固定长度与可变长度的比较: 可变长度更节省资源 固定长度效率更高 "小明你好" JAVA实际需要 数据库中开辟 char(20) : 8B 20B (12B大小的空格) nchar(3) : 8B × varchar(20): 8B 8B nvarchar2(4): 8B 4B 数值类型: number number(p) :p指定的位数都是整数 number(p,n) p: 1~38n: -84~127 p :第一个参数指定总长度 当n>0时 :允许出现的小数位数 整数位= p-n 当n<0时 :小数点向左数n的绝对值位做四舍五入精确 number(7,-2) number(7,-8) 1234567 → 1234600 0 12345.6000343 number(5,1) × 9999.949999 number(7,2) 12345.6 日期类型: date : 年月日 小时 分钟 秒 (不带有毫秒数) 当前系统时间: sysdate timestamp : 带有毫秒数的日期类型 当前系统时间: systimestampdual : 测试用表 伪表 万能表 select sysdate from dual; -- 查看当前的系统时间 select systimestamp from dual; -- 带有毫秒数long : 长文本 2GB 过时 带有long的表不允许导入导出 不允许给long类型的类添加索引lob :类型来替代long 4GB clob blob nclob性别用那种类型来存储? number 0 1 char varchar2-------------------------------------------------长文本如何存储? 比如一张报纸内容 写成HTML文件 .avi三、Oracle中的用户权限
1 Oracle中的SCOTT用户: * 此用户默认上锁 2 解锁用户: 1 首先要连接到一个有权限的用户 conn system/etoak 2 在具有一定的权限用户下, 才能去修改其他用户的属性 alter user 用户名 account unlock;3 创建用户: 1 首先要连接到一个有权限的用户 conn system/etoak 2 使用创建用户的命令 create user 用户名 identified by 口令;4 修改用户密码: 1 首先要连接到一个有权限的用户 conn system/etoak 2 修改用户的密码 alter user 用户名 identified by 口令;-----------------------------------------------------权限:系统权限: 能够操作用户对象自身的权限 授权: grant 权限 to 用户; 1 连接一个有权限授权的用户 conn system/etoak 2 授权操作 grant create session to et1505; 都有哪些系统权限? create session :允许访问用户 connect :允许连接用户 create table :创建表 create view :创建视图 resource :占用资源 ...... 允许用户能够创建表: grant create session,create table,resource to 用户; 授权某个用户时,可以允许用户将权限再次授权给别人: with admin option 比如: 首先将create session 权限授权给et1505, 并且允许他给et1504 conn system/etoak grant create session to et1505 with admin option; conn et1505/etoak grant create session to et1504; 撤销: revoke 权限 from 用户; 如果允许et1505将权限给et1504,并且授权成功, 此时将et1505的create session权限撤掉, 那么et1504是否依然能够访问到? conn system/etoak grant create session to et1505 with admin option; conn et1505/etoak grant create session to et1504; conn system/etoak revoke create session from et1505; conn et1504/et1504 √用户权限: 能够操作用户中资源的权限 * 用户权限一定会出现on关键字 授权: grant 权限 on 资源 to 用户; 资源: 表(table) 视图(view) 序列(sequence) 过程(procedure) 权限: insert 新增 update 更新 delete 删除 select 查询 execute 执行 将scott用户中的emp表的查询权限授权给et1505; 第一种方式: 将et1505提升成DBA 第二种方式: * 连接上有权限的用户 conn system/etoak * 给et1505用户scott下的emp表的查询权限 * 也可以直接透过拥有资源的对象来授权 conn scott/tigergrant select on emp to et1505; 用户权限允许将权限授权其他用户: with grant option conn scott/tiger grant select on emp to et1505 with grant option; conn et105/etoak grant select on scott.emp to et1504; revoke select on scott.emp from et1505; 问 et1504是否能够查询到scott的emp表中数据? 撤销: revoke 权限 on 资源 from 用户;系统权限和用户权限的区别: 1 用户权限一定带有on,系统权限不带有on 2 系统权限通过with admin option 再次授权, 用户权限通过with grant option 再次授权给其他用户四、复制表的语句
****跨用户的复制表必须保重能够访问其他用户资源1 跨用户复制表,并且复制表中的数据create table emp as select * from scott.emp;2 本用户内复制表结构 不复制数据create table emp2 as select * from emp where 1=3;3 复制指定的某几个列create table emp3 as select empno,ename from emp;4 复制表,并且更改列名称 create table emp4(eno,name) as select empno,ename from emp;5 如果表已存在比如: create table empX( eid number, ename varchar2(20) ); 问题: 将查询到的工资大于3000的所有员工的 编号姓名插入到empx表中: insert into empx(eid,ename)select empno,ename from emp where sal>3000;
0 0
- Oracle学习笔记一
- oracle学习笔记(一)
- Oracle学习笔记一
- Oracle学习笔记(一)
- Oracle学习笔记一
- oracle学习笔记一
- oracle学习笔记 一
- Oracle学习笔记一
- oracle学习笔记一
- oracle 学习笔记一
- oracle 学习笔记 一
- Oracle学习笔记(一)
- oracle 学习笔记(一)
- Oracle学习笔记(一)
- Oracle学习笔记一
- Oracle学习笔记一
- Oracle学习笔记一
- Oracle学习笔记(一)
- uva 11151Longest Palindrome
- Activity.runOnUiThread(Runnable)简单介绍
- Robi改造计划RTP---提前1个月完成听说和对话
- Activity访问Service内部方法
- keil5的安装+工程的创建
- Oracle学习笔记(一)
- 关于CALayer层的一些简单知识
- Oracle权限管理
- MySQL集群搭建详解
- centos 6.5 安装docker
- 用正则表达式来判断是否有需要的字符串
- 监听android home键的实现方式
- Spark开发环境搭建之使用Scala和maven的pom文件
- 初识DE2-115开发板