一、系统操作
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. JS /javascript 解除网页屏蔽右键(无法复制)的代码

    javascript:(function() { function R(a){ona = "on"+a; if(window.addEventListener) window.ad ...

  2. linux学习问题总结

    目录 一.环境变量和普通变量的区别 二.rsyslog和logrotate会不会丢记录的问题 三.为什么有些文件夹大小不是4096的整数倍 四.reboot和shutdown等软链接实现原理 五.sy ...

  3. webstrom 使用sass的环境配置说明

    sass(https://www.sass.hk)基于Ruby语言开发而成,因此安装sass前需要安装Ruby.(注:mac下自带Ruby无需在安装Ruby!) 一.安装ruby 注意勾选第二个选项 ...

  4. Linux 修改时间和时区为上海时区

    发现centos7的时间是utc的,和上海时间不一样. 由于/usr/share/zoneinfo/Asia/  这个目录下没有北京时区,就选择了上海时区,只要赋值过去就可以了 rm -f /etc/ ...

  5. 面试 10:玩转 Java 选择和插入排序,附冒泡最终源码

    昨天给大家讲解了 Java 玩转冒泡排序,大家一定觉得并没有什么难度吧,不知道大佬们玩转了吗?不知道大家有没有多加思考,实际上在我们最后的一种思路上,还可以再继续改进. 我们先看看昨天最终版本的代码. ...

  6. 朱晔的互联网架构实践心得S2E1:业务代码究竟难不难写?

    注意,这是我的架构实践心得的第二季的系列文章,第一季有10篇你也可以回顾. 见https://www.cnblogs.com/lovecindywang/category/1296779.html 最 ...

  7. python四:函数练习--小白博客

    为什么要有函数?函数式编程定义一次,多出调用函数在一定程度上可以理解为变量函数的内存地址加上()就是调用函数本身也可以当做参数去传参 不用函数:组织结构不清晰代码的重复性 def test():#te ...

  8. Day6 Pyhton基础之文件操作(五)

    能调用方法的一定是对象 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 #-*-codeing-*-:UTF-8 #author:Weina Pang # ...

  9. [2017BUAA软工助教]团队alpha得分总表

    一.累计得分 项目 介绍 采访 贡献分 功能 技术 α例会 α发布 α测试 α展示 α事后 合计 满分 10 10 10 10 10 50 10 10 150 10 280 hotcode5 10 9 ...

  10. 多线程系列之三:Immutable 模式

    一,什么是Immutable模式?immutable就是不变的,不发生改变的.Immutable模式中存在着确保实例状态不发生变化改变的类.这些实例不需要互斥处理.String就是一个Immutabl ...