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

相关推荐
鹿角片ljp1 分钟前
动态SQL实现模糊查询
数据库·sql·oracle
晓风残月淡1 分钟前
mysql备份恢复工具Percona XtraBackup使用教程
数据库·mysql
DomDanrtsey4 分钟前
oracle所有表中文与字段最大长度检测
数据库·oracle
Z...........8 分钟前
数据库表设计
数据库
tudficdew13 分钟前
使用Python操作文件和目录(os, pathlib, shutil)
jvm·数据库·python
浒畔居14 分钟前
工具、测试与部署
jvm·数据库·python
云和数据.ChenGuang15 分钟前
python对接mysql和模型类的故障
数据库·python·mysql·oracle·conda·virtualenv
2301_8223827617 分钟前
开发一个简单的Python计算器
jvm·数据库·python
2501_9209992721 分钟前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
龚礼鹏30 分钟前
图像显示框架十一——BufferQueue的工作流程(基于Android 15源码分析)
java·网络·数据库