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 ...