oracle:sql
一款关系型(二维表)数据库,能够用来存储海量数据。在大数据量并发检索的状况下,性能要高于其余的同类数据库产品。通常运行环境是Linux和Unix操做系统上!数据库
目前最流行的商业数据库,主流版本9i(Internet) 10/11g(grid) 12c(Cloud)微信
数据库用户:网络
Sys:超级管理员 (不容许用normal方式登陆,只能用Sysdba和sysoper身份登陆)并发
System:普通管理员(只能用normal登陆,不能用Sysdba和sysoper身份登陆)oracle
Scott:普通用户app
超级管理员和普通管理员均可以创建用户和对用户进行受权操做数据库设计
链接数据库:ide
SQL*Plus方式链接 工具
sqlplus ssss/ssss@orce1(多个数据库的方式)
sqlplus ssss/ssss(单个数据库的方式)
PL/SQL Developer方式链接
EM(Enterprise )
动软代码生成器
将本身PC上的Oracle服务公布到局域网。
1:找Oracle安装目录----->配置和移植工具------>Net Manager工具,点开的是本地---->监听程序---->将localhost改为本机IP:如(192.168.16.6)。而后点击保存网络配置。
有个小的隐式规则:自动将IP转成本机的计算机名称,保存到app/Happy(用户名)/product/11.2.0/dbhome_1/NETWORK/ADMIN/listener.ora文件的对应的节点处。
下次你打开Net Manager的时候,你会发现Oracle会读取对应的配置文件,读出来的是计算机名称。
2.从新配置监听
解析:找Oracle安装目录----->配置和移植工具------>Net Configuration Assistent---->从新配置监听
3.关闭本机的防火墙或添加入站规则!
数据库操做:
01.查询某个用户下全部的表
这里SCOTT必须是大写!
Rowid:在内存中构建一列不会断裂的自增值。
Oracle数据库忘记密码解决方案:
1.
2.alter user system identified by 新密码;
解锁用户
alter user scott account unlock;
3.切换用户
SQL>conn scott/新密码
角色和权限:
Oracle包括两大类权限(Privileges),一种是系统权限,另一种是对象权限。
CONNECT角色: --是授予最终用户的典型权利,最基本的
CREATE SESSION --创建会话
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --创建聚簇
CREATE PROCEDURE --创建过程
CREATE SEQUENCE --创建序列
CREATE TABLE --建表
CREATE TRIGGER --创建触发器
CREATE TYPE --创建类型
CREATE OPERATOR --建立操做者
CREATE INDEXTYPE --建立索引类型
CREATE TABLE --建立表
经常使用数据类型:
Oracle CHAR,VARCHAR,VARCHAR2类型的区别与使用
区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是能够变化的, 好比,存储字符串“abc",对于CHAR
(20),表示你存储的字符将占20个字节(包括17个空字符),而一样的VARCHAR2
(20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型能够存储空字符串,可是oracle不这样作,尽管它保留以
后这样作的权利。Oracle本身开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列能够存储
空字符串的特性改成存储NULL值。若是你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。
什么时候该用CHAR,什么时候该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,二者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想得到效率,就必须牺牲必定的空间,这也就是咱们在数据库设计上常说的‘以空间换效率’。
VARCHAR2虽然比CHAR节省空间,可是若是一个VARCHAR2列常常被修改,并且每次被修改的数据的长度不一样,这会引发‘行迁移’
(Row
Migration)现象,而这形成多余的I/O,是数据库设计和调整中要尽力避免的,在这种状况下用CHAR代替VARCHAR2会更好一些。
SQL-99标准中有五种对数据库的操做
DDL(Data Definition Language)数据定义语言:create database/table/view/sequence
DML(Data Manipulation Language):数据操做语言:insert/update/delete
TCL:(Transaction Control Language):事务控制语言:begin Transction Save point commit rollback
DQL(Data Query Language):数据查询语言:select
DCL(Data Contrl Language):数据控制语言:grant(受权) /revoke(取消、收回权限)
SQLPlus下常见命令操做:
*清屏
*注释
*查看当前用户
*当前用户下的表
解析: 在10g中bin开头表示已经删除的放在回收站的表,oracle在删除表时并无完全的删除,而是把表放入回收站!purge recyclebin清空回收站便可。
用来删除指定的表
SQL> PURGE TABLE TABLE_NAME
*查看表结构
*设置行和列的格式
*dual说明
*|| 链接
*表名为关键字问题
若是在ORACLE的SQL中包含关键字,可能会提示错误
例如:
select * from user where number=10;
因为number是关键字,执行SQL的时候会报错
所以能够修改成
select * from user where "number"=10;便可(这里是双引号,不是两个单引号)
*模糊查询中,查询内容为通配符”_和%”,如何书写查询语句
Like ‘%\_%’ escape=’\’
*关于where的优化问题
解析:where 条件1 and 条件2 解析的时候从右至左解析
*关于使用order by 多列排序问题
解析:order by 列1,列2 desc ,那么desc只做用域第二列
*关于null值排序的问题
添加列
ALTER TABLE teacher
ADD (hiredate DATE,--入职日期
sal NUMBER(7,2),wechat VARCHAR2(20)); --薪水 、微信
修改列
ALTER TABLE teacher MODIFY (tname VARCHAR2(30));
删除列
ALTER TABLE teacher DROP COLUMN wechat; --删除wechat列