SQL-DML数据操纵语言(Oracle)

文章目录

DML数据操纵语言

定义 是针对数据做处理,对数据进行增删改的操作。

字段属性:每一个字段在创建时会自带一个属性,该属性决定了该字段存储什么样的数据

常见的字段属性

字符型字段属性

char(n)

固定长度字符串,该字段属性下只能存储字符型数据,n表示总长度,存储的数据总长度不超过n,长度不足n时,会在右侧以空格填充,最终是以n个长度存储。

varchar2(n)/varchar(n)

加2总长度会更长一点,使用更多。

varchar:可变长度字符串,该字段属性下只能存储字符型数据,n代表总长度,存入的数据总长度不能超过n,若长度不足n时,则以实际长度存储。

数值型字段属性

number([p],[s]

数值型字段属性,该属性下只能存储数值型数据。p代表了总长度,存入的数据总长度不能超过p(包含小数位),s表示精度,即小数保留多少位

s不写默认保留整数

p不写默认是38个长度

int

存储整数

日期型字段属性

DATE

是最常见的日期型字段属性,该属性下只能存储日期型数据,包含了世纪年月日时分秒

timestamp

时间戳,比date多出了毫秒部分

如何查看字段属性

查看表结构

增加数据INSERT

INSERT INTO 表名(列名1,列名2,列名3.......) VALUES (值1,值2,值3.......)

注意:值和列的个数,顺序,属性要一致

INSERT INTO emp (empno,ename,sal,hiredate) values (7999,TOMAS,3001,to_date('1992/12/15','yyyy/mm/dd'));

没有插入值的字段是空值

注意!DML语句需要提交才能生效。提交之后就不能回滚了

当所有字段都需要插入数据的时候,列名可以省略不写

语法:

INSERT INTO 表名 VALUES(值1,值2.....);

快捷插入

语法:

INSERT INTO 表名(列名.....) sql语句  ---将查询语句的结果插入到表中

注意:查询语句结果的字段个数,顺序,属性要和列一致

例题:

INSERT INTO emp(empno,ename) SELECT deptno,dname FROM dept

删除数据DELETE

DELETE FROM 表名 [WHERE 条件] 

不写where是删除所有数据

DELETE FROM EMP WHERE deptno = 10;---会把十号部门的人删掉

删除的是行,不是 某一列的值。

修改数据UPDATE

UPDATE 表名 SET 列名1 = 新值1,列名2=新值2... [where 条件]

不加WHERE是修改所有人

注意:

1.等号左右顺序不能变,等号是赋值

2.值可以是具体的值,也可以使用函数,也可以是子查询,子查询只能是单行单列子查询,还可以是计算。

相关推荐
翎野君1 小时前
在业务高峰期更新 PostgreSQL 表结构(DDL)导致性能问题
数据库·postgresql
想做富婆1 小时前
oracle:索引(B树索引,位图索引,分区索引,主键索引,唯一索引,联合索引/组合索引,函数索引)
数据库·oracle·索引
yours_Gabriel2 小时前
【Redis_1】初识Redis
数据库·redis·缓存
萝卜青今天也要开心3 小时前
读书笔记-《Redis设计与实现》(二)单机数据库实现(上)
java·数据库·redis·学习·缓存
@Java小牛马4 小时前
Redis真的是单线程的吗?
数据库·redis·缓存·reactor·单线程·多线程
biubiubiu07065 小时前
Redis缓存穿透,雪崩,击穿
数据库·redis·缓存
lingllllove9 小时前
ubuntu22.04防火墙策略
数据库·postgresql
程序猿小D12 小时前
第三百五十八节 JavaFX教程 - JavaFX滑块
java·前端·数据库
memorycx12 小时前
MySQL(3)
数据库·sql
My LQS12 小时前
使用 EXISTS 解决 SQL 中 IN 查询数量过多的问题
数据库·sql