Oracle的基本操作
切换用户 CONN system/manager 切换到system用户下
CONN sys/change_on_install as sysdba 切换到sys用户下
CONN scott/tiger 切换到Scott用户下
查看当前的用户身份
SHOW user
在sys身份下查询表
SELECT * FROM table
查询指定表
SELECT * FROM scott.emp;
在sqlplus命令里面,除了使用Oracle自己的命令还可以使用HOST调用本机操作系统的命令
调用echo命令 HOST echo HELLO
调用copy命令 HOST copy D:?.jpg(原路径) E:?.jpg(目标路径)
简单查询
简单查询就是在一张表中进行数据查询,而且没有条件的过滤
·查询全部的列
SELECT * FROM 表明【别名】
·查询指定列的内容
SELECT 列名【别名】,列名【别名】 FROM 表名【别名】
·解决重复的数据(只有查询的所有列的内容相同才算重复的信息)
SELECT DISTINCT 重复数据 FROM 表名
·要查询的结果可以使用四则运算
SELECT 结果(四则运算)【别名】FROM 表名
限定查询
要使用限定查询需要用到一个WHERE子句作为条件的过滤
SELECT * FROM 表名 WHERE 条件
·关系运算符 >,<,=,!=,<>
·逻辑运算符 AND,OR,NOT
·范围查询 BETWEEN ? AND ?
·空判断 IS NOT NULL;
·in操作符 IN(?,?,?);
·模糊查询 :
"_":表示任意[一位]字符
"%":表示任意位数的任意字符
LIKE "_?%" ;
排序查询
要使用排序查询则要使用到另一个子句:ORDER BY
SELECT */字段名【别名】
FROM 表名
WHERE 过滤条件
ORDER BY 字段名 [ASC/DESC];
多表查询
内连接查询:(等值查询)满足条件的数据会被显示出来
外连接查询:(左外连接,右外连接查询)控制左表或者右表不满足条件的信息是否显示
SELECT */字段名 【别名】
FROM 表名1,表名2...
WHERE 1字段=2字段...(消除笛卡尔积)
左外连接 :字段=字段(+)控制左表不满足条件也显示
右外连接 :(+)字段=字段 控制右表不满足条件也显示
五种统计常用函数
统计查询的数据量:COUNT(*/字段/DISTINCT字段)
统计最大值:MAX(日期或者数字类型字段)
统计最小值:MIN(日期或者数字类型字段)
统计平均值:AVG(数字类型字段)
计算某字段的数据之和:SUM(数字类型字段)
分组查询
要实现分组查询,就上GROUP BY子句
③SELECT */字段名 【别名】
①FROM 数据来源
②WHERE 条件过滤
④GROUP BY 分组字段
⑤HAVING 条件过滤
⑥ORDER BY 字段 排序
*统计函数是为分组查询服务的,如果没有使用GROUP BY子句而使用了统计函数,那么SELECT子句中不能再有其他字段
如果SELECT子句中使用了嵌套的统计函数,那么在SELECT子句中不能再有其他字段(包括分组字段)
WHERE和HAVING的区别
·WHERE是在GROUP BY之前执行,GROUP BY只能对WHERE筛选出来的结果 进行分组,WHERE子句中不能出现统计函数
·HAVING是在GROUP BY之后执行的,可以对分组后的数据进行筛选,可以使用统计函数。
子查询
WHERE子句中的子查询
SELECT * FROM 表名
WHERE 字段 关系运算符[?](SELECT ...) WHERE子句返回的是一条数据
SELECT 字段 统计函数..FROM 表名 GROUP BY 字段
HAVING 统计函数 关系运算符(
SELECT 统计函数 FROM 表名
)
HAVING子句中的子查询返回的是单列数据,需对统计后的数据进行删选才会使用HAVING子查询
FROM子查询
SELECT 字段名【别名】FROM 表名 别名,(
SELECT 字段名 FROM 表名)别名
FROM子句返回的结果是多行多列的数据,相当于一张临时表的形式
数据的增,删,改
数据的增加
复制一张表:CREATE TABLE 要建的表名 AS SELECT * FROM 来源表名
数据的增加:INSERT INTO 表名称 (字段1,字段2..)VALUE(值1,值2..)
[自定义的字段要对应指定的值,顺序要对应]
数据的修改
UPDATE 表名称 SET 字段值=新的值,字段值=新的值 WHERE 修改条件
删除数据
DELETE FROM 表名称 WHERE 删除条件
删除全部数据 DELETE FROM 表名称
事物处理
commit 事务提交
rollback 事务回滚
五种约束
表的创建:CREATE TABLE 表名称(
字段名 类型,字段名 类型)
表的删除 DROP TABLE 表名称
常用的数据类型
·数字类型
NUMBER表示小数整数都可以
NUMBER(n)表示只保存整数,而且不能超过n位
NUMBER(n,m)表示只能保存小数,整数位不能超过n-m位 ,小数位m位
·字符串类型
VARCHAR2(n)表示保存小量的字符串类容,不能超过n个字符
CLOB 保存大量的字符串数据【4G】
·日期类型
DATE 保存日期数据(SYSDATE[字符串格式的日期],TO_DATE[转换格式])
非空约束:规定某一字段的内容不能为空,使用"NOT NULL"来完成
唯一约束:规定某一字段的内容不能重复,使用"UNIQUE"(UK)
主键约束:规定某一字段的内容即不重复又不为空,使用"PRIMARY KEY" (PK)
检查约束:在更新数据之前进行一些条件判断,若满足则更新否则不更新
使用"CHECK" (CK) ,CONSTRAINT 自定名 CHECK(字段 条件)
*检查约束一般不用因为会降低效率,所有的数据的检查都在程序中完成
外键约束:如果有两张表,一张表中的字段来自另一张表那么提供字段的表叫父表
另一张叫子表。使用"FOREIGN KEY"(FK)
CONSTRAINT 自定名 FOREIGN KEY (字段) REFERENCES 父表(字段)
*如果表中存在外键关系,那么在删除子表之前要先删除父表
强制删除:DROP TABLE 表名 CASCADE CONSTRAINT;
DROP TABLE 表名 PURGE;
*父表中被作为子表的关联外键字段,必须设置为主键或者唯一约束
*如果父表中的某一条数据的某一字段被子表关联,那么父表中的这条记录无法先被删除
级联删除 (ON DELETE CASCADE)
级联更新 (ON DELETE SET NULL)
清空回收站 (PURGE RECYCLEBIN)
增加列:ALTER TABLE 表名 ADD (新列 列类型,..)
修改列的数据类型:ALTER TABLE 表名 MODIFY(列名 列类型,..)
删除列:ALTER TABLE 表名 DROP COLUMN 列名;
修改列名:ALTER TABLE 表名 RENAME COLUMN 就列名 TO 新列名
伪列ROWNUM
要完成数据的分页显示需要使用伪列ROWNUM
SELECT *FROM(
SELECT ROWNUM rn 字段名.. FROM 表名
WHERE ROW <= currentPage*lineSize
)temp
WHERE temp.rn >=(currentPage-1)*lineSize
currentPage:表示当前页
lineSize:表示每页显示多少数据量
*ROWNUM必须要从1开始,使用子查询将前面的所有数据查询出来之后ROWNUM就成了一个真实的列
序列SEQUENCE
创建一个序列:CREATE SEQUENCE 序列名
删除一个序列:DROP SEQUENCE 序列名
使用序列:INSERT INTO 表名(pid,name)VALUES(序列名.nextval,'?');
创建步长序列:CREATE SEQUENCE 序列名 INCREMENT BY 定义的步长
规定序列的开始值:CREATE SEQUENCE 序列名 START WITH 定义的开始值
单表的设计
数据库的第一设计范式
[数据表中的字段不可以再分,以学生表为例]
CREATE TABLE student1(
sid NUMBER(4),name VARCHAR2(50),age NUMBER(3),
address VARCHAR2(50),tel VARCHAR2(11),email VARCHAR2(50),
CONSTRAINT pk_sid PRIMARY KEY(sid)
);
多对多的关系数据表设计
[例如:一门课程可以被多个学生选择,一个学生可以选择多门课程]
我们需要设计三张表
·用一张表记录学生的信息
·用一张表记录课程的信息
·用一张表记录学生和课程关系信息
DROP TABLE student PURGE;
CREATE TABLE student(
sid NUMBER(4),name VARCHAR2(50),age NUMBER(3),
address VARCHAR2(50),tel VARCHAR2(11),email VARCHAR2(50),
CONSTRAINT pk_sid PRIMARY KEY(sid)
);
CREATE TABLE course(
cid NUMBER(4),name VARCHAR2(50),
CONSTRAINT pk_cid PRIMARY KEY(cid)
);
CREATE TABLE select_course(
cid NUMBER(4),sid NUMBER(4),
CONSTRAINT fk_cid FOREIGN KEY(cid) REFERENCES course(cid),
CONSTRAINT fk_sid FOREIGN KEY(sid) REFERENCES student(sid)
);
一对多的关系数据表设计
[例如:一所学校可以对应多个学生,一个学生只能对应一所学校]
CREATE TABLE school(
scid NUMBER(4),name VARCHAR2(50),
CONSTRAINT pk_scid PRIMARY KEY(scid)
);
CREATE TABLE student2 (
sid NUMBER(4),name VARCHAR2(50),
age NUMBER(3),address VARCHAR2(50),
tel VARCHAR2(11),email VARCHAR2(50),
scid NUMBER(4),
CONSTRAINT fk_scid FOREIGN KEY(scid) REFERENCES school(scid),
CONSTRAINT pk_stuid PRIMARY KEY(sid)
);
Oracle的基本操作相关推荐
- oracle基本的操作命令,oracle命令基本操作
--创建表空间 create tablespace TBS_OTHERS datafile 'G:\APP\ORCL\ORADATA\ORCL\TBS_OTHERS01.dbf' size 1000m ...
- oracle spatial 数据导入_【转】 Oracle Spatial 基本操作
原文链接: http://www.cnblogs.com/frogbag/archive/2007/10/17/926870.html,感谢作者. 基本操作比较全面,包括建表.建索引和查询. Step ...
- oracle完整的练习,2021史上最全Oracle数据库基本操作练习题(含答案).docx
Oracle基本操作练习题 使用表: 员工表(emP): (empndNUMBEER) notnull ,--员工编号,表示唯一 enameZARCHAR20),--员工姓名 VARCHAR9),-- ...
- Oracle的基本操作(一:子查询与常用函数)
1.描述TO_CHAR和TO_DATE函数的用法. TO_CHAR(d|n[,fmt]):把日期和数字转换为指定格式(fmt)的字符串; TO_DATE(x[,fmt]):把一个字符串一fmt格式转换 ...
- oracle建表权限问题和JSP连接oracle数据库基本操作
JSP连接oracle数据库相关操作 1.创建表 打开Enterprise Manager Console,为用户添加权限CREATE ANY TABLE和分配一定的表空间USERS限额1024k. ...
- oracle字段规则,Oracle的基本操作+Oracle字段类型(zz)
在Oracle关于时间属性的建表 Example: create tablecourses( cidvarchar(20)not null primary key, cnamevarchar(20)n ...
- Oracle数据库基本操作
复习Oracle数据库知识,整理以供日后查询,如下: 1. 更改用户密码并解锁 2. 若提示解调器错误,在服务中启动监听服务 3. 创建表 4. 向表中插入记录 5. 查询表中记录 6. 调整列宽 7 ...
- solaris oracle 磁盘阵列,Solaris 下的 oracle 的基本操作。
一.启动.关闭数据库 1.启动数据库监听 su - oracle ---切换oracle用户(如果使用su oracle ,则启动时不运行.profile用户环境配置文件) $ lsnrctl sta ...
- Oracle数据库基本操作(三) —— DQL相关内容说明及应用
本文所使用的查询表来源于oracle数据中scott用户中的emp员工表和dept部门表. 一.基本语法 SQL语句的编写顺序: select 输出的列 from 表名 where 条件 group ...
最新文章
- 4.Windows下安装ZooKeeper
- 【Web安全】DVWA+CSRF跨站请求伪造-生成链接修改password
- dev gridview 打印列数过多_R语言:如何将多张统计图绘制在一张上面
- delphi 发送网络消息_《新手学习ISO网络模型》(1)如何直观理解物理层?
- java web 前端学习路线
- adb工具包_如何使用命令刷机 ADB与FASTBOOT工具使用教程
- (最新版 易卷/自动出题平台)自动阅卷系统 | 自动阅卷机 | 网络阅卷系统
- Laravel 登录验证,md5验证,自定义验证,自定义表
- 微型计算机蓝屏的处理方法,电脑出现蓝屏如何解决_电脑蓝屏的处理方法
- Shiny server: application failed to start
- 选择unity还是unreal4
- 京东云,走进产业数字化深处
- 魅族便签,是否能成为国内便签应用的No.1?
- Cannot find ./catalina.sh The file is absent or does not hav
- 使用计算机翻译功能吗,微信上怎么使用翻译功能 翻译功能设置教程
- rtx2060什么水平_RTX2060性能如何?NVIDIA新一代RTX2060显卡评测
- 一、万信金融项目——项目介绍
- vba传值调用_VBA传递参数步骤
- 三层架构,四大天王——删
- 【转】期限结构Carry收益 期货多品种对冲模型
热门文章
- 用户风格,Molly Guard和愚蠢的Web验证
- python声明编码为gbk_python入门:UTF-8转换成GBK编码
- 获取汉字GBK编码的方式汇总
- 拉齐献歌“祖国,为你骄傲”大型晚会
- 台灯哪个牌子的比较好保护视力的?推荐五款护眼台灯
- 【STM32H7】第3章 ThreadX操作系统介绍
- 艾瑞 X 得帆 |未来,得帆产品矩阵是500强企业的绝佳选择!
- Nebius Welcome Round (Div. 1 + Div. 2) 题解
- win版本caffe源码libcaffe研究
- [Gerrit] 日志分类和字段解析