一、系统操作
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复习(一)的更多相关文章

  1. Oracle复习思路

    目录 Oracle复习 题型 复习大纲 附录 SQL题目一 SQL题目二 SQL题目三 SQL题目四 SQL题目五 SQL题目六 Oracle复习 题型 选择题15题 每题2分,共30分 判断题10题 ...

  2. [oracle复习] - Oracle

    https://deadzq.github.io/oracle/Oracle.html 我的oracle笔记1 https://deadzq.github.io/oracle/Oracle2.html ...

  3. Oracle复习(有记录才能沉淀.......)

    一.Oracle准备工作 1.安装Oracle Oracle数据库产品是免费的,我们可以从Oracle的官方网站(http://www.oracle.com)下载到程序安装包,Oracle在Windo ...

  4. Oracle复习

    这阵子忙着面试 ,之前搞项目一直用的 mysql ,然后面试的大公司!(呵呵)偏偏用的是 oracle 没办法恶补 前面学过的但是没怎么用的Oracle 基础知识,打算主要从下面几点入手. 环境搭建: ...

  5. Oracle复习(复习精简版v1.0)

    自己没记不住的,超基础Oracle知识,新手可以看一下. 大多数例子是用scott用户中的emp表完成 排序:order by 列名    desc是降序,默认是升序: update 表名 set 列 ...

  6. [Oracle]复习笔记-SQL部分内容

    Oracle笔记--SQL部分 整体框架 语句的执行顺序:from →where →group by→having→select→order by select * from * where * gr ...

  7. oracle复习(二)

    十一.replace 替换格式:(原字符串,要查找的字符或字符串,替换的字符或字符串)select replace('hello world','o','a') from dual; //替换时区分大 ...

  8. Oracle常用命令复习(备考资料)

    Oracle期末考试复习资料,大概的总结了常用的命令,不包括基础理论知识,有的不太考的东西没有整理.资料整理是在有道云笔记里完成的,在这里重新编辑太麻烦了,就附个链接了. 文档:Oracle命令复习2 ...

  9. oracle(一)复习起航

    住了三年的宿舍,前几天不得不搬走.也断了好几天网,所以顺手拿了本以前买的<oracle编程艺术>,感觉翻译的书就是有些地方读起来不通顺,好吃力. 还好以前有点oracle经验,不然真看不懂 ...

随机推荐

  1. Kubernetes学习之路(26)之kubeasz+ansible部署集群

    目录 1.环境说明 2.准备工作 3.分步骤安装 3.1.创建证书和安装准备 3.2.安装etcd集群 3.3.安装docker 3.4.安装master节点 3.5.安装node节点 3.6.部署集 ...

  2. 面试 6:拓展性更好的代码,更容易拿到 Offer

      今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使 ...

  3. 使用go mod结合docker分层缓存进行自动CI/CD

    本文地址:https://www.cnblogs.com/likeli/p/10521941.html 喜大奔的go mod 官方背书的go mod拯救了我的代码洁癖症! 环境 go v1.12 do ...

  4. Jmeter(三十六)_运行过程中改变负载

    顾名思义,jmeter在做性能测试时,可以在不停止脚本的情况下修改负载压力,达到期望的测试效果.我们将通过Constant Throughput Timer(吞吐量计时器)和Beanshell服务器来 ...

  5. vue 饿了么项目笔记

    vue 饿了么项目 1.图标字体引用 链接 2.scss 二三倍图切换 1像素边框 链接 3.better-scroll 4.布局 商品主页面 <div id="app"&g ...

  6. Python-正则复习-56

    # 正则表达式# 字符组 [字符]# 元字符 # \w \d \s # \W \D \S # . 除了换行符以外的任意字符 # \n \t # \b # ^ $ 匹配字符串的开始和结束 # () 分组 ...

  7. Codeforces Round #486 (Div. 3)-B. Substrings Sort

    B. Substrings Sort time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  8. 网络编程-Socket介绍

    Socket介绍 什么是socket?(5分钟) Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议 ...

  9. 1060D Social Circles(贪心)

    题意:有n个客人,第i个客人希望左边至少Li个空椅子,右边至少Ri个空椅子,每个客人都属于一个圈,问你最少需要准备的椅子数量 贪心做,每个人都可以去和另一个人牵手,组成一个新的人,那么我们让大的和大的 ...

  10. [2018福大至诚软工助教]alpha阶段小结

    [2018福大至诚软工助教]alpha阶段小结 一.得分 1. 冲刺(7次 Scrum) 150分 1)第1篇(25分) 项目 评分标准 各个成员在 Alpha 阶段认领的任务 (6分)视详细程度给分 ...