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 ...
随机推荐
- spoj periodni
题解: dp 方程弄出来就好做了 代码: #include<bits/stdc++.h> ,M=; typedef int arr[N]; typedef long long ll; in ...
- ssl证书安装到iis服务器
1.先购买ssl证书, 2.对付会先发一份邮件到你的邮箱,进行验证 3.再查看邮箱,会发现有了对应的证书文件. 附件会有一个压缩包,里面包含4份证书文件, 还有一个通配符的字符串. 4.下载之后, 先 ...
- PLSQL Developer连接Oracle
1.安装PLSQL Developer Oracle数据库和PL/SQL Developer的安装步骤,这里就不做叙述了,百度安装方法的时候有说在安装PL/SQL Developer软件时,不要安装在 ...
- 一款非常不错的重写listctrl类-CListCtrlEx
原文在:https://www.codeproject.com/Articles/28063/An-Extended-MFC-CListCtrl-to-edit-individual-cells li ...
- laravel 创建自动化生成数据库
1. 生成 迁移脚本 php artisan make:migration create_users_table --create=users(表名) 当你⽣成⼀个模型时想要顺便⽣成⼀个 数据库迁 ...
- 关于手贱--npm 误改全局安装路径
1.通过 npm config set prefix "目录路径" 来设置.通过 npm config get prefix 来获取当前设置的目录. 2.npm config se ...
- SuSE Linux Enterprise Server - 软件包下载地址
官方地址: https://software.opensuse.org
- python 不同进程间通信
from multiprocessing import Process,Queue import os def f (qq): qq.put([42,None,'hello']) #将列表传入队列qq ...
- WIdo联网代码中文注释
代码如下 /*************************************************** 这是一个例子的dfrobot维多-无线集成物联网建兴传感器和控制节点 *产品页面及更 ...
- windows tensorboard http://0.0.0.0:6006 无法访问 解决方法 - using chrome and localhost as ip
启动命令: tensorboard --logdir="tensorboard" 启动后显示 Starting TensorBoard b'47' at http://0.0.0. ...