oracle创建表

oracle数据库创建表且主键自增

你离开我真会死。 提交于 2020-02-01 03:58:08
Oracle数据库中,设置ID自增并不像MySQL中那么简单,Oracle中需要设置一个序列。 现在给出方式,具体如下: 第一步:建立一个表 create table ContestDB ( TID NUMBER(10) PRIMARY KEY, TEAMNUM varchar(50) not null, MARKNUM varchar(50) ); 第二步:设置ID自增 第一种方式:不使用触发器 1 CREATE SEQUENCE SEQ_TID; 2 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,'B20007009','B001 '); 3 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,'B20007010','B003 '); 第二种方式:使用Trigger 触发器 1 --自定义一个序列 2 create sequence ContestDB_sequence 3 increment by 1 --每次增加几个,我这里是每次增加1 4 start with 1 --从1开始计数 5 nomaxvalue --不设置最大值 6 nocycle --一直累加,不循环 7 nocache --不建缓冲区 8 --创建一个触发器 9 CREATE TRIGGER ContestDB

七、Oracle中DDL改变表结构操作

こ雲淡風輕ζ 提交于 2020-01-31 17:46:39
目录 7.1. 创建表 7.2. 使用子查询创建表 7.3. 添加字段 7.4. 修改字段 7.5. 删除字段 7.6. 清空表数据 7.7. 删除表 7.8. 重命名表 7.1. 创建表 Create table student( Sid number(10), Snamevarchar2(10) ) tablespace tt; 以上 tablespace 不是必须的。默认不写,则创建在登录的用户所在的表空间上 7.2. 使用子查询创建表 create table myemp as select * from emp; create table myemp as select * from empwhere deptno=10; create table myemp as select * from emp1=2; 7.3. 添加字段 Alter table student add age number(5); 7.4. 修改字段 Alter table student modify age number(10); alter table table2 rename column result toresult2; 7.5. 删除字段 Alter table student drop column age; 7.6. 清空表数据 Truncate table student;

Oracle创建表空间和表

谁说我不能喝 提交于 2020-01-13 16:55:48
//创建数据表空间 格式: create tablespace 表间名 datafile '数据文件名' 表空间大小 create tablespace zzbm_data logging datafile 'd:\oracle\oradata\zzbm\zzbm_data01.dbf' size 32m autoextend on next 32m maxsize 20000m extent management local; //创建用户并指定表空间 格式: create user 用户名 identitfled by 密码 default 表空间 create user username identified by password default tablespace zzbm_data temporary tablespace zzbm_temp; //给用户授予权限 格式: grant connect,resource to 用户名 grant connect,resource to username; //设置用户密码永不过期 格式:alter profile default limit password_life_time unlimited ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; /

oracle操作表的sql复习

寵の児 提交于 2020-01-12 15:50:48
oracle中对于表的操作有如下四种: 一、创建表 格式语法:     create table table_name(      字段名1 字段类型 约束类型,      字段名2 字段类型 约束类型,      ...     ); 例如: create table jason1( userid number(10) primary key, username varchar2(10) not null ); 需要注意的是:char 和varchar2的区别,char为固定字符,字段大小没有用完则用空填充,varchar2为变长字符。 number(总长度,小数长度)小数长度不能大于总长度。例如code number(3,2); 二、修改表(添加新字段,删除字段,修改表名,修改字段类型,修改列名,给字段添加注释) 添加新字段 1.添加一个字段时:alter table jason1 add( jason char(10)); 2.添加多个字段时:alter table jason1 add( jason1 char(10),           hello char(10) not null,           birthday date); 3.给字段添加备注:comment on column 库名.表名.字段名 is '输入的备注'; 如:我要在ers

oracle表中列的类型。number和integer区别(转)

做~自己de王妃 提交于 2020-01-08 13:37:57
数据库中创建表,常见类型总结: 见一个大神总结的很全: 一、数据类型 1.char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节) 2.varchar2(n) n=1 to 4000字节 可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。 如果数据长度没有达到最大值n,Oracle 8i会根据数据大小自动调节字段长度, 如果你的数据前后有空格,Oracle 8i会自动将其删去。VARCHAR2是最常用的数据类型。 可做索引的最大长度3209。 3.number(m,n) m=1 to 38n=-84 to 127 可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。 如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。 如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。 如:number(3,0),输入575.316,真正保存的数据是575。 4.date 无 从公元前4712年1月1日到公元4712年12月31日的所有合法日期, Oracle

ORACLE数据库创建用户名和表空间

不羁岁月 提交于 2019-12-23 02:42:20
[sql] /*第1步:登录 */ 以sys/sys超级用户登录pl/sql /*第2步:创建临时表空间 */ create temporary tablespace user_temp tempfile 'E:\oracle\product\10.2.0\oradata\wu\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local ; /*第3步:创建数据表空间 */ create tablespace user_data logging datafile 'E:\oracle\product\10.2.0\oradata\wu\user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local ; /*第4步:创建用户并指定表空间 */ create user wu identified by wu default tablespace user_data temporary tablespace user_temp; /*第5步:给用户授予权限 */ grant connect ,resource,dba to wu; 来源: https://www

Oracle Sql语句

孤人 提交于 2019-12-07 13:27:04
1,把表中已有字段设置成主键 ATTER TABLE tablename ADD CONSTRAINT pk_tablename_id PRIMARY KEY(id) ; 2,在创建表的时候创建主键 create table tablename ( id int identity(1,1) primary key, ... ) identity(1,1)标识列,自动增量,identity(a,b),a和b都为正整数,a为开始数,b表示增幅,identity(1,1)表示此列为自动增长列,由1开始每次增加1。 3,Oracle创建表 create table inspector ( USERID NUMBER(6) NOT NULL PRIMARY KEY , USERNAME VARCHAR2(10) NOT NULL , USERAGE NUMBER(6) NOT NULL ); 4,数据控制语句(DML) (1)INSERT INSERT INTO 表名(字段名1,字段名2,......) VALUES (值1,值2,......); INSERT INTO INSPECTOR(USERID,USERNAME,USERAGE) VALUES (1,'XIAOP',11); 字符串类型的字段值必须用单引号括起来,例如'xiaop'。 如果字段值里包含单引号'',需要进行字符串转换

oracle表结构

人盡茶涼 提交于 2019-12-06 02:35:05
表管理 新建表 语法 create table 表名 ( 列名1 类型(长度), 列名2 类型(长度), 列名3 类型(长度) ); create table :关键字,建表 后跟新建表的表名,表名长度有限制,不超过32位,以英文单词或者缩写组成,单词之间用下划线连接 表名必须是数据库中唯一的,重复会报错. 列名:英文单词缩写组成,长度不超过30位,不能以数字,下划线或特殊字符开头.单词之间以下划线连接. 括号后须有分号结束; SQL> create table stu_test 2 ( 3 stu_id number(6), 4 stu_name varchar2(50), 5 stu_age number(3) 6 ); 表已创建。 添加注释 SQL> comment on table stu_test is '学生表'; 注释已创建。 SQL> comment on column stu_test.stu_id is '学生编号'; 注释已创建。 SQL> comment on column stu_test.stu_name is '学生姓名'; 注释已创建。 SQL> comment on column stu_test.stu_age is '学生年龄'; 注释已创建。 comment on table:关键字,即表的注释 comment on column:关键字

Oracle 实现表中id字段自增长

旧巷老猫 提交于 2019-12-04 10:27:42
Oracle 实现表中id字段自增长 最近正在学习Oracle的时候发现Oracle表中的字段不能像mysql中那样可以用auto increment修饰字段从而让id这种主键字段实现自增长. 那Oracle中是怎么实现字段自增长呢? 1. 首先创建一个表 -- 1. 餐桌表 CREATE or replace TABLE dinnerTable( id number PRIMARY KEY , -- 餐桌主键 tableName VARCHAR(20), -- 餐桌名 tableStatus number DEFAULT 0, -- 餐桌状态:0,空闲; 1,预定 orderDate DATE default sysdate ); 这个餐桌表中的id字段是我们的主键,我们希望在插入一条内容的时候,id字段能够自动+1。 这里需要用到Oracle中的 序列和触发器 2. 创建一个序列 CREATE or replace TRIGGER my_trigger_table(你的触发器名称) BEFORE INSERT ON dinnerTable FOR EACH ROW begin select my_sequence_table.nextval into :new.id from dual; end ; 这里我们想要每次插入新条目时id+1,那么就要在INCREMENT BY

堆组织表,索引组织表和索引聚簇表

南楼画角 提交于 2019-12-04 10:11:06
堆组织表,索引组织表和索引聚簇表 https://www.cnblogs.com/youngerger/p/8446399.html --- 堆组织表就不说了,其索引中记录了记录所在位置的rowid,查找的时候先找索引,然后再根据索引rowid找到块中的行数据 索引组织表,其行数据以索引形式存放,因此找到索引,就等于找到了行数据。 -- 堆组织表的数据是散放的,索引和表的数据是分离的 索引组织表的索引和数据是在一起的 -- 堆组织表的存储速度因为不用考虑排序, 所以存储速度会比较快. 但是要查找符合某个条件的记录, 就必须得读取全部的记录以便筛选. 而这个时候为了加快查询速度, 索引就出现了, 索引是针对少量特定字段的值拿出来进行排序存储, 并记录在表中的位置, 而因为索引是有序的, 所以就会很容易通过索引查询到具体的记录位置, 然后再根据记录位置直接从表中读取该记录. 同时因为索引的字段较少, 所以索引通常会比其基表小得多. 从上面通过索引访问表记录的方式可以看出, 当要访问的数据量较大时, 通过每一条记录的位置去访问原始记录, 每一条符合条件的记录都需要经过索引访问后再访问基表这样一个复杂的过程, 这会花费很多时间, 同样, 如果不经过索引而直接查询表, 也可能因为表字段太多, 记录较大的情况下把全部的数据读取进来, 这也会花费很多时间. 那怎么办呢? 这个时候就会想到,