Oracle基础(十) DML数据操作

一、DML数据操作语言

  主要用于检索、插入和修改数据库信息。它是最常用的SQL命令,如INSERT(插入)、UPDATE(更新)、SELECT(选择)、DELETE(删除)。

  1、INSERT插入语句:

  语法:

  INSERT INTO tablename[column1[,column2...]]

  VALUES (value1[,value2...]);

  说明:

  INSERT INTO:为插入的关键字。

  tablename:表示要插入的表。

  column1:可选参数,表示要插入的列,多个列使用,分隔。

  values(value1..):插入的值,这里的value1,必须和前面的列相对应,如果不写列,则必须和表的结构一致。

  例:  

--创建学员信息表,并添加约束
CREATE TABLE stuinfo
(
  stuName VARCHAR2(20) NOT NULL CONSTRAINT pk_name PRIMARY KEY,
  stuPass VARCHAR2(20) NOT NULL CONSTRAINT ck_pass CHECK (LENGTH(stupass) > 3),
  stuAge NUMBER(3,0) NOT NULL CONSTRAINT ck_age CHECK (stuage>18),
  birthday DATE DEFAULT SYSDATE
)

  向学员信息表中插入数据   

--向学生表中插入一条记录
INSERT INTO stuinfo(stuname,stupass,stuage,birthday)
VALUES (‘张三‘,‘123123‘,20,DEFAULT)

--添加自定义日期类型的数据
INSERT INTO stuinfo
VALUES (‘李四‘,‘123456‘,25,to_date(‘1999-9-20‘,‘yyyy-Mm-dd‘))

  这里需要注意:

  1)插入的列必须和插入的值一一对应,包括数据类型,个数,顺序必须要全一致。

  2)如果数据表中包含了默认值,则可以使用default关键字插入默认值。

  3)插入的数据必须满足数据约束。否则插入失败。

  4)插入的列可以省略,但是必须按照表中列的顺序插入数据。

  5)通过to_date完成对日期函数数据的添加。

  6)插入字符串类型必须使用‘包含起来。

  插入多行记录:

  1、insert..into...select...生成自定义数据

--一次插入多行数据,通过union关键字拼接查询
INSERT INTO stuinfo(stuname,stupass,stuage,birthday)
SELECT ‘王五‘,‘888888‘,20,to_date(‘1999-8-8‘,‘yyyy-Mm-dd‘) FROM dual UNION
SELECT ‘赵六‘,‘666666‘,25,to_date(‘195-8-20‘,‘yyyy-Mm-dd‘) FROM dual

  将多个查询结果拼接起来一次插入数据库,这里查询的类型数据必须和插入的数据类型和顺序完全一致。

  2、insert..into...select...将已经存在表的记录插入到新表中  

INSERT INTO stuinfo (stuname,stupass,stuage,birthday)
SELECT NAME,pass,age,SYSDATE FROM backuser

  将查询结果插入到一个已经存在的表中,如果表不存在则报错。

  3、select...into...  

--将查询到的数据生成一张新的表
CREATE TABLE backuser AS
SELECT stuname,stupass,stuage,birthday
FROM stuinfo

  将查询到的结果插入到一张新表中,表必须不存在,如果存在则报错。

  

  2、update语句

  语法:

  update tablename set column_name=value[,column=value,...]

  [where=condition];

  说明:

  update:关键字

  tablename:表明

  column=value:设置列的值,多个列使用,隔开,不需要set。

  where condition:条件,必须为boolean表达式。如果不带条件则更所表中所有数据,操作要谨慎。

  例:  

--将赵六的密码修改为8个6,然后将出生日期改为1989-5-20
UPDATE stuinfo
SET stupass=‘666666‘,
birthday=to_date(‘1989-5-20‘,‘yyyy-MM-dd‘)   --插入日期需要进行格式转换
WHERE stuname = ‘赵六‘                       --指定修改数据的条件,条件不满足不执行任何操作
commit;                                      --执行完毕后自动进行提交

  注意:  

  1)修改的数据同样必须满足数据库中的约束。

  2)修改后的数据如果在PLSQL中需要使用comit提交事务,数据才算修改成功。

  3)修改后的条件需要跟上,否则是修改表中所有记录。

  

  3、删除语句

  1)DELETE语法:

  DELETE [FROM] tablename

  [WHERE condition];

  说明:

  DELETE [FROM]:为删除的关键字。FROM可以省略不写。

  tablename:要删除数据的表。

  where condition:要删除数据的条件,不写则删除表中所有记录

  例:  

DELETE stuinfo WHERE stuname = ‘赵六‘  --删除用户名为‘赵六的用户信息‘;
DELETE stuinfo                        --删除表中所有的记录

  

  2)TRUNCATE table 清空表

  语法:

  truncate tablename;

  说明:

  truncate:清空关键字。

  tablename:要清空的表明。

  例:  

TRUNCATE TABLE backuser;  --清空backuser表

  delete和truncate的区别:

  a)truncate快速删除记录并释放空间,不适用事务处理,因此无法回滚,而delete命令可在执行删除之后,通过rollback撤销删除。

  b)truncate将删除表中的所有记录,而DELETE不仅可以删除表中的记录,还可以通过where条件删除表中的部分数据。

时间: 2024-10-16 04:37:35

Oracle基础(十) DML数据操作的相关文章

数据存储——SQLite语句之DML 数据操作语言和内置函数之聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f

数据存储——SQLite数据库存储——SQL语句——DML数据操作语言、内置函数聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f

6.1课堂笔记—DML(数据操作语言),DQL查询语句

一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%storage_engine%'; 1.表中插入数据 #添加课程 INSERT INTO `subject` VALUES (5,'C#',160,1); #插入多门课程 INSERT INTO `subject`(subjectName,classHour,gradeID) VALUES ('数学',

SQL入门-DML数据操作语言

DML数据操作语言 1.针对数据行的操作 加大 -U 使用严格模式,限制update 和where语句 mysql -uroot -p -U 严格模式下删除数据需要使用索引,作为条件才能删除 mysql> delete from anyux.test; ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column--

DDL-数据库操作、 DML数据操作

DDL之数据库操作:database 创建数据库 格式: create database 数据库名; create database 数据库名 character set 字符集; #创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8 create database webdb_1; #创建数据库 并指定数据库中数据的编码 create database webdb_2 character set utf8; 查看数据库 查看数据库MySQL服务器中的所有的数据库: sh

DML数据操作语言

DML: 数据操作语言INSERT, DELETE, UPDATE, SELECT 常用的语句,增.删.改.查: INSERT: 一次插入一行或多行数据: Syntax: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDAT

SQL DML数据操作语言 教程

数据操作语言(Data Manipulation Language)用于操作表中的数据,包括插入(INSERT).修改(UPDATE).删除(DELETE)以及合并(MERGE).虽然我们使用最多的是查询语句,但生成数据是进行查询分析的前提:应用程序通常也需要使用 DML 语句进行业务数据的操作. SQL 数据操作语言 SQL DML增加数据 SQL DML修改数据 SQL DML删除数据 SQL DML合并数据 原文地址:https://www.cnblogs.com/numpycomcn/p

jQuery 源码分析(十四) 数据操作模块 类样式操作 详解

jQuery的属性操作模块总共有4个部分,本篇说一下第3个部分:类样式操作部分,用于修改DOM元素的class特性的,对于类样式操作来说,jQuery并没有定义静态方法,而只定义了实例方法,如下: addClass(value) ;为匹配元素集合中的每个元素添加一个或多个类样式,通过修改DOM属性className来修改类样式,value可以是个以空格分隔的类样式或者一个函数(返回一个或多个以空格分隔的类样式) hasClass(selector)   ;检测匹配元素中的任意元素是否含有指定的类

DML数据操作语言之查询(二)

当我们查询出了N条记录之后 ,我们知道一共是几条记录,或者这些记录某一字段(列值)的最大值,最小值,平均值等,就可以使用聚合函数. 1.聚合函数 聚合函数会将null 排除在外.但是count(*)例外,并不会排除null. 常用的聚合函数有 5个 :               聚合函数 用在select子句中 count(列名)     :   计算表中的数据行数 使用 count(*)  会查出 包含null在内的全部数据行数 . 使用count(某列名) 会查出  该列不包含null在内