oracle复习(一)
一、系统操作
cmd->sqlplus / as sysdba; 		//以管理员身份登录数据库
alter user system account unlock;	//解锁用户system
alter user scott identified by tiger;	//把scott的密码改为tiger
grant resource,connect to scott;		//给scott赋予多个权限
role 角色(connect,resource)
grant 权限/角色 to 用户名			//赋予权限
revoke 权限/角色 from 用户名		//解除权限
二、表的数据类型
number(5) -数值型
number(18,2)-钱 ,18是长度,2是小数点后两位
nvarchar2(20) -字符串。(支持中文)
varchar2(20)	-字符串,(不支持中文)
date	日期类型。 年月日,时分秒
timestamp 	日期类型。 年月日,时分秒毫秒
nclob 	-大数据类型。		存储大量文本文档(可存中文)
clob 	-大数据类型。		存储大量文本文档(不可存中文)
blob 	-大数据类型。  		存储大量二进制数据,存储图片数据
三、表的构成
1.primary key 	主键,能唯一表示一条记录	用主键 来 强制约束,不能重复。
2.foreign key 	外键	表的外键是另一表的主键, 外键可以有重复的, 可以是空值。
3:列的默认值:在插入一条数据时,不需要人为给定值,系统自动加上指定的默认值。
4:范围约束
age>= 6 and age <= 10
sex='男' or sex='女'
限制姓名的长度:
length(name)>=1 and length(name)<=2
四、sql语句
1.增加数据:insert into
	语法:insert into 表名(字段列表1,字段名2) values(值列表);
	把字符串'1990/08/08'按'yyyy/mm/dd'格式转换成date类型to_date('1990/08/08','yyyy/mm/dd')
	增加一条记录到t_student表
	insert into t_student
	(studentid,name,sex,birthday,age,classnum)
	values(4,'小明',0,to_date('1990/08/08','yyyy/mm/dd'),27,1);
2.删除数据: delete from
	语法:delete from 表名 where 条件
3.修改数据: update
	update 表名 set 列名=新值
	给每个员工的工资增加200元
	update emp set sal=sal+200;
	给每个员工的工资减200,但是奖金增加3000
	update emp set sal=sal-200,comm=3000;
	给工作等于CLERK的员工奖金翻倍
	update emp set comm=comm*2 where job='CLERK';
4.查数据:	select
	select 列名1,列名2,列名...from 表名
	select * from 表名 表示查询表中的所有列
	select * from 表名 where 条件
	select 列名 from 表名 where 条件
	select * from emp where job in('CLERK', 'SALESMAN') in(值列表) not in(值列表)
	模糊查询like 
	通配符:%代表0-N个字符
	select * from emp where ename like '%S%'
	通配符; _代表一个字符
5.排序:order by 字段 排序顺序 asc是升序,desc是降序
6.去除重复的数据: select distinct job from emp;
7.查询工资大于1K并且工作=CLERk并且名字带S的员工信息
select * from emp where sal>=1000 and job='CLERK' and ename like '%S%'
8.oracle对每条记录 有一个唯一标识(字符串形式),rowid
	rowid根据记录的存储地址 生成。
	rownum是一个虚拟不存在的字段,表示“结果记录”的序号
	查询5条记录
	select t.*,t.rowid,rownum from emp t where rownum<=5
*查询表别名:
select * from 表名 别名
select t.*,t.rowid from emp t
select e.empno,e.ename,e.job from emp e
9.序列
	标识列(自动增长的列)
	create sequence seq_sid
	minvalue 1
	maxvalue 1000000
	start with 1
	increment by 1
	cycle;
	序列有当前值,及下一个值
	当前值:序列名.currval
	取下一个值:序列名.nextval
	往学生表增加数据,主键从序列取值
	insert into t_student values(seq_sid.nextval,'aaa',0,sysdate,1,15);
	select * from t_student;
五、视图
	视图可以简化 复杂查询
	视图是给 复杂查询 取别名
	视图可以隐藏 查询细节,更安全。
六、索引
	索引是 数据表 的 目录
	索引的作用 是 加快 查询速度
	索引的类型:normal,unique(唯一索引),bitmap(位图索引)
	unique索引:作用的数据字段值不能重复
	normal索引:数据字段值可以重复(类似姓名字段)
	bitmap索引:适合加到字段只有某几个值的表中(适合性别字段,只有'男','女'2个值)
七、oralce函数
	Upper把字符串转换成大写
	select e.empno,upper(e.ename) from emp e;
	select upper('asdf') from dual;
	lower把字符串转换成小写
	select e.empno,lower(e.ename) from emp e;
	select upper('SADFSDF') from dual;
八substr函数
	substr(要截取的字符串,从什么位置开始截取1表示开始位置,截取长度)
	select e.empno, substr(e.ename,1, 2) from emp e;
九、instr函数
	instr(要查找的字符串,被查找的子串,开始查找的位置)
	返回查找到的位置,如果没有,返回0
	查找位置如果是负数,则表示从后面往前面找。
	select instr('hello world','o', -9) from dual;
十、length(字符串)
	返回字符串的长度
	select length('Hello') from dual;返回5
lengthb(字符串)返回字符串的字节数
	select lengthb('Hello中文') from dual;返回9
oracle复习(一)的更多相关文章
- Oracle复习思路
		
目录 Oracle复习 题型 复习大纲 附录 SQL题目一 SQL题目二 SQL题目三 SQL题目四 SQL题目五 SQL题目六 Oracle复习 题型 选择题15题 每题2分,共30分 判断题10题 ...
 - [oracle复习] - Oracle
		
https://deadzq.github.io/oracle/Oracle.html 我的oracle笔记1 https://deadzq.github.io/oracle/Oracle2.html ...
 - Oracle复习(有记录才能沉淀.......)
		
一.Oracle准备工作 1.安装Oracle Oracle数据库产品是免费的,我们可以从Oracle的官方网站(http://www.oracle.com)下载到程序安装包,Oracle在Windo ...
 - Oracle复习
		
这阵子忙着面试 ,之前搞项目一直用的 mysql ,然后面试的大公司!(呵呵)偏偏用的是 oracle 没办法恶补 前面学过的但是没怎么用的Oracle 基础知识,打算主要从下面几点入手. 环境搭建: ...
 - Oracle复习(复习精简版v1.0)
		
自己没记不住的,超基础Oracle知识,新手可以看一下. 大多数例子是用scott用户中的emp表完成 排序:order by 列名 desc是降序,默认是升序: update 表名 set 列 ...
 - [Oracle]复习笔记-SQL部分内容
		
Oracle笔记--SQL部分 整体框架 语句的执行顺序:from →where →group by→having→select→order by select * from * where * gr ...
 - oracle复习(二)
		
十一.replace 替换格式:(原字符串,要查找的字符或字符串,替换的字符或字符串)select replace('hello world','o','a') from dual; //替换时区分大 ...
 - Oracle常用命令复习(备考资料)
		
Oracle期末考试复习资料,大概的总结了常用的命令,不包括基础理论知识,有的不太考的东西没有整理.资料整理是在有道云笔记里完成的,在这里重新编辑太麻烦了,就附个链接了. 文档:Oracle命令复习2 ...
 - oracle(一)复习起航
		
住了三年的宿舍,前几天不得不搬走.也断了好几天网,所以顺手拿了本以前买的<oracle编程艺术>,感觉翻译的书就是有些地方读起来不通顺,好吃力. 还好以前有点oracle经验,不然真看不懂 ...
 
随机推荐
- [Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子
			
[Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子 sqlContext = HiveContext(sc) peopleDF = sqlContext. ...
 - hibernate(*.hbm.xml)中新添加的字段被标记为红色(找不到)的解决方法
			
首先得是以这个方式生成的bean和xml,配置好了数据源(这样才能让hibernate中的配置和mysql进行交互) https://www.cnblogs.com/kinome/p/10549969 ...
 - Spring MVC数据绑定入门总结
			
1.基本类型 基本类型参数不可为空 正例:http://localhost:8080/demo/he?id=2 反例:http://localhost:8080/demo/he?id=(报400错误) ...
 - Nginx 通过 Lua + Redis 实现动态封禁 IP
			
一.背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝提供服务. 二.架构 实现 IP 黑名单的功能有很多途径: 1.在操作系统层面 ...
 - R语言绘制茎叶图
			
与直方图相比,茎叶图更能细致的看出数据分布情况! 代码: > x<-c(25, 45, 50, 54, 55, 61, 64, 68, 72, 75, 75,+ 78, 79, 81, 8 ...
 - mysql数据库和JDBC学习
			
数据库概念: 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. ---------数据库服务器,mysql(管理) 数据库服务器---->N多库-- ...
 - Python_内置函数之map()
			
map 会根据提供的函数对指定序列做映射. 代码如下: def square(x): return x ** 2 ret = map(square, [1, 2, 3, 4, 5]) # 计算列表各元 ...
 - mysql常用命令行操作(二):表和库的操作、引擎、聚合函数
			
一.查看.创建.删除数据库 create database library default character set utf8 collate utf8_general_ci; # 创建数据库并设置 ...
 - 网站之.htaccess文件
			
Apache系统中的.htaccess文件(分布式配置文件)提供了针对目录改变配置的方法,也就是在一个特定的文件目录中放置一个包含指令的文件,以作用于此目录以及所有子目录.直白的说,.htaccess ...
 - centos6.5安装配置NTP,集群各机器间时间同步
			
试验环境 提君博客原创 >>提君博客原创 http://www.cnblogs.com/tijun/ << IP 主机名 角色 描述 同步方式 192.168.11.11 ...