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.值可以是具体的值,也可以使用函数,也可以是子查询,子查询只能是单行单列子查询,还可以是计算。

相关推荐
Code季风11 分钟前
GORM 一对多关联(Has Many)详解:从基础概念到实战应用
数据库·go·orm
IT果果日记34 分钟前
Apache Doris毫秒级分布式数据库引擎
大数据·数据库·后端
时序数据说37 分钟前
时序数据库的功能与应用价值
大数据·数据库·物联网·时序数据库
知之为知37 分钟前
时序数据库-涛思数据库
数据库·时序数据库·涛思数据
曼波の小曲2 小时前
运维学习Day20——MariaDB数据库管理
运维·数据库·学习
wl85112 小时前
SAP HCM 标准表视图创建(汇率数据)
数据库
荔枝吻2 小时前
【保姆级喂饭教程】python基于mysql-connector-python的数据库操作通用封装类(连接池版)
数据库·python·mysql
小李同学_LHY4 小时前
Redis一站式指南二:主从模式高效解决分布式系统“单点问题”
java·数据库·redis·缓存
JAVA学习通4 小时前
【redis初阶】------List 列表类型
数据库·redis·缓存
程序员JerrySUN9 小时前
基于 RAUC 的 Jetson OTA 升级全攻略
java·数据库·redis