SQL--DDL数据定义语言(Oracle)

ops/2024/9/24 7:19:31/

文章目录

  • 数据定义语言
    • 创建表
    • 删除表
    • 清空表
    • 修改表
      • 修改表名,列名
      • 修改字段属性
      • 添加字段
      • 删除字段

数据定义语言

是针对数据库对象操作的语言
数据库对象:表,约束,视图,索引,序列…

CREATE     ---创建数据库对象
DROP       ---删除数据库对象
ALTER      ---修改数据库对象
TRUNCATE   ---清空  

以表来举例

创建表

CREATE TABLE  表名(列名1 字段属性,列名2 字段属性,列名3 字段属性.....)

表名和列名的命名规范:
1.必须以字母开头
2.不建议使用中文
3.除了_以外,不建议使用其他符号
4.长度不能超过30
5.同一个用户下,表名不能重复,同一张表下列名不能重复

CREATE TABLE Haha (Zno NUMBER(4),zname VARCHAR2(4000));
SELECT * FROM Haha;

在这里插入图片描述
DDL语言不需要commit提交的,执行成功即生效
快捷建表:

CREATE TABLE 表名 AS SQL语句 -----sql查询结果创建成表
CREATE TABLE hengh AS SELECT  emp.*,dname,loc FROM emp LEFT JOIN dept ON emp.deptno = dept.deptno;

在这里插入图片描述
表结构连同数据一起过来了。
如果不想要数据,可以在后面加一个永远不成立的条件,如:

CREATE TABLE hengheng AS SELECT  emp.*,dname,loc FROM emp LEFT JOIN dept ON emp.deptno = dept.deptno 
where 1=2;

在这里插入图片描述
练习:
快捷建表要求 该表有 姓名岗位薪资部门编号部门名称部门地址以及对应的部门平均工资

CREATE TABLE HEIHEI ASSELECT ENAME,JOB,A.DEPTNO,DNAME,(SELECT AVG(SAL) FROM EMP B WHERE B.DEPTNO = A.DEPTNO) AVGSALFROM EMP ALEFT JOIN DEPTON A.DEPTNO = DEPT.DEPTNO

删除表

DROP TABLES 表名

危险!因为是DDL语句,执行成功即生效,不要使用。

清空表

TRUNCATE TABLE 表名.

TRUNCATE 和DELETE 的区别
1.DELETE 属于dml语句,TRUNCATE 属于ddl语句
2.DELETE 会产生回滚日志,TRUNCATE 不会产生回滚日志,所以当你想要清空所有数据的时候,TRUNCATE 会效率高。
3.DELETE 可以删除部分数据,而TRUNCATE只能清空所有数据
4.DELETE 不释放空间,而TRUNCATE会释放空间

修改表

ALTER 修改数据库对象
以修改表举例

修改表名,列名

修改列名

ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

注意:在工作中尽量少用,

修改字段属性

语法

ALTER TABLE 表名 MODIFY (列名 新字段属性,列名2,新字段属性);

1.修改属性大小 — 一般情况下是 往大改

ALTER TABLE heih MODIFY(ename varchar(30));

如果往小改,不能低于数据长度。改到比数据还小则会错误
2.修改属性

ALTER TABLE heih MODIFY(ename,number)

若修改属性,则该列必须为空。

添加字段

ALTER TABLE 表名 ADD(列名1 字段属性,列名2 字段属性......)

删除字段

ALTER TABLE DROP (列名1,列名2,列名3....) 

连同数据一起删掉。
但是不能删除全部列,至少保留一个字段


http://www.ppmy.cn/ops/13282.html

相关文章

【MCU】栈溢出问题

项目场景: 硬件:STM32F407,操作系统:rt_thread master分支 问题描述 问题栈溢出 id 499 ide 00 rtr 00 len 8 9 Function[rt_completion_wait] shall not be used in ISR (0) assertion failed at function:rt_completion_wait,…

Es批量删除DeleteByQueryRequestBuilder

一、DeleteByQueryRequestBuilder DeleteByQueryRequestBuilder是Elasticsearch Java客户端中的一个类,用于构建和执行基于查询条件删除文档的请求。实验结果表明:删除速率大概是每秒3万条左右。 DeleteByQueryRequestBuilder类提供了一种方便的方式来…

Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码

Java语言开发的AI智慧导诊系统源码springbootredis 3D互联网智导诊系统源码 智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应…

【C语言】操作符

㊙️小明博客主页&#xff1a;➡️ 敲键盘的小明 ㊙️ ✅关注小明了解更多知识☝️ 文章目录 前言一、什么是操作符 &#xff1f;二、操作符的分类三、操作符详解3.1 算术操作符3.2 移位操作符3.2.1 左移操作符&#xff08;<<&#xff09;3.2.2 右移操作符&#xff08;&g…

Qt | 键盘事件

Qt | 鼠标事件第四节十、键盘事件 1、Qt 使用 QKeyEvent 类来描述与键盘有关的信息,比如按下或释放键的代码,使用枚举类型 QEvent::Type 描述与键盘有关的事件,比如 QEvent::KeyPress 表示键盘按下事件, QEvent::KeyRelease表示键盘释放事件等。 2、是否接收键盘事件,最…

(ChatGPT、Al柯基、Al Web、ChatGPT4.0中文网、VIVI-Al)分享好用的ChatGPT

目录 1、ChatGPT 2、AI柯基 - 智能写作助手 - 沈阳满信电子商务有限公司 3、AI Web

【Ubuntu20.04】使用 systemd 进行服务部署

1、服务文件 ExecStart&#xff0c;改成自己脚本的路径&#xff0c;比如程序启动脚本Restart&#xff0c;异常重启RestartSec&#xff0c;异常后多少秒后重启StartLimitInterval&#xff0c;异常后重试多少次&#xff0c;0 一直重试 [Unit] Descriptionyour_app[Service] Typ…

Oracle SQL - HAVING和分析函数的执行顺序

分析函数是基于最终的结果集进行开窗的&#xff0c;所以HAVING比分析函数先执行 ↓ 没有HAVING时&#xff0c;MAX(col3) over()是A2 SQL> WITH subq_a AS2 (SELECT A col1, A1 col2, 10 col33 FROM dual4 UNION ALL5 SELECT A col1, A1 col2, -5 col36 F…