Oracle入门基础(九)一一创建表和管理表
练习:查询每一年入职人数及总人数
SQL> select count(*) Total,
2 sum(decode(to_char(hiredate,'yyyy'),'1980',1,0)) "1980",
3 sum(decode(to_char(hiredate,'yyyy'),'1981',1,0)) "1981",
4 sum(decode(to_char(hiredate,'yyyy'),'1982',1,0)) "1982",
5 sum(decode(to_char(hiredate,'yyyy'),'1987',1,0)) "1987"
6 from emp;
TOTAL 1980 1981 1982 1987
---------- ---------- ---------- ---------- ----------
14 1 10 1 2
SQL> --创建表
SQL> create table test1
2 (tid number,tname varchar2(20));
SQL> --rowid 行地址
SQL> select rowid,empno,ename,sal from emp;
ROWID EMPNO ENAME SAL
------------------ ---------- ---------- ----------
AAAMfPAAEAAAAAgAAA 7369 SMITH 800
AAAMfPAAEAAAAAgAAB 7499 ALLEN 1600
SQL> select * from emp where rowid='AAAMfPAAEAAAAAgAAJ';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
已选择 1 行。
SQL> --创建表:保存20号部门的员工
SQL> create table emp20 as select * from emp where deptno=20;
SQL> --创建表:员工号 姓名 月薪 年薪 部门名称
SQL> create table empinfo as select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname
from emp e,dept d where e.deptno=d.deptno;
SQL> --修改表:增加新列,修改列,删除列,重命名列,重命名表
SQL> --增加新列
SQL> alter table test1 add photo blob;
SQL> --修改列
SQL> alter table test1 modify tname varchar2(40);
SQL> --删除列
SQL> alter table test1 drop column photo;
SQL> --重命名列
SQL> alter table test1 rename column tname to username;
SQL> --重命名表
SQL> rename test1 to test2;
SQL> --删除表
SQL> drop table TESTDELETE;
SQL> --查看回收站
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTDELETE BIN$z6+GnIyhQtaIrbPpN1H99A==$0 TABLE 2016-10-06:15:24:14
SQL> --清空回收站
SQL> purge recyclebin;
回收站已清空。
SQL> select * from TESTSAVEPOINT;
TID TNAME
---------- --------------------
1 Tom
2 Mary
已选择 2 行。
SQL> drop table TESTSAVEPOINT;
表已删除。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTSAVEPOINT BIN$384BF4yOT+aAlXzC7eLPIA==$0 TABLE 2016-10-06:15:28:07
SQL> select * from TESTSAVEPOINT;
select * from TESTSAVEPOINT
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
BIN$384BF4yOT+aAlXzC7eLPIA==$0 TABLE
SQL> select * from "BIN$384BF4yOT+aAlXzC7eLPIA==$0";
TID TNAME
---------- --------------------
1 Tom
2 Mary
已选择 2 行。
SQL> --注意:管理员没有回收站
SQL> show user
USER 为 "SCOTT"
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTSAVEPOINT BIN$384BF4yOT+aAlXzC7eLPIA==$0 TABLE 2016-10-06:15:28:07
SQL> --闪回删除 ---> 回收站
SQL> flashback table TESTSAVEPOINT to before drop;
闪回完成。
SQL> show recyclebin;
SQL> select * from TESTSAVEPOINT;
TID TNAME
---------- --------------------
1 Tom
2 Mary
已选择 2 行。
SQL> create table test3
2 (tid number,
3 tname varchar2(20),
4 gender varchar2(2) check (gender in ('男','女')),
5 sal number check (sal > 0)
6 );
表已创建。
SQL> insert into test3 values(1,'Tom','男',2000);
已创建 1 行。
SQL> insert into test3 values(2,'Mike','啊',2000);
insert into test3 values(2,'Mike','啊',2000)
*
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (SCOTT.SYS_C005393)
SQL> create table student
2 (
3 sid number constraint student_pk primary key,
4 sname varchar2(20) constraint student_name_notnull not null,
5 gender varchar2(2) constraint student_gender check (gender in ('男','女')),
6 email varchar2(40) constraint student_email_unique unique
7 constraint student_email_notnull not null,
8 deptno number constraint student_fk references dept(deptno) on delete set null
9 );
SQL> insert into student values(1,'Tom','男','tom@126.com',10);
已创建 1 行。
SQL> insert into student values(2,'Mike','男','tom@126.com',10);
insert into student values(2,'Mike','男','tom@126.com',10)
*
第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (SCOTT.STUDENT_EMAIL_UNIQUE)
Oracle入门基础(九)一一创建表和管理表的更多相关文章
- MySQL基础知识:创建MySQL数据库和表
虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...
- Oracle入门基础(一)一一基本查询
SQL> --当前用户 SQL> show user SQL> --当前用户下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERI ...
- Oracle创建表及管理表
转自:https://www.linuxidc.com/Linux/2018-05/152566.htm 1. Oracle表的创建及管理 创建表包括三个要素,表名,列名,数据类型.每个表都有对应 ...
- Oracle入门基础
使用SQLplus工具登录连接 开始->运行CMD-> C:\Users\Admininstrator> sqlplus 请输入用户名:sys@orcl as sysdba 输入口令 ...
- orcl创建表及管理表
常用的字段数据类型: .字符串(varchar2(n)) n表示保存最大长度,基本200作用..整数(number(n)) n位的整数,也可用int代替.小数(number(n,m)) m为小数位,n ...
- Oracle入门基础(十)一一数据库其他对象-视图/序列/索引/同义词
SQL> --视图 SQL> create view empinfoview as select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname ...
- Oracle入门基础(八)一一数据处理
SQL> SQL的类型 SQL> 1.DML(Data Manipulation Language 数据操作语言): select insert update delete SQL> ...
- Oracle入门基础(十三)一一java调用oracle存储过程
package demo; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultS ...
- Oracle入门基础(七)一一集合运算
SQL> /* SQL> 查询10和20号部门的员工 SQL> 1. select * from emp where deptno=10 or deptno=20; SQL> ...
随机推荐
- 施耐德NOE77101后门漏洞分析
固件下载地址: GitHub - ameng929/NOE77101_Firmware 文件目录结构,这里只列出了一些主要的文件信息: ├── bin ├── ftp ├── fw ├── rdt ├ ...
- 一文带你秒懂商业智能BI的价值所在!
首先,先来跟大家解释说明一下什么是商业智能?这应该也是刚刚接触商业智能的小伙伴最想要了解的问题,平时刷微博.看头条时都会看到数据可视化.数据分析和大数据等词汇时,但是对它们如同熟悉的陌生人一般,那么这 ...
- 拥有自助式BI要摒弃传统BI?
简单来说BI就是从data中提取知识和信息的一套软件解决方案.商业智能 (BI,Business Intelligence) 也就是BI,是为企业把数据转换为信息.知识 ,相应蕴育而出的IT技术.企业 ...
- Ubuntu更新命令无法执行的,下一步该怎么办?
对Linux的系统学习的更加深入,所以今天笔者正在Ubuntu20.04 LTS 上部署Sublime Text 的环境时 , 由于对操作的不熟悉,踩了一些坑.拿出来和大家分享. 正在我对照着官方文档 ...
- 决策树CART回归树——算法实现
决策树模型 选择最好的特征和特征的值进行数据集划分 根据上面获得的结果创建决策树 根据测试数据进行剪枝(默认没有数据的树分支被剪掉) 对输入进行预测 模型树 import numpy as np de ...
- Docker入坑系列(一)
Docker入坑系列(一) 引用嘛,当然是来引用别人说的东西啦. Docker 是一个开源项目,诞生于 2013 年初,它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux ...
- Qt:QNetworkReply
0.说明 QNetworkReply对象包含了Manager发送的请求头和返回的数据. 它继承自QIODevice,所以可以用各种read获取其中返回的数据: QByteArray data = re ...
- iframe和伪造ajax
iframe和伪造ajax 1.iframe标签 <iframe>标签是一个内联框架,即用来在当前HTML页面中嵌入另一个文档的,且所有主流浏览器都支持iframe标签. 1.1基本用法 ...
- docker 搭建php 开发环境 添加扩展redis、swoole、xdebug
docker-compose搭建lnmp 先决条件 首先需要安装docker 安装docker-compost 1.创建lnmp工作目录 #创建三个目录 mkdir lnmp && c ...
- 写出Zend 框架的目录结构,简单说明目录作用?
application/ – 存放应用程序的目录,包括MVC 系统.配置文件.服务以及引导程序(Bootstrap.php)configs/ –配置文件目录.application/modules – ...