Oracle的DDL和DML

Oracle知识点整理(二)前言SQLSQL的分类Oracle的数据类型NUMBERCHARVARCHAR/VARCHAR2DATESQL操作创建表查看表结构删除表修改表修改表名修改表的结构新增字段修改字段删除字段新增数据修改数据删除数据前言这一章主要介绍一下SQL中的DDL和DML,以Oracle为例。SQLSQL:StructuredQueryLanguage结构化查询语言SQL是在关系型数据库上执行数据操作、检索、维护所使用的标准语言。所有的数据库都使用相同或相似的语言。SQL

大家好,又见面了,我是你们的朋友全栈君。

前言

这一章主要介绍一下SQL中的DDL和DML,以Oracle为例。

SQL

SQL:Structured Query Language 结构化查询语言
SQL是在关系型数据库上执行数据操作、检索、维护所使用的标准语言。
所有的数据库都使用相同或相似的语言。

SQL的分类

SQL分为DDL、DML、TCL、DQL、DCL。
DDL:数据定义语言。用于创建、修改、删除数据库对象。包括CREATE/ALTER/DROP/TRUNCATE
DML:数据操作语言。用于改变表中的数据,和事务相关,执行完后需要经过事务控制语言提交后才能将改变应用到表中。包括INSERT/UPDATE/DELETE
TCL:事务控制语言。用来维护数据一致性的语句,包括COMMIT 提交/ROLLBACK 回滚/SAVEPOINT 保存点
DQL:数据查询语言。用来查询所需数据,只有SELECT语句,他是最复杂的SQL,大部分面试涉及SQL都是考察DQL。
DCL:数据控制语言。用于执行权限的授予和收回操作。包括GRANT/REVOKE/CREATE USER

建议:SQL本身是不区分大小写的,由于可读性的问题,经常会把关键字全部大写,非关键字全部小写,比如上面涉及到的CREATE、INSERT、COMMIT等,当然了,还有一些其他的。这是一个建议,不这么写也完全没问题,看自己吧。

Oracle的数据类型

NUMBER

表示数字类型。
NUMBER(P,S),其中P表示数字的总位数,S表示小数的位数,如果没有S则不写,用于表示整数。
例如 a NUMBER(5,1),表示a字段表示的整数位最大位数四位,小数最大位数一位,表示的最大数字为:9999.9

CHAR

表示固定长度的字符类型。
CHAR(N),N表示占用的字节数,最大为2000字节。
例如 b CHAR(20)表示b字段最多存储20个字节的字符串,并且占用的空间是固定的20字节。

VARCHAR/VARCHAR2

表示变长的字符类型
VARCHAR2(N)N表示最多可占用的字节数,最大长度为4000字节。
例如 c VARCHAR2(200)表示c列最多存储200字节,如果c只有30个字节,那么它所占用的空间只有30,而不会是200

注意:应该注意到我所使用的都是VARCHAR2,而没有使用VARCHAR。他们是什么关系呢?
VARCHAR2是Oracle弄出来的,就现在来说,他是和VARCHAR一样的功能,就是多了一个2而已,为什么会有这个2呢?有兴趣的可以去了解一下,在Oracle中,VARCHAR和VARCHAR2都是有的,但是Oracle建议使用VARCHAR2。

CHAR与VARCHAR2
CHAR是固定长度的类型,它存储每一条记录都是一样长的,所以,它会存在浪费空间的情况,但是查询快。
VARCHAR2是变长的类型,它存储每一条记录都是按照实际占用的空间来的,所以,它不存在浪费空间,但是查询会慢一点。
实际开发中,可以根据需要自行选择它俩。

DATE

用于定义日期时间的数据类型。
长度是7个字节,每个字节分别表示世纪、年、月、日、时、分、秒。可以看出他的精度最多到秒。如果要表示秒一下的时间,那就的用另一个类型TIMESTAMP。

SQL操作

创建表

CREATE TABLE A(
	id NUMBER(4),
	name VARCHAR2(20) NOT NULL,
	gender CHAR(1) DEFAULT 'M',
	birth DATE,
	salary NUMBER(6,2),
	job VARCHAR2(30),
	deptno NUMBER(2)
)
  • 在数据库中,所有数据类型的默认值都是NULL
  • 创建表的时候可以使用DEFAULT为某个单独的字段设置默认值
  • 数据库中字符串的字面量是使用单引号,与Java不同
  • 虽然SQL本身不区分大小写,但是字符串的值是会区分大小写的
  • NOT NULL 表示该字段不能为空,不能与DEFAULT同时用在一个字段上

查看表结构

DESC A

删除表

DROP TABLE A

修改表

修改表名

RENAME A TO B

修改表的结构

新增字段

ALTER TABLE A ADD(
	hiredate DATE DEFAULT SYSDATE
)

只能加在最后一个字段之后

修改字段

可以修改字段的类型、长度、默认值、是否非空,不能修改字段名
避免表中有数据后修改,若此时修改尽量不修改类型,若修改长度应该增大而非缩小,否在可能修改失败

ALERT TABLE A MODIFY(
	job VARCHAR2(40)
)

删除字段

ALTER TABLE A DROP(hiredate)

新增数据

INSERT INTO A
(id,name)
VALUES
(1,'zs')

字段不用于表中的字段顺序一致,也不用全部写出来,根据需求去写,但是值的顺序和个数必须与上面的列出来的字段一致。

修改数据

UPDATE A SET
salary=6000,
gender='F'
WHERE id=1

如果不写where,就会把表中所有的记录都修改
数据库中的赋值就是’=’,这里跟Java不一样

删除数据

DELETE FROM A WHERE id=1

删除数据一般也要添加where条件,否在就会删除整张表的数据.

TRUNCATE是清空表操作,它是DDL,所有是不会受事务控制的,它的清空操作一旦执行就真的执行了,而且它的删除是比DELETE快很多的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126750.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月8日 下午1:00
下一篇 2022年4月8日 下午1:00


相关推荐

  • Zynq DMA与Dcache一致性调试

    Zynq DMA与Dcache一致性调试0 背景 ZynqFPGA 的优势之一就是 PS 端与 PL 端基于高带宽的协同设计 以简化系统的硬件架构和提高系统的集成度和整体性能 例如 在某些硬件加速应用场合 PL 端需要与 DDR3 存储芯片进行高速率的数据交互 且通常都采用 DMA 方式实现的 PS 端集成 DMA 控制器硬件单元 CDMA PL 端有 AXIDMA 软核可以使用 整个数据交互通信链路的节点包含 5 个 CPU lt gt Dcache lt gt DDR3 lt gt

    2026年3月26日
    4
  • c构造函数详解_构造函数有什么用

    c构造函数详解_构造函数有什么用c++构造函数详解。(构造函数的分类、拷贝构造函数)

    2025年10月7日
    4
  • 通义千问1.5-1.8B-Chat-GPTQ-Int4在网络安全领域的应用:威胁情报分析

    通义千问1.5-1.8B-Chat-GPTQ-Int4在网络安全领域的应用:威胁情报分析

    2026年3月12日
    3
  • AJAX读音_ajax怎么发音

    AJAX读音_ajax怎么发音AJAX的国际音标是:[ˈeɪdʒæks],读音是"eizhaikes"AJAX全称"AsynchronousJavaScriptandXML”(异

    2022年8月1日
    10
  • 以太坊(ETH)挖矿最新教程_以太坊个人挖矿

    以太坊(ETH)挖矿最新教程_以太坊个人挖矿以太坊(ETH)挖矿最新教程目前网上的大多数以太坊挖矿教程是很早整理编写的,基本都已过时不适用了。但挖矿是一个技术持续升级更新的过程,因此根据最新实战情况编写了本文,并争取在以后抽时间持续保持跟进更新。一.基本要求ETH 挖矿主要是使用显卡来挖矿。因此你需要一台拥有以下设备的PC(矿机):显卡、主板、电源、CPU、内存(推荐4G)、硬盘(推荐60G的SSD)、PCI-E转接线

    2022年10月15日
    5
  • hdfs命令大全_hdfs创建文件夹命令

    hdfs命令大全_hdfs创建文件夹命令hdfs常用命令:第一部分:hdfs文件系统命令第一类:文件路径增删改查系列:hdfsdfs-mkdirdir创建文件夹hdfsdfs-rmrdir删除文件夹dirhdfsdfs-ls查看目录文件信息hdfsdfs-lsr递归查看文件目录信息hdfsdfs-statpath返回指定路径的信息第二类:空间大小查看系列命令:hdfsdfs-du-h…

    2022年10月4日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号