oracle入坑日记<五>数据表
1.1、数据表是存放数据字段信息的地方;在Oracle,数据表拥有者单位是用户,同时数据表属于表空间。如:
登录my_user用户在orcl表空间下创建的表就是 my_user用户在ocrl表空间下的数据表(有点绕,多用用就了解了)
2.1、创建数据表
create table RYXXB( -- 创建表名
RYID number(5) primary key, -- primary key 设置主键
RYXX varchar(10) not null, -- not null 不可为空
RYBH varchar(10) unique, -- unique 唯一约束
RYXB char(4) default '男' check(RYXB in ('男','女')), --check条件约束 默认值为'男'
RYNL number(3) check(RYNL > 1 and RYNL < 101) --check条件约束(同时满足多条件)
);
create table RYSFB( -- 创建表名
SFID number(5) primary key, -- primary key 设置主键
RYID number(5) references RYXXB(RYID), -- references 外键约束
SFSM varchar2(100)
);
2.2、数据类型(这里仅介绍常用数据类型)
2.2.1、number(数字) : number(3) 三位整数(最大值999),number(3,5) 整数部分三位,小数部分五位的小数(最大值999.99999);
2.2.2、char(定长字符) : char(5) 长度为5的字符,若长度不足5自动以空格填满;
2.2.3、varchar2(变长字符):varchar2(5)最大字符长度为5,若长度不足5不会自动空格填满;
2.2.4、clob(大文本):储存较多文字数据,比如,新闻,文章,介绍等;
2.2.5、blob(其他文件):储存图片,音频,视频等文件,将文件以二进制方式存储(好像2G以下文件都能用这个类型存);
2.2.6、date和timestamp(时间):两个都是用来储存时间,且都是可以储存 年月日 时分秒,但是timestamp的精确度更高;
date:
timestamp:
数据库同时执行多条命令时,不到一秒就能执行完毕,如果用date记录对某条数据操作的先后是做不到的,这种情况使用timestamp就可以看到操作记录的先后;
2.2.7、nvarchar2(变长字符):与varchar同为变长字符,二者区别详见此处
2.2.8、更多数据类型,作为SQLserver的用户,表示没有int 没有bit 有点不习惯。

2.3、约束类似(这里仅介绍常用约束类型)
2.3.1、primary key(主键约束):不可为空,一张表有且只有一个主键不可重复(可以有复合主键)。
2.3.2、references(外键约束):关联另一张表,两张表字段相关联,无法单独删除父表被关联字段数据(仅为普通外键,还有级联外键约束、置空外键约束 详见此处 )。
2.3.3、check(检查约束):自定义约束条件。
2.3.4、not null(非空约束):该字段不可为空。
2.3.5、unique(唯一约束):唯一性约束指表中一个字段或者多个字段联合起来能够唯一标识一条记录的约束。联合字段中,可以包含空值。
2.3.6、unique和primary key非常像,都有唯一性,组合性。二者也有区别:(二者区别详见此处)
2.3.6.1、primary key所有组成主键的列都不能包含空值,而unique 如果唯一性约束由多列组成,其中的部分列可以包含空值。
2.3.6.2、同一列不能即为primary key 又为 unique ,二者只能选其一。
3.1、删除数据表 drop table [user].[tablename]; --[user]操作其他用户表是需指定用户
4.1、清空表数据有两种方法 delete 、truncate
truncate: truncate table [user].[tablename]; --[user]操作其他用户表时需指定用户
delete: delete from [user].[tablename]; --[user]操作其他用户时需指定用户
4.2、truncate、delete 区别
delete: 会产生rollback(回滚事务),如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments(回滚事务)。
truncate:是DDL操作,不产生rollback,速度快,truncate 慎重使用一旦清除 数据无法rollback segments(回滚事务)恢复。
<<============================================================================================================================================>>
oracle入坑日记<五>数据表的更多相关文章
- oracle入坑日记<四>表空间
1 表空间是什么 1.1.数据表看做的货品,表空间就是存放货品的仓库.SQLserver 用户可以把表空间看做 SQLserver 中的数据库. 1.2.引用[日记二]的总结来解释表空间. 一个数 ...
- oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)
0 前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...
- oracle入坑日记<三>用户详解(角色理解)
1 用户是什么 1.1.权限管理是Oracle的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限.Oracle 的权限分为系统权限和数据对象权限,共一百多种.如果把Oracl ...
- oracle入坑日记<二>认识oracle(含sqlplus基础使用)
1.SID(数据库实例) 1.1. oracle安装的时候有一项叫[全局数据库名]的填写项,这个就是oracle的SID也是数据库的唯一标识符: 1.2.一个oracle数据库有且只有一个SID(一般 ...
- oracle入坑日记<一> 安装
学习日记系列(前辈/大神勿喷) 一.下载 下载地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads ...
- Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串
应用场合:参考网上查询数据表的所有字段名代码,使用游标生成指定单个表的所有字段名跟逗号组成的用于select 逗号隔开的字段名列表 from字符串等场合. 查询结果输出如下: 当前数据表TB_UD_ ...
- Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)
应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...
- oracle 10g 用dbms_xmlgen将数据表转成xml格式
oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle用plsql将sql查询的所有数据导出为xml
- Oracle使用游标查询所有数据表备注
功能作用:应用对应的SQL语句,能方便快速的查询Oracle数据库指定用户的所有用户表说明,快速知道每个数据表是做什么的,方便写文档和方案. 运行环境:搭建好Oracle数据库,并使用PQ/SQL D ...
随机推荐
- SSM 框架 整合<SpringMVC+Spring+MyBatis>
一 框架的搭建1.建立一个maven项目 2.建立五个module(entity,dao,service,action,web-view) 3.给予它们之间的依赖关系 dao-->entity ...
- unity 中的UGUI 屏蔽鼠标穿透
void Update() { if(IsTouchedUI()) { Debug.Log("当前触摸在UI上"); } else { Debug.Log("当前没有触摸 ...
- Linux过滤错误日志
grep -E 'at |Exception|exception|Error|error|Caused by' test.log
- 世界上最好的Sed教程
这是一份世界上最好的sed教程,sed是unix系统下流编辑里的超人.最初我写这份说明是为了我的 第二本电子书,然而随后我决定把这份说明变成一本免费电子书预览的同时再次做为文章发布到这里. Sed说明 ...
- AFNetworking 3.0简单数据请求get&post
/** *get请求方法 */ - (void)AFNGetUrl { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; ...
- Task使用
Task task1 = Task.Factory.StartNew(() => { Console.WriteLine("Hello,task started by task fac ...
- gitlab 同步小脚本
gitlab 是公司中的代码仓库,如何保证两台机器同步呢 公司中使用的是docker那么久使用docker进行演示了也方便以后的工作查找资料 附:脚本 #!/bin/bash docker stop ...
- mybatis(一、原理,一对多,多对一查询)
MyBatis框架及原理分析 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情: 封装JDBC操作 利用反射打通Java类与SQL语句之间的相互转换 ...
- xshell连接linux主机时,出现错误:Could not connect to '***.***.***.***' (port 22)
xshell连接linux主机时,会出现错误:Could not connect to '192.168.89.144' (port 22): Connection failed. 但是这时能ping ...
- 选择器(ID选择器)
ID选择器: 为HTML标签添加ID属性: <p id="p1">内容1</p> <p id="p2">内容2</p& ...