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


相关推荐

  • GridView编辑删除操作

    GridView编辑删除操作

    2021年11月28日
    51
  • 回声状态网络ESN(原理)

    回声状态网络ESN(原理)回声状态网络 ESN 原理 结构特点网络有 3 层 输入层 隐含层 输出层 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp

    2026年3月26日
    2
  • PyCharm社区版安装教程和环境配置及使用[通俗易懂]

    PyCharm社区版安装教程和环境配置及使用[通俗易懂]一、PyCharm官网下载访问官网地址:https://www.jetbrains.com/pycharm/点击首页【Download】按钮,进入下载页面,选择Community下的【Download】,如图:点击后进入“ThankyoufordownloadingPyCharm!”页面,选择“另存为”,如图:选择本地目录路径,点击【保存】,开始下载:双击本地的PyCharm安装包,进入安装首页,点击【Next>】按钮,如图:进入“ChooseInstallLocati

    2022年8月28日
    11
  • Nodejs基础:stream模块入门介绍与使用

    Nodejs基础:stream模块入门介绍与使用

    2022年3月3日
    38
  • Windows WMIC命令使用详解

    Windows WMIC命令使用详解WindowsWMIC 命令使用详解第一次执行 WMIC 命令时 Windows 首先要安装 WMIC 然后显示出 WMIC 的命令行提示符 在 WMIC 命令行提示符上 命令以交互的方式执行 执行 wmic 命令启动 WMIC 命令行环境 这个命令可以在 XP 或 NETServer 的标准命令行解释器 cmd exe Telnet 会话或 运行 对话框中执行 这些启动方法可以在本地使用 也可以通过 NETS

    2026年3月19日
    2
  • java中类变量和实例变量

    java中类变量和实例变量java 中所有的变量分为 1 成员变量和 2 局部变量 1 成员变量包括 a 实例变量 b 类变量 以 static 修饰 区别 访问 实例变量是通过定义类的对象来访问 类变量可以通过类或类对象来访问 生存周期 实例变量与类对象生存周期共存亡 类变量与类共存亡 变量修改 多个对象指向不同的实例变量堆内存 即实例变量的值只与对象相

    2026年3月17日
    2

发表回复

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

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