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经验,不然真看不懂 ...
随机推荐
- 使用Sharding-Proxy进行分库分表
Sharding-Proxy的使用 1.官网下载 sharding-jdbc的官网http://shardingsphere.io/document/current/cn/manual/shardin ...
- MangoDB高级应用
MongoDB高级应用 Author:SimpleWu 聚合 聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). ...
- 传统前端工程使用 Vue 等框架重构的思路
这段时间遇到类似的问题,第一反应便是使用 cli 搭建项目,但是细想一下立马否决了,原因如下: 工程量太大,猴年马月能重构完,此期间原项目还是没有任何变动(如果没人跟你一起同步修改之前老项目的话 无法 ...
- 分布式系统消息中间件——RabbitMQ的使用进阶篇
分布式系统消息中间件--RabbitMQ的使用进阶篇 前言 上一篇文章 (https://www.cnblogs.com/hunternet/p/9668851.html) 简单总结了分布式系 ...
- Linux Namespace : UTS
UTS namespace 用来隔离系统的 hostname 以及 NIS domain name.UTS 据称是 UNIX Time-sharing System 的缩写. hostname 与 N ...
- .NetCore 2.1中的HttpClientFactory最佳实践
.NET Core 2.1中的HttpClientFactory最佳实践 ASP.NET Core 2.1中出现一个新的HttpClientFactory功能, 它有助于解决开发人员在使用HttpCl ...
- H5 后代选择器
12-后代选择器 我是段落 我是段落 我是段落 我是段落 我是段落 我是段落 <!DOCTYPE html> <html lang="en"> <he ...
- Python Revisited Day 03 (组合数据类型)
目录 第三章 组合数据类型 3.1 序列类型 3.1.1 元组 3.1.2 命名的元组 (collections.nametuple()) 3.1.3 列表 (查询有关函数点这) 3.1.4 列表内涵 ...
- 01-HTML介绍
1.WEB标准 web准备介绍: w3c:万维网联盟组织,用来制定web标准的机构(组织) web标准:制作网页遵循的规范 web准备规范的分类:结构标准.表现标准.行为标准. 结构:html.表示: ...
- Linux基础命令和NAT技术
yum yellowdog updater,modified是一种用python写的基于rpm的管理工具 用于解决rpm包的依赖性 要安装编译工具 yum install gcc 库函数:静态库 ...