当数据库字段设计为定长字符串时,效率高,占空间。空间换时间
varchar2最多4096字节,再往大了,用long型存
图片的存储也可以是数据库中存名字,实际存在硬盘上
create table stu
(
id number(6) primary key,
name varchar2(20) constraint stu_name_nn not null,
sex number(1),
age number(3),
sdate date,
grade number(2) default 1,
class number(4) references class(id),
email varchar2(50),
constraint stu_name_email_nui unique(email, name)
)
create table class
(
id number(4) primary key,
name varchar2(20) not null
);
--五个约束条件
-- 为空
name varchar2(20) constraint stu_name_nn not null, --stu_name_nn 也可以不起名字
-- 唯一
email varchar2(50) unique --字段级约束
constraint stu_name_email_nui unique(email, name) --表级约束
-- 主键主键最好是数字,索引 快
constraint stu_id_pk primary key (id)
-- 外键 , 被参考的字段,必须是主键
constraint stu_class_fk foreign key(class) references class(id)
-- check约束
-- 修改现有表的结构
alter table stu add(addr varchar2(100));
alter table stu drop (addr);
alter table stu modify(addr varchar2(150));
alter table stu drop constraint stu_class_fk
-- 删除一张表
drop table table_name;
-- 数据字典表
desc user_tables;
select table_name from user_tables;
select view_name from user_views;
select constraint_name from user_constraints;
select dictionary;
select constraint_name, table_name from user_constraints;
select * from dictionary where table_name like 'USER_TABLE%';
-- 索引
-- 加主键和唯一约束时,自动建立索引
-- 查询速度快了,插入速度慢了
create index idx_stu_email on stu(email);
drop index idx_stu_email;
-- 序列
create sequence seq;
select seq.nextval from dual;
drop seq;
--插入数据前先保存
create table emp2 as select * from emp;
sqlplus sys/password as sysdba
alter user scott account unlock;
grand create table, create view to scott;
--建立删除用户 导出表
SQL> conn sys/orcl as sysdba;
drop user liuchao cascade;
C:\>exp
输入数组提取缓冲区大小: 4096 >
导出文件: EXPDAT.DMP>
(2)U(用户),或 (3)T(表): (2)U >
导出权限 (yes/no): yes >
导出表数据 (yes/no): yes >
压缩区 (yes/no): yes >
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象 ...
. 正在导出数据库链接
. 正在导出序号
. 正在导出群集定义
. 即将导出 SCOTT 的表通过常规路径 ...
. . 正在导出表 BONUS 0 行被导出
. . 正在导出表 DEPT 4 行被导出
. . 正在导出表 EMP 14 行被导出
. . 正在导出表 SALGRADE 5 行被导出
. 正在导出同义词
. 正在导出视图
. 正在导出存储的过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计
在没有警告的情况下成功终止导出。
--创建用户 n:zyc p:zyc 最多10M空间
create user zyc identified by zyc default tablespace users quota 10M on users;
--赋予权限
grant create session,create table, create view to zyc;
--导入表
C:\>imp
用户名: zyc
口令:
导入文件: EXPDAT.DMP>
输入插入缓冲区大小(最小为 8192 ) 30720>
经由常规路径导出由EXPORT:V09.02.00创建的文件
警告: 此对象由 SCOTT 导出, 而不是当前用户
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
只列出导入文件的内容 (yes/no): no >
由于对象已存在, 忽略创建错误 (yes/no): no >
导入权限 (yes/no): yes >
导入表数据 (yes/no): yes >
导入整个导出文件 (yes/no): no >
用户名: scott
输入表 (T) 或分区 (T: P) 名称。空列表表示用户的所有表
输入表 (T) 或分区 (T: P) 的名称或。如果完成:
. 正在将SCOTT的对象导入到 ZYC
. . 正在导入表 "BONUS" 0行被导入
. . 正在导入表 "DEPT" 4行被导入
. . 正在导入表 "EMP" 14行被导入
. . 正在导入表 "SALGRADE" 5行被导入
准备启用约束条件...
成功终止导入,但出现警告。
分享到:
相关推荐
### Oracle DDL、DML、DCL、TCL 基础概念 #### DDL (Data Definition Language) 数据定义语言 数据定义语言(DDL)主要用于创建、修改或删除数据库对象,如表、索引、视图等。这些操作通常涉及数据库结构的变更。 ...
4. **性能监控**:监控GoldenGate进程的性能,特别是在执行大量DDL操作时,确保不会对系统性能造成显著影响。 5. **异常处理**:设置适当的错误处理机制,确保在DDL同步过程中遇到问题时能够及时恢复。 #### 五、与...
在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析、总结一下。 1:使用ORA_ROWSCN伪列获取表最后的DML时间 ORA_ROWSCN伪列是Oracle 10g开始...
DDL(Data Definition Language)、DML(Data Manipulation Language)、DCL(Data Control Language)和TCL(Transaction Control Language)是SQL语言的四大核心部分,对于理解和操作Oracle数据库至关重要。...
在Oracle中,DML操作是事务的一部分,可以使用`COMMIT`提交更改,或者使用`ROLLBACK`撤销未提交的更改。此外,`TRUNCATE`语句虽然看似DML,但实际上属于DDL,因为它涉及的是数据结构的改变,而不是单个数据记录的增...
DML 触发器可以分为三种基本类型:数据操纵语句 (DML) 触发器、数据定义语句 (DDL) 触发器和数据事件触发器。本文主要介绍 DML 触发器的类型和执行顺序。 DML 触发器可以按照触发器的执行级别和事件类型进行分类。...
详细介绍了oracle的建表语句 增删改查 内外连接查询 授权用户 建sequence oracle常用内置函数 ddl语句 事务控制语句 tcl 等
本章重点讨论Oracle中的数据定义语言(DDL)和数据操纵语言(DML),这两种语言是数据库管理员和开发人员进行数据库设计和操作的基础。 首先,Oracle的主要数据类型包括Character、Number、Date、RAW和LongRaw以及...
Oracle_9i培训胶片中文版-1_2.基本的DDL和DML介绍-caith.ppt
接着探讨了用户表空间的操作方法,如创建用户、为用户授予权限以及删除用户的步骤。随后讲解了关于数据表的基本概念、创建、维护(添加、修改、删除字段)及更改表名的方法。最后,深入分析了DML语句的应用,涵盖...
Oracle 9i数据库系统在DML(数据操纵语言)和DDL(数据定义语言)方面提供了许多扩展功能,这些扩展使得数据库管理和数据操作更加高效和灵活。以下是对这些扩展的详细说明: 1. 多表插入(Multi-Table Insert): ...
ORACLE数据类型 表创建/变动/删除 表分区的使用 同义词对象创建/删除 数据操纵语言DML ORACLE中常见函数
DML、DCL、DDL 是数据库管理系统中三个重要的语言概念,它们分别用于数据操作、权限控制和数据库定义。下面将详细解释这三个概念。 DML(Data Manipulation Language) ----------------------------- DML 是数据...
Oracle 业界领先的数据同步工具 -- Oracle Golden Gate。Oracle Golden Gate是经客户验证的业界最佳的数据同步工具,能够提供异构环境下数据的实时捕捉,变换和投递,支持异构数据库环境下的数据同步。该产品广泛...
4. **TRUNCATE**:尽管TRUNCATE通常不被视为DML,但它是与DML相关的DDL操作,用于快速删除表中所有数据。与DELETE不同,TRUNCATE不记录单个行的删除,因此不能回滚,且不触发触发器。 **数据定义语言(DDL)**: ...
DDL操作通常会立即提交,因此一旦执行,更改就无法通过回滚(ROLLBACK)撤销。 DML,全称Data Manipulation Language,主要关注对数据库中已有数据的增、删、改操作。在Oracle中,DML主要包括以下几种语句: 1. `...
在本文中,我们将详细讲述DDL和DML在Oracle中的使用方法。 数据定义语言(DDL) DDL是SQL的一种语言,用于定义数据库的结构,如创建、修改或删除数据库对象,例如表、索引、视图、存储过程等。DDL语句包括CREATE、...
Oracle 9i是一款广泛使用的数据库管理系统,而DDL(Data Definition Language)和DML(Data Manipulation Language)是SQL语言中的核心部分,用于管理和操作数据库中的数据。本篇内容主要介绍了Oracle 9i中的基本DDL...