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经验,不然真看不懂 ...
随机推荐
- Javascript设计模式之我见:观察者模式
大家好!本文介绍观察者模式及其在Javascript中的应用. 模式介绍 定义 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新. 类图及说明 S ...
- 从高德采集最新的省市区三级坐标和行政区域边界,用js在浏览器中运行
本文描述的是对国家统计局于2019-01-31发布的<2018年统计用区划代码和城乡划分代码(截止2018年10月31日)>中省市区三级的坐标和行政区域边界的采集. 本文更新(移步查阅): ...
- H5 audio标签
37-audio标签 注意点: audio标签的使用和video标签的使用基本一样, video中能够使用的属性在audio标签中大部分都能够使用, 并且功能都一样 只不过有3个属性不能用, heig ...
- Python入门-文件操作
文件读取f = open('D:/工作日常/学生空姐模特护士联系方式.txt', 'r', encoding=‘utf-8’)f.read()f.close()解释file='D:/工作日常/学生空姐 ...
- Linux提示删除文件cannot remove `文件名': Operation not permitted
Linux系统下删除某个文件时提示如下报错: 执行lsattr命令可以看到隐藏属性-------i--------,如下图: 通过查找资料发现: chattr命令用于改变文件属性.这项指令可改变存放在 ...
- 软件工程练习:模块化,单元测试,回归测试,TDD
这是<构建之法>实战教学的一部分.适合作为同学们的第二个程序作业. 第一个程序作业: 请看 “概论” 一章的练习,或者老师的题目,例如这个. 作业要求: 软件工程的作业越来越有意思了, 我 ...
- 辨析element.offsetXxxx和element.style.xxxx
DOM操作时,经常使用element.style属性,没错,element.style是属性,和几个offsetXxxx属性一样,概念是一样的. 但是style有几个属性,这几个属性和offsetXx ...
- centos6 yum 安装memcached
centos6 yum 安装memcached - 像块石头 - 博客园http://www.cnblogs.com/rockee/archive/2012/08/01/2619160.html yu ...
- h5-canvas(其他api)
###1.使用图片(需要image对象) drawImage(image,x,y,width,height) 其中image是image或者canvas对象,x和y 是其在目标canvas的起始坐标 ...
- Laravel 5.2+ 使用url()全局函数返回前一个页面的地址
注意:文章标题中5.2+表示该文章内容可向上兼容,适用于Laravel版本5.2及更高(目前最新为5.6),但不可向下兼容,即不适用于5.2版本以下.推荐大家花一点点时间,将自己的Laravel更新至 ...