Orcal笔记3-DDL-DML
一.Oracle的支持数据类型
1.字符串类型
char 固定长度(定义时即已确定长度,空余位置被补全),最大长度255,如 name char(10),'中'会占用10个长度;
varchar2 长度不固定,根据实际情况占用,空余被放弃,最大长度3999,如 name varchar2(10),'中'会占用2个长度;
2.数值类型
number(3) 最大数据999
number(3,2) 最大数据9.99
3.大数值类型
long:最大长度2G,相当于mysql中的longtext;
clob:最大长度4G;
blob:最大长度4G
4.日期类型
data:相当于mysql中的datatime,格式为yyyy-mm-dd hh:mi:ss;
timestamp:时间戳,精度高,精确到小数点后9位;
二.DDL和DML
--查看当前用户的权限
SELECT * FROM session_privs;
--创建表空间和数据文件
CREATE TABLESPACE qin_space DATAFILE 'c:\\qin.dbf' SIZE 5M AUTOEXTEND ON NEXT 1M;
--创建用户
CREATE USER qin IDENTIFIED BY qin DEFAULT TABLESPACE qin_space;
--赋予权限 3个角色 dba resource connect
GRANT DBA TO qin;
--创建表 t_student
CREATE TABLE t_student(
tid NUMBER(8),
tname VARCHAR2(30) NOT NULL,
telephone VARCHAR2(11),
gender CHAR(1),
birthday DATE,
CONSTRAINT pk_tid PRIMARY KEY(tid), --主键约束
CONSTRAINT unique_column UNIQUE(telephone), --唯一约束
CONSTRAINT check_column CHECK(gender IN(0,1)) --检查约束
)
--插入数据
INSERT INTO t_student VALUES(1,'小潘','110000011','0',to_date('2017-09-16','yyyy-mm-dd'));
SELECT * FROM t_student;
--创建orders表
CREATE TABLE orders(
o_id NUMBER(8) PRIMARY KEY,
o_totalprice NUMBER(8,2)
)
--插入数据
INSERT INTO orders VALUES(1,1000);
INSERT INTO orders VALUES(2,2000);
SELECT * FROM orders;
--创建表orderdetail,设置与orders表的外键关联
CREATE TABLE orderdetail(
od_id NUMBER PRIMARY KEY,
od_name VARCHAR2(30),
o_id NUMBER(8),
CONSTRAINT fk_o_id FOREIGN KEY(o_id) REFERENCES orders(o_id)
);
--插入数据
INSERT INTO orderdetail VALUES(1,'mouse',1);
INSERT INTO orderdetail VALUES (2,'keyboard',2);
SELECT * FROM orderdetail
--快速建表
CREATE TABLE myemp AS SELECT * FROM SCOTT.emp;
CREATE TABLE mydept AS SELECT * FROM SCOTT.dept;
--update 需求:给NEW YORK地区的部门员工加薪100元
--查询NEW YORK地区的部门员工
SELECT * FROM myemp WHERE deptno IN (SELECT deptno FROM mydept WHERE loc = 'NEW YORK');
UPDATE myemp SET sal = sal+100 WHERE deptno IN (SELECT deptno FROM mydept WHERE loc = 'NEW YORK');
--修改表结构
--t_student表加一列address
ALTER TABLE t_student ADD( address VARCHAR2(30));
--修改address字段的长度为200
ALTER TABLE t_student modify(address varchar2(200));
--删除address列
ALTER TABLE t_student DROP COLUMN address;
三.delete和truncate区别
delete只是删除了数据,truncate是摧毁了表然后重建
delete语句会产生磁盘碎片,而truncate不会
delete删除的数据可以找回的
四.Oracle的其它对象
1.视图:
视图是一个虚表,可以用来封装复杂的sql语句和隐藏敏感列;视图是原数据表的引用,操作视图会改变原表;
语法:create view 视图名称 as sql查询语句
只读视图: with read only
create view view_emp as select ename, empno, job, mgr from myemp with read only;
2.序列:
独立于表之外的一个对象,主要用于主键自增
语法:
create sequence seq_test;
select seq_test.nextval from dual;
select seq_test.currval from dual;
序列的完整语法:
create sequence seq_sequence
increment by 2 --递增值 默认1
start with 3 --起始值 默认1
maxvalue 15 --最大值 默认 19个9
minvalue 2 --最小值 默认1
cycle --循环 默认 nocycle
cache 5 --缓存的数量 默认缓存20
3.索引
创建索引可以提高查询效率
语法格式:create index 索引名字 on 表名(列名)
当数据量较小或数据经常被修改时,不建议创建索引.
4.同义词(synonym)
优点:可以缩短访问对象的名称;
语法:create [public] synonym 名称 for 对象;
举例:
create synonym e for scott.emp;
select * from e;
五.数据导入导出(dos窗口下,不需要连接到oracl)
1. 导出Scott用户下的所有对象
exp 用户名/密码@IP:1521/orcl file='位置\\想要保存的文件名称.dmp' owner=用户名
2. 导入到用户qin中
imp 用户名/密码@IP:1521/orcl file='位置\\已有的想要导入的文件名称.dmp' full=y
Orcal笔记3-DDL-DML的更多相关文章
- DDL DML DCL SQL
https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_ddl SQL The Structured Query Language tha ...
- Hive数据据类型 DDL DML
Hive的基本数据类型 DDL DML: 基本数据类型 对于Hive而言String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以 ...
- ORA-38301:can not perform DDL/DML over objects in Recycle Bin
一个智障操作,drop一个用户,下面的东西比较多,删得比较慢,然后shell突然关了. 就导致了,删不掉,又不能创建新的用户.出版本要得比较急,就先创建新的用户测试去了. 今天要弄个东西,又想起这个事 ...
- MySQL中的DDL,DML
MySQL中的DDL,DMLDDL:数据定义语言: CREATE,ALTER,DROP DB组件:数据库.表.索引.视图.用户.存储过程.存储函数.触发器.事件调度器等 CR ...
- SQL语言:DDL,DML,DCL,DQL,TCL
DDL(Data Definition Language)数据库定义语言 statements are used to define the database structure or schema. ...
- Oracle 之——子查询 DDL DML 集合 及其他数据对象
Oracle 学习笔记(二) 知识概要: 1.子查询 2.集合操作 3.DML语句操作 4.其他数据库对象 1.子查询 查询工资比SCOTT高的员工信息 1 select * 2 from emp ...
- Oracle SQL: DDL DML DCL TCL
Data Definition Language 自带commit,与表结构有关(数据字典)(会等待对象锁) Data Manipulation Language (数据文件相关变化有关,会产生锁)不 ...
- DDL/DML是什么?
DDL:(Data Definition Language)数据库定义语言 它是定义数据库的语言, 里面包含: CREATE ALTER DROP TRUNCATE COMMENT RENAME DM ...
- ddl dml dcl
DCL数据控制语言 创建临时表空间 create temporary tablespace user_temp tempfile 'E:/oracle/product/10.1.0/oradata/o ...
- oracle中DDL DML指什么?
DDL create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop in ...
随机推荐
- P3348 [ZJOI2016]大森林
\(\color{#0066ff}{ 题目描述 }\) 小Y家里有一个大森林,里面有n棵树,编号从1到n.一开始这些树都只是树苗,只有一个节点,标号为1.这些树都有一个特殊的节点,我们称之为生长节点, ...
- JS的类型转换
首先我们要知道,在 JS 中类型转换只有三种情况,分别是: 转换为布尔值 转换为数字 转换为字符串 我们先来看一个类型转换表格 转Boolean 在条件判断时,除了 undefined, null, ...
- Centos7安装MySQL8.0
请到这个地址看:https://www.cnblogs.com/kevingrace/p/10482469.html Centos7安装MySQL8.0 - 操作手册 一.yum安装方式: 卸载之前版 ...
- uversion5 怎么添加设备
实时 点击网址去它的官网下载,然后选择自己的设备组,Dfg ,下载下来的是一个安装包,直接安装即可
- flask-----No such file or directory绝对路径与相对路径
No such file or directory: '\\uploads\\03.jpeg' 相对路径:加点,或者直接绝对路径(尽量使用绝对路径,通过python的os模块获取当前文件绝对路径) o ...
- 使用git将本地代码提交到码云上去
码云为开源中国基于git的代码网络托管平台,将代码托管.开发与项目管理工具融为一体.今天第一次将自己的web项目代码上传至码云,过程中遇到一些问题,此处进行总结与过程的演示:当我们在码云上创建好项目后 ...
- Dell N5010 Win7下 玩CS全屏(1366*768)问题
在Dell N5010 Win7 下完CS1.6 全屏不了,以下是解决办法 1.按windows+r键打开 运行 窗口,输入regedit,打开注册表 2.依次点开 HKEY_LOCAL_MACHIN ...
- CSS(十三).高度如何铺满全屏
该需求来源一次面试题. IE6不认识!important声明,IE7.IE8.Firefox.Chrome等浏览器认识:而在怪异模式中,IE6/7/8都不认识!important声明,这只是区别的一种 ...
- Linux 磁盘 分区 挂载点的理解
在Linux中一切皆文件: 虚拟文件系统(Virtual File System, 简称 VFS), 是 Linux 内核中的一个软件层,用于给用户空间的程序提供文件系统接口:同时,它也提供了内核中的 ...
- 【笔记】MySQL的基础学习(二)
[笔记]MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...