oracle创建表

oracle数据库创建表

大城市里の小女人 提交于 2019-12-03 22:38:45
oracle数据库创建表 原文连接 https://www.cnblogs.com/fighter007/p/8276319.html 实际工作中,在数据库中创建表是经常会用到的。我们今天呢?主要给大家来分享一下在数据库如何通过sql语句去创建表。其实,创建表很简单,只需要把数据库的数据类型和约束搞清楚就可以了,其他的就好说了。接下来呢,开始我的表演。首先,先使用plsql连接到oracle数据库,先保证下面的服务是开启的。 我们本次创建表的需求是:创建一张班级表,和一张学生表。 1.首先班级表作为主表也就是所谓的主键。在主表中我们这里使用的约束是primarykey 和not null (当然不局限于这些) create table classinfo( classid number(2) primary key, classname varchar(10) not null ); sql解析: --create table 创建表的关键字 --classinfo 是创建的表的名字 --classid 是班级表的id 数据类型是number(2)类型,我们默认给了2个长度,我们将班级id设置为主键方便其他外键关联 --classname 是班级名字 数据类型是字符型varchar(10),我们给了默认10个字符长度,班级名的约束是不能为空 执行sql语句:

Oracle面试题(基础篇)(转)

大城市里の小女人 提交于 2019-12-03 14:37:39
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windows平台的稳定性和安全性影响了sql server的稳定性和安全性 2). oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-SQL 微观上: 从数据类型, 数据库 的结构等等回答 2. 如何使用Oracle的游标? 1). oracle中的游标分为显示游标和隐式游标 2). 显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。 3). 显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它 3. Oracle中function和procedure的区别? 1). 可以理解函数是存储过程的一种 2). 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 3). 函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程

Oracle 出现 ORA-00942 表或视图不存在问题的解决方法

匿名 (未验证) 提交于 2019-12-03 00:34:01
使用 SQL 语句创建 Oracle 表时抛出如下异常: 可以使用以下语句来查询( 注意: 大小写敏感): select * from all_objects where object_name= '对象名' ; 一般是因为创建 Oracle 表 SQL 语句中,表名使用了小写字母才出现了这样的问题。记住:在 Oracle 中表名与字段名最好都是 大写 的! 文章来源: Oracle 出现 ORA-00942 表或视图不存在问题的解决方法

Oracle创建表及管理表

匿名 (未验证) 提交于 2019-12-02 23:06:17
转自:https://www.linuxidc.com/Linux/2018-05/152566.htm Oracle 表的创建及管理 创建表包括三个要素,表名,列名,数据类型。每个表都有对应不同的列,每个列都有唯一对应的数据类型。常用数据类型简介: 数据类型 CHARACTER(n) INTEGER(p) NUMERIC(p,s) DATE TIMESTAMP 相关语句 --例:创建表名为table1,列名为column1,column2,…,数据类型为特定数据类型的表 Create table table1( Column1 datetype, Column2 datetype, …… ); --添加字段:在已经建好的表table1中添加字段columnX,字符类型为number Alter table table1 add columnX number; --修改字段数据类型:修改columnX的数据类型为date Alter table table1 Modify columnX date; --修改字段名:修改columnX的名称为columnY Alter table table1 Rename column columnX to columnY; --删除字段:删除字段columnY Alter table table1 Drop column columnY -

Oracle 创建表并设置主键自增

狂风中的少年 提交于 2019-11-30 17:51:55
--创建表 CREATE TABLE STUDENT( ID NUMBER PRIMARY KEY, NAME VARCHAR(200) NOT NULL, SEX VARCHAR(200), CREATE_DATE DATE); --指定列注释 COMMENT ON COLUMN STUDENT.ID IS '学生ID'; COMMENT ON COLUMN STUDENT.NAME IS '学生姓名'; COMMENT ON COLUMN STUDENT.SEX IS '学生性别'; COMMENT ON COLUMN STUDENT.CREATE_DATE IS '创建日期'; --创建序列 CREATE SEQUENCE student_seq -- student_seq:序列名称 INCREMENT BY 1 -- 每次增加1个 START WITH 1 --从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE --直累加,不循环 NOCACHE --不建立缓冲区 -- 创建触发器 CREATE OR REPLACE TRIGGER STUDENT_TRG -- STUDENT_TRG:触发器名称 BEFORE INSERT ON STUDENT -- STUDENT:触发的数据表 FOR EACH ROW -- WHEN (new.ID is

ORACLE表、索引和分区

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 13:44:14
ORACLE 表、索引和分区 一、数据库表 每种类型的表都有不同的特性,分别应用与不同的领域 • 堆组织表 • 聚簇表 ( 共三种 ) • 索引组织表 • 嵌套表 • 临时表 • 外部表和对象表 1. 行迁移 • 建表过程中可以指定以下两个参数: • PCTFREE :自由空间,默认值 10 • PCTUSED (只适用于 MSSM ):默认值 40 • 设置这两个参数很重要: • 一方面避免迁移过多的行,影响性能 • 一方面避免浪费太多的空间 • 当自由空间存不下更新后的某一行时,这一行将会发生行迁移,在两个块上存储这一行数据,如下图: 2. 堆组织表 • 基本上我们使用的表都是堆组织表( heap organized table ),堆是无序的数据结构,数据的存取都是随机的,想要排序必须使用 order by 子句 • 对于 ASSM 有三个重要的选项: • PCTFREE • INITRANS :默认值 2 ,高并发会设置更大一些 • COMPRESS/NOCOMPRESS :启用 / 禁用压缩 3. 索引组织表( IOT ) • 以索引结构存储的表 • 使用场景: • 信息检索 • 空间数据 • OLAP 应用 • 创建,使用 organization index 子句: create table tbl( name varchar2(20), age int )

Oracle的对象——表,同义词,序列,视图,索引和簇

孤街醉人 提交于 2019-11-30 08:22:27
一:表 a.创建表语法格式 create table table_name ( 字段1 类型1, 字段2 类型2, 字段3 类型3(也可以给字段设置默认值) ... ); Sql代码 create table student ( stuno int , stuname varchar (10) not null , stuBirth date default to_date( '1980-1-1' , 'YYYY-MM-DD' ) ); 查询一下表的结构:desc table_name Sql代码 SQL> desc student; Name Type Nullable Default Comments -------- ------------ -------- -------------------------------- -------- STUNO INTEGER Y STUNAME VARCHAR2(10) STUBIRTH DATE Y to_date( '1980-1-1' , 'YYYY-MM-DD' ) b.给已存在的表增加新列 :alter table tablen_ame add(列名1 列类型, 列名2 列类型...); Sql代码 alter table student add (t3 varchar (10),t4 varchar2(10), t5

关于ORACLE定时创建数据库表(转载)

筅森魡賤 提交于 2019-11-30 07:16:55
第一步:创建一个执行创建操作的存储过程 在这一步首先要解决的问题就是构造表名。在Oracle中格式话输出时间可以用to_char函数来处理,例如: SQL> select to_char(sysdate, ’yyyy/mm/dd hh24:mi:ss’) from dual; TO_CHAR(SYSDATE,’YYYY/MM/DDHH2 ------------------------------ 2009/02/14 17:22:41 以上SQL格式化输出了时间,要得到我们所需要的格式直接修改一下SQL即可 SQL> select to_char(sysdate, ’yyyymmdd’) from dual; TO_CHAR(SYSDATE,’YYYYMMDD’) --------------------------- 20090214 得到时间格式字符串后我们就可以将表名的前缀和时间连接在一起形成完整的表名。 这里需要注意,在Oracle中链接两个字符串需要使用‘||’符号,而在Sql Server中直接使用‘+’号就可以了,因为我以前一直在Sql Server下编程,好久都没编写Oracle的SQL所以费了很大的功夫才发现这个问题。完整的Sql就是 SQL> select ’tbl_programme_’ || to_char(sysdate, ’yyyymmdd’)

oracle查询表中所有字段

爷,独闯天下 提交于 2019-11-30 00:21:10
查询表中所有字段 -- user_tab_columns 自定义的字段 SELECT column_name FROM user_tab_columns where table_name = upper('表名') -- user_tab_cols 包含oracle创建的隐藏字段 SELECT column_name FROM user_tab_cols where table_name = upper('表名') 将表所有列名查出,并拼成字符串 select Listagg(column_name, ',') WITHIN GROUP(ORDER BY column_name) from user_tab_columns where table_name = upper('表名') --不想查询的字段名 and column_name not in ('字段名','字段名'); 来源: CSDN 作者: 花生福 链接: https://blog.csdn.net/zh_1721342390/article/details/89672731

Oracle单表备份三种方案

烂漫一生 提交于 2019-11-28 03:17:32
备份方案一: 1. 备份 create table [备份名] as select * from [表名]; 2. 恢复 truncate table org_group; insert into org_group select * from [备份名] ; 3. 说明 此种情况适用于,同一个数据库,需要备份某张表。 备份方案二: 1. 备份 oracle用户终端执行: exp [用户名]/[密码] tables=[表一],[表二] file=/home/oracle/table.dmp 2. 恢复 oracle用户终端执行: imp [用户名]/[密码] grants=y commit=y full=y ignore=y file=/home/oracle/table.dmp 备份方案三: 1. 备份 登录sqlplus: sqlplus / as sysdba 创建directory: create directory dpdata as '/home/oracle/'; 目录创建以后,就可以把读写权限授予特定用户: grant read, write on directory dpdata to [用户名]; oracle用户终端执行: expdp [用户名]/[密码] tables=[表一],[表二] directory=dpdata dumpfile=table.dmp