Oracle-DDL(创建与管理表)

news/2025/1/9 10:00:32/

目录

一、创建表

二、修改表

三、删除表

四、对象重命名:


常见的数据库对象

表:基本的数据存储集合,由行和列组成;

视图:从表中抽出的逻辑上相关的数据集合;

序列:提供有规律的数值;

索引:提高查询的效率;

同义词:给对象起别名;

查看用户创建的表:select * from user_tables;

查询用户定义的表、视图、同义词、序列:select * from user_catalog;

查询用户所有数据库对象:select * from user_objects;(表、索引、过程、序列、函数)

一、创建表

create table 表名(

字段名 类型(长度)primary key,

...

);

表名和列名的命名规则

    • 必须字母开头
    • 必须在1~30个字符之间
    • 只能包含字母、数字、_$#
    • 不能和用户定义的其他对象同名
    • 不能是Oracle的保留字

数据类型

字符型

CHAR:用于存储固定长度的字符串,最多2000个字符

NCHAR:用于存储固定长度的Unicode字符数据。NCHAR的字符集只能是AL16UTF16或UTF8,在数据库创建时指定为国家字符集

VARCHAR2:存储可变长度的字符串,最多4000字符

LONG:大文本类型,最大2G

数字型

NUMBER 默认是18位

NUMBER[(precision [, scale])] 例NUMBER(5,2) 999.99

精度代表数字长度,尺度是小数位数;

FLOAT数据类型

FLOAT(p) FLOAT的最大精度是126

在FLOAT中,精度是二进制位,而在NUMBER中精度是十进制数,以下公式转换

P(d) = 0.30103 * P(b)

日期型

Date:日期类型,允许以一秒的精度存储包括日期和时间的时间点值

TO_CHAR()函数格式化日期

to_date()

DATE '2017-08-01'、ANSI日期文字没有时间部分,必须采用确切格式('YYYY-MM-DD')

TIMESTAMP:用于存储日期和时间数据,精确到秒的小数点后9位。

column_name TIMESTAMP[(fractional_seconds_precision)]

fractional_seconds_precision指定SECOND字段小数部分的位数。它的范围从0到9,这意味着可以使用TIMESTAMP数据类型来存储到纳秒的精度。如果省略fractional_seconds_precision,则默认为6

要提取TIMESTAMP组件(如年,月,日,小时,分钟和秒),请使用EXTRACT()函数

另外,它提供INTERVAL数据类型用于存储一段时间

有两种类型的INTERVAL:

  • INTERVAL YEAR TO MONTH - 间隔使用年份和月份。
  • INTERVAL DAY TO SECOND - 使用包括小数秒在内的天,小时,分钟和秒存储间隔。

INTERVAL YEAR [(year_precision)] TO MONTH

year_precision代表YEAR字段中的位数。范围从0到9。

year_precision是可选的。如果省略year_precision参数,则默认为2。也就是说,默认情况下,最多可以存储99年和11个月的期限,这个期限必须小于100年。

二进制类型

CLOB:存储字符,最大4G。

BLOB:存储图像、声音、视频,最多4G。

二、修改表

添加列

ALTER TABLE table_name ADD column_name type constraint;

添加多列:

ALTER TABLE table_name ADD

(

column_name type constraint,

column_name type constraint, ...

);

修改表-修改列属性

ALTER TABLE table_name MODIFY column_name type constraint;

修改列定义:

ALTER TABLE table_name MODIFY column_name action;

修改列的可见性

允许或不允许NULL值

缩短或扩大列的大小

更改列的默认值

修改虚拟列的表达式

删除现有的列

ALTER TABLE table_name DROP COLUMN column_name;

删除列:

从大表中删除列的过程可能耗费时间和资源,通常使用ALTER TABLE SET UNUSED COLUMN语句来逻辑删除列;

ALTER TABLE table_name SET UNUSED COLUMN column_name;

当执行了该语句,该列就不再可见。在非高峰时段,可以使用以下语句在物理上删除未使用的列:

ALTER TABLE table_name DROP UNUSED COLUMNS;

如果要减少累积的撤消日志量,可以使用CHECKPOINT选项,该选项在指定的行数已被处理后强制检查点

ALTER TABLE table_name DROP UNUSED COLUMNS CHECKPOINT 250;

删除多列

ALTER TABLE table_name DROP (column_1,column_2,...);

重命名列的子句

ALTER TABLE table_name RENAME COLUMN column_name TO new_name;

三、删除表

drop table table_name cascade constraints;

drop table table_name purge --该子句不允许您回滚或恢复删除的表

清空表:不能回滚rollback,效率比delete高

TRUNCATE TABLE语句

四、对象重命名:

执行rename语句改变表、视图、序列或同义词的名称

rename table_name to new_name;

ALTER TABLE table_name RENAME TO new_table_name;

DDL命令操作完,不可回滚


http://www.ppmy.cn/news/78699.html

相关文章

阿里云服务器 之 mqtt服务器搭建及使用

本文主要是对mqtt的学习使用,其中服务器是基于阿里云服务器的mqtt功能,客户端使用的是mqttx软件。 一、服务器部分搭建说明 1、如果是首次使用,则需要经过注册与认证的步骤。 2、找到"产品与服务"-->"物联网平台"&…

spring笔记

spring 和 springboot的区别 自动配置原理 beanFactory接口和ApplicationContext接口 两个都是 IOC 容器 ApplicationContext接口是BeanFactory接口实现类的子类 功能: ApplicationContext扩展BeanFactory BeanFactoryApplicationContext控制反转国际化支持 …

和月薪5W的京东程序员聊过后,才知道自己一直在打杂...

前几天和一个朋友聊面试,他说上个月同时拿到了腾讯和京东的offer,最后选择了京东。 京东内部将员工一共分为了14个等级,P6是资深工程师,P7是技术专家。 其中P6和P7就是一个分水岭了,P6是最接近P7的不持股员工&#x…

特瑞仕|关于无线射频

无线射频(Radio Frequency, RF)是指在一定频率范围内,通过无线电波进行通信和传输信息的技术。随着移动通信、物联网、智能家居等领域的不断发展,无线射频技术已经成为现代社会中不可或缺的一部分。本文将从以下几个方面对无线射频…

RPG游戏自动打怪之朝向判断

RPG游戏辅助想要做到自动打怪 获得到最近怪物信息以后 还需要面向怪物 否则背对怪物等等情况是没有办法攻击以及释放技能的 游戏设计的时候朝向是有很多种情况的 第一种 2D,2.5D老游戏,例如传奇 他的朝向一般是极为固定的4朝向或则8朝向 也就是不…

就业内推 | 国企招运维、网安,五险一金全额缴,最高15k

01 北京安信创业信息科技发展有限公司 🔷招聘岗位:网络运维岗 🔷职责描述: 1、负责北区数据中心、总部数据中心、部本部、21家在京直属事业单位内网网络系统的日常运行维护工作。 2、负责网络故障的应急处置。 3、负责网络系统…

JDBC入门

JDBC,Java数据库连接,是Java语言中与关系型数据库连接的一种API规范。它可以让Java程序通过标准的SQL语句来与数据库进行交互、操作数据。 本篇文章将带您进入JDBC的世界,让您了解JDBC的一些基本概念和操作。我们将以MySQL数据库为例进行操作…

又到520了,来画一朵抽搐的玫瑰花吧

文章目录 静态的玫瑰 敲了这么多年代码,每年都得画一些心啊花啊什么的,所以现在常规的已经有些倦怠了,至少也得来个三维图形才看着比较合理,而且光是三维的也没啥意思,最好再加上能动起来。 静态的玫瑰 网上有很多生…