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

文章目录

数据定义语言

是针对数据库对象操作的语言

数据库对象:表,约束,视图,索引,序列...

复制代码
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 AS
  SELECT ENAME,
         JOB,
         A.DEPTNO,
         DNAME,
         (SELECT AVG(SAL) FROM EMP B WHERE B.DEPTNO = A.DEPTNO) AVGSAL
    FROM EMP A
    LEFT JOIN DEPT
      ON 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....) 

连同数据一起删掉。

但是不能删除全部列,至少保留一个字段

相关推荐
ademen1 小时前
spring第9课,spring对DAO的支持
java·数据库·spring
Java小白程序员1 小时前
SQL 语句进阶实战:从基础查询到性能优化全指南
数据库·sql·性能优化
君不见,青丝成雪2 小时前
Hadoop技术栈(四)HIVE常用函数汇总
大数据·数据库·数据仓库·hive·sql
不羁。。7 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
yangchanghua1118 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance8 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai8 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白9 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务9 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂12 小时前
MVCC初学demo(一
数据库·后端·mysql