1.创建表
2.创建表时的命名规则和注意事项1)表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#2)大小写不区分3)不用SQL里的保留字, 一定要用时可用双引号把字符串括起来.4)用和实体或属性相关的英文符号长度有一定的限制注意事项:1)建表时可以用中文的字段名, 但最好还是用英文的字段名2)创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面3)建表时如果有唯一关键字或者唯一的约束条件,建表时自动建了索引4)一个表的最多字段个数也是有限制的,254个3.创建表语法CREATE?TABLE?[ schema.]table_name({column?datatype?[ DEFAULT?expr ]?[column_constraint]?...| table_constraint }?[,{?column?datatype?[ DEFAULT?expr ]?[ column_constraint ]...|table_constraint}?]...)?[[ PCTFREE??integer ][ PCTUSED??integer ][ INITRANS?integer ]?[ MAXTRANS?integer ]???????[ TABLESPACE?tablespace ]???????[ STORAGE?storage_clause ]?[ RECOVERABLE?|?UNRECOVERABLE?]?????[ PARALLEL?([DEGREE?{?integer?|?DEFAULT?}?][ INSTANCES?{?integer?|?DEFAULT?}?])|?NOPARALLEL?][ CACHE?|?NOCACHE?]?| [CLUSTER?cluster?(column?[,?column ]...)]?][ ENABLE?enable_clause?|?DISABLE?disable_clause?]...?[AS?subquery]字段注释:   Schema?--用来指定所建表的owner,如不指定则为当前登录的用户.?Table_name?--用来指定所创建的表名,最长为30个字符,但不可以数字开头(可为下划线),但不可同其它对象或Oracle的保留字冲突.????Column?--用来指定表中的列名,最多254个.?Datatype?--用来指定列中存储什么类型的数据,并保证只有有效的数据才可以输入.?column_constraint?--用来指定列约束,如某一列不可为空,则可指定为not?null.?table_constraint?--用来指定表约束,如表的主键,外键等.?Pctfree?--用来指定表中数据增长而在Oracle块中预留的空间.?DEFAULT为10%,也就是说该表的每个块只能使用90%,10%给数据行的增大时使用.?Pctused?--用来指定一个水帄线,当块中使用的空间低于该水帄线时才可以向该中加入新数据行.?Parallel?--用来指定为加速该表的全表扫描可以使用的并行查询进程个数.Cache?--用来指定该表为最应该缓存在SGA数据库缓冲池中的候选项.?Cluster?--用来指定该表所存储的?cluster.?Tablespace?--用来指定用数据库的那个分区来存储该表的数据.?Recoverable|Unrecoverable?--用来决定是否把对本表数据所作的变动写入Redo?文件.以恢复对数据的操作.?As?--当不指定表的各列时,可利用As子句的查询结果来产生数据库结构和数据.4.ORACLE常用的字段类型VARCHAR2 (size) --可变长度的字符串, 必须规定长度CHAR(size) --固定长度的字符串, 不规定长度默认值为1NUMBER(p,s) --数字型p是位数总长度, s是小数的长度, 可存负数,最长38位. 不够位时会四舍五入.DATE --日期和时间类型LOB --超长字符, 最大可达4GCLOB --超长文本字符串BLOB --超长二进制字符串BFILE --超长二进制字符串, 保存在数据库外的文件里是只读的.
5.创建表例子?
??--例1:?create?table?region(id?decimal,myint?inteter)tablespace?user_datapctfree???5pctused???30;--例2:create?table?mytable2 as?(?select?*?from?mytable1);6.创建表create table table_name (column datatype,[column datatype].....  );tablespace tablespace_name [ ppctfree integer ] [ pctused integer ][ initrans integer ][ maxtrans integer ]storage( initial 200k next 200k ppctincrease 0 maxextents 50) [ logging | nologging ]  [ cache | nocaahe ]7.复制一个已存在的表(copy an existing table)create table table_name [ logging | nologging ] as subquery8.创建一个临时表(create temporary table)create global temporary table xay_temp as select * from xay;on commint preserve rows/on commit delete rows9.pctfree 和 pctused 参数计算公式pctfree = (average row size - initial row size)*100/average row sizepctused = 100-pctfree-(average row size * 100/available data space)pctfree : 指定表内每个数据块中空间的百分比。pctfree的值必须介于0和99之间。如果为零,表示可以通过插入新行来填充整个块。缺省值为10.此值表示每个块中保留着10%的空间,用于更新现有的行以及插入新行,每个块最多可以填充到90%pctused : 指定为表内每个数据块的已用空间的最小百分比。如果一个块的已用空间低于pctused,则可在该块中插入行。pctused的值介于0和99之间的整数,缺省值为40.结合pctfree 和 pctused 就可以确定将新行插入到现有数据块中,还是插入到新块中。这两个参数值的和必须小于或等于100.使用这两个参数可以更有效地利用表内的空间。设置 pctfree 和pctusedpctfree 值越高,可为数据库块内的更新提供的空间就越大。如果表存在下面两种情况,则应设置一个更高的值:?某些列最初为null,后来更新为某个值? 某些列由于更新,大小可能增加pctfree的值越高,块密度就越低,即每个块容纳的行数就越少。上面的公式确保块中有足够的空间供行增长使用。pctused 以确保只有在具备足够空间来容纳一个平均大小的行时才将块返回到空闲列表中。如果空闲列表中的某个块没有足够的空间来插入一行,oracle服务器将查找空闲列表中的下个块、直到找到具备足够空间的块或者到达列表的末尾,这种线性扫描才会结束。使用给定的公式可以增加找到具有所有需空闲空间的块的概率,从而缩短扫描空闲列表时间。注:可以使用 analyze table 命令估算平均行大小的值。注:oracle9i “自动段空间管理” 功能可替代 pctused、freelists 和 freelist       groups.10.改变存储和块利用率参数(change storage and block utilization parameter)alter table table_name pctfree=30 pctused=50 storage(next 500k minextents 2 maxextents 100);11.手工分配区间(extents)(manually allxoating extents)alter table table_name allocate extent (size 500k datafile 'c:/oracle/data.dbf');12.改变表的所属表空间(move tablespace)alter table employee move tablespace users;13.释放表中未用空间(deallocate of unused space)alter table table_name deallocate unused [ keep integer ]14.截断表(truncate)(truncate a table )truncate table table_name;截断一个表将删除表中所有行,从而释放已使用的空间。对应的索引将被截断注:truncate table 不是DML语句,是DDL语句。另外truncate与delete的区别是吗,delete不释放空间,truncate释放空间。15.删除表(drop a table)drop table table_name [cascade constraints];16.删除列(drop a cloumn)alter table table_name drop column commentd cascade constraints checkppoint 1000;oralter table table_name drop columns continue;17.表示某一列为未使用(unused)(mark a column sa unused)alter table table_name set unused column comments xascade constraints;oralter table table_name dropp unused columns checkpoint 1000;oralter table orders drop columns continue checkpoint 1000 data_dictionary : dba_unused_col_tabs;除将列从表中删除以外,还可以先将列标记为 “未使用”,以后再删除。因为没有删除数据,所以此操作不回收磁盘空间,因而具有速度比较快的优点。被标为 “未使用” 的列可在以后系统活动较少时从表中删除。 未使用的列就像不属于表一样。查询时看不到未使用列中的数据。此外,在执行 DESCRIBE 命令时,也不会显示这些列的名称和数据类型。用户可以添加与未使用的列同名的新列。 如果想删除同一表中的两列,则可先将列设置为 “未使用” 然后再删除。在删除两列时,表中的所有行都会更新两次;但如果将这些列设置为 “未使用” 然后再删除,则所有的行仅更新一次。

转载于:https://www.cnblogs.com/ChineseIntelligentLanguage/p/6513224.html

CHIL-ORACLE-创建表相关推荐

  1. oracle有一百个人围一圈报数,案例:Oracle创建表时报session超过最大值 ORA-00018 证明递归ses...

    天萃荷净 创建表时报session超过最大值 证明递归session存在并不在v$session中显示 我们在数据库的使用过程中,有时候会遇到类似情况,我会话是登录的,但是我进行某种操作,缺报sess ...

  2. oracle创建表空间.创建用户.创建表

    oracle创建表空间.创建用户.创建表 转:http://blog.csdn.net/zhoubl668/archive/2009/02/02/3858576.aspx 在SQL*Plus中:(1) ...

  3. oracle 创建表空间 pcincrease,oracle建表空间 各种语句

    oracle建表空间 各种语句 在创建用户之前,先要创建表空间: 其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小; 如: SQL& ...

  4. oracle删除判断是否存在,oracle创建表之前判断表是否存在,如果存在则删除已有表...

    Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area; CREATE TABLE sys_area ( id varchar(64) ...

  5. Oracle 创建表空间,用户,赋值(简装)

    一, 1.Oracle 创建表空间,用户,赋值(简装) C:\Documents and Settings\Administrator>sqlplus /nolog SQL> conn / ...

  6. Oracle创建表空间、创建用户以及授权

    原文地址:Oracle创建表空间.创建用户以及授权 作者:chinacoolsword Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库. 对于初学者来 ...

  7. oracle 建表字段设置,Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结...

    关于Oracle创建表.删除表.修改表(添加字段.修改字段.删除字段)语句的简短总结. Oracle创建表: create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字 ...

  8. Oracle创建表语句(Create table)语法详解及示例

    Oracle创建表语句(Create table)语法详解及示例   创建表(Create table)语法详解 1. ORACLE常用的字段类型ORACLE常用的字段类型有 VARCHAR2 (si ...

  9. oracle创建表之前判断表是否存在,如果存在则删除已有表

    Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area;CREATE TABLE sys_area (id int NOT NULL A ...

  10. Oracle 创建表空间,创建表、数据增删改

    Oracle 创建表空间,创建表.数据增删改 创建表空间 创建用户 用户授权 表的创建.修改与删除 创建表 数据类型 创建表的同时指定表空间 修改表 删除表 数据增删改 插入数据 修改数据 删除数据 ...

最新文章

  1. 15瓶饮料4个空瓶换一瓶_2021江苏公务员考试行测技巧:你会用“空瓶”换水吗?...
  2. 浅析Java web程序之客户端和服务器端交互原理
  3. Xamarin.iOS编译时无法连接苹果系统
  4. 用Unity3D实现简单的牧师与魔鬼游戏
  5. localhost、127.0.0.1对网络编程造成不通的说明
  6. 无头虚拟化服务器,在 Ubuntu 18.04 LTS 上使用 KVM 配置无头虚拟化服务器
  7. Quartus II 订购版 和 网络版 软件功能 区别
  8. 用 vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)
  9. 如何利用秒级监控进行mongodb故障排查
  10. python海龟绘图画树_Python:海龟绘图(二)
  11. JavaSE----变量、String、运算符、流程控制
  12. html 日期判断周几,javascript怎么根据日期判断星期几?
  13. 一张图彻底了解Unity脚本的生命周期
  14. sql like 通配符_《SQL必知必会》学习笔记
  15. 遥感数字图像处理------第二章---数字图像存储与读取
  16. 南宁看桃花的季节是2月
  17. 我常用的几款数据软件
  18. FPGA学习——矩阵键盘驱动及数码管显示键值
  19. python怎么变成动图_python 生成动图
  20. 软件测试工程师的职业技能分析

热门文章

  1. 什么是网络上的Cookies,您如何使用它们?
  2. solidworks2020绿色精简版
  3. [STM32F103C8T6] 超声波测距
  4. SpringBoot实现登录注册
  5. 电工学复习【2】-- 电路的分析方法
  6. open FIFO for write returns “No such device or address”
  7. 大脑神经网络对比图高清,图神经网络和神经网络
  8. 更新中——simulink模块【合集】
  9. 西安市经开区自行车管理系统设计摘要
  10. jzoj5984. 【北大2019冬令营模拟2019.1.1】仙人掌 (分块)