练习:查询每一年入职人数及总人数
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入门基础(九)一一创建表和管理表的更多相关文章

  1. MySQL基础知识:创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  2. Oracle入门基础(一)一一基本查询

    SQL> --当前用户 SQL> show user SQL> --当前用户下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERI ...

  3. Oracle创建表及管理表

    转自:https://www.linuxidc.com/Linux/2018-05/152566.htm   1. Oracle表的创建及管理 创建表包括三个要素,表名,列名,数据类型.每个表都有对应 ...

  4. Oracle入门基础

    使用SQLplus工具登录连接 开始->运行CMD-> C:\Users\Admininstrator> sqlplus 请输入用户名:sys@orcl as sysdba 输入口令 ...

  5. orcl创建表及管理表

    常用的字段数据类型: .字符串(varchar2(n)) n表示保存最大长度,基本200作用..整数(number(n)) n位的整数,也可用int代替.小数(number(n,m)) m为小数位,n ...

  6. Oracle入门基础(十)一一数据库其他对象-视图/序列/索引/同义词

    SQL> --视图 SQL> create view empinfoview as select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname ...

  7. Oracle入门基础(八)一一数据处理

    SQL> SQL的类型 SQL> 1.DML(Data Manipulation Language 数据操作语言): select insert update delete SQL> ...

  8. Oracle入门基础(十三)一一java调用oracle存储过程

    package demo; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultS ...

  9. Oracle入门基础(七)一一集合运算

    SQL> /* SQL> 查询10和20号部门的员工 SQL> 1. select * from emp where deptno=10 or deptno=20; SQL> ...

随机推荐

  1. 施耐德NOE77101后门漏洞分析

    固件下载地址: GitHub - ameng929/NOE77101_Firmware 文件目录结构,这里只列出了一些主要的文件信息: ├── bin ├── ftp ├── fw ├── rdt ├ ...

  2. 一文带你秒懂商业智能BI的价值所在!

    首先,先来跟大家解释说明一下什么是商业智能?这应该也是刚刚接触商业智能的小伙伴最想要了解的问题,平时刷微博.看头条时都会看到数据可视化.数据分析和大数据等词汇时,但是对它们如同熟悉的陌生人一般,那么这 ...

  3. 拥有自助式BI要摒弃传统BI?

    简单来说BI就是从data中提取知识和信息的一套软件解决方案.商业智能 (BI,Business Intelligence) 也就是BI,是为企业把数据转换为信息.知识 ,相应蕴育而出的IT技术.企业 ...

  4. Ubuntu更新命令无法执行的,下一步该怎么办?

    对Linux的系统学习的更加深入,所以今天笔者正在Ubuntu20.04 LTS 上部署Sublime Text 的环境时 , 由于对操作的不熟悉,踩了一些坑.拿出来和大家分享. 正在我对照着官方文档 ...

  5. 决策树CART回归树——算法实现

    决策树模型 选择最好的特征和特征的值进行数据集划分 根据上面获得的结果创建决策树 根据测试数据进行剪枝(默认没有数据的树分支被剪掉) 对输入进行预测 模型树 import numpy as np de ...

  6. Docker入坑系列(一)

    Docker入坑系列(一) 引用嘛,当然是来引用别人说的东西啦. Docker 是一个开源项目,诞生于 2013 年初,它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux ...

  7. Qt:QNetworkReply

    0.说明 QNetworkReply对象包含了Manager发送的请求头和返回的数据. 它继承自QIODevice,所以可以用各种read获取其中返回的数据: QByteArray data = re ...

  8. iframe和伪造ajax

    iframe和伪造ajax 1.iframe标签 <iframe>标签是一个内联框架,即用来在当前HTML页面中嵌入另一个文档的,且所有主流浏览器都支持iframe标签. 1.1基本用法 ...

  9. docker 搭建php 开发环境 添加扩展redis、swoole、xdebug

    docker-compose搭建lnmp 先决条件 首先需要安装docker 安装docker-compost 1.创建lnmp工作目录 #创建三个目录 mkdir lnmp && c ...

  10. 写出Zend 框架的目录结构,简单说明目录作用?

    application/ – 存放应用程序的目录,包括MVC 系统.配置文件.服务以及引导程序(Bootstrap.php)configs/ –配置文件目录.application/modules – ...