一、DML数据操作语言  (DQL  select )

  主要用于检索、插入和修改数据库信息。它是最常用的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 table SET 列名1=‘ 值’,列名2=‘ 值’……

    where 条件;

  例子: 

--将赵六的密码修改为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 表名 where 列名=‘值  a’;  --删除列名为 a 的一行数据

  delete  表名;  --删除该中所有的信息

  

  2)TRUNCATE table 清空表

  语法:

  truncate tablename;

  说明:

  truncate:清空关键字。

  tablename:要清空的表明。

        例:  

TRUNCATE TABLE es_product;   --清空 es_product 表中的所有信息

  

delete和truncate的区别:

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

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

DML 数据操控语言的更多相关文章

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

    一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%st ...

  2. DML数据操作语言

    DML数据操作语言 用来对数据库中表的数据记录进行更新.(增删改) 插入insert -- insert into 表(列名1,列名2,列名3...) values (值1,值2,值3...):向表中 ...

  3. DML数据操作语言之谓词,case表达式

    谓词:就是返回值是真值的函数. 前面接触到的“>” “<” “=”等称为比较运算符,它们的正式名称就是比较谓词.因为它们比较之后返回的结果是真值. 由于谓词 返回的结果是一个真值 ,即tr ...

  4. DML数据操作语言之增加,删除,更新

    1.数据的增加 数据的增加要用到insert语句  ,基本格式是: insert into <表名> (列名1,列名2,列名3,......) values (值1,值2,值3,..... ...

  5. DML数据操作语言之常用函数

    所谓函数,就是输入某一值,得到相应的输出结果的功能.相当于一个加工厂,给了原料,最终产出成品. 其中原料 就是参数(parameter). 产品 就是返回值. 函数大致可以分为以下五个种类: 算术函数 ...

  6. DML数据操作语言之复杂查询

    1.视图(View) 我们知道,在关系型数据库中,用来保存实际数据记录的是数据表.和表同等概念也是用来保存东西是:视图. 但是数据表是用来保存实际数据记录的,而视图是用来保存常用select语句的. ...

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

    当我们查询出了N条记录之后 ,我们知道一共是几条记录,或者这些记录某一字段(列值)的最大值,最小值,平均值等,就可以使用聚合函数. 1.聚合函数 聚合函数会将null 排除在外.但是count(*)例 ...

  8. DML数据操作语言之查询(一)

    1.select语句基础 基本语句格式:  select <列名>,.... from <表名>; select子句中列举出希望从表中查询出的列的名称,from子句则指定了选取 ...

  9. MySQL SQL DML (数据操作语言)

    包括 SELECT, UPDATE, DELETE, INSERT SELECT 从数据库表中获取数据 用法 SELECT name FROM students; SELECT name,age FR ...

随机推荐

  1. UVaLive 6697 Homework Evaluation (DP)

    题意:给出一个长字符串,再给一个短字符串,进行匹配,如果第i个恰好匹配,则 +8,:如果不匹配,可以给长或短字符串添加-,先后匹配,这样-3, 连续的长字符串添加-,需要减去一个4:也可不给添加-,则 ...

  2. INVALID_SOCKET的值

    INVALID_SOCKET的值 (2011-06-26 15:06:45) 标签: 杂谈 INVALID_SOCKET的值不是-1,原因参考basetsd.h和WinSock2.h: typedef ...

  3. div+css样式表的id,class的常用命名规则

    div+css样式表的id的常用命名规则如下表所示: div+css样式表的id的常用命名规则如下表所示: 页头 header 登录条 loginBar 标志 logo 侧栏 sideBar 广告 B ...

  4. 浏览器URL访问网页具体发生了什么

    [详细讲解:http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html]   ——浏览器输入URL ——DNS解析过程 解析域名,找到 ...

  5. strlen与sizeof的区别 [转]

    转自:http://www.cppblog.com/liangbo/archive/2006/10/06/13394.html 1.sizeof操作符的结果类型是size_t,它在头文件中typede ...

  6. Linux 中使用 KVM

    from:http://www.php-oa.com/2010/02/22/ubutnu-kvm-vmware.html 听讲XEN很快就要从LINUX内核中去掉,redhat和Ubuntu也大力的在 ...

  7. spring含参数 环绕通知demo

    题目:有一个懂得读心术的人需要完成两件事情:截听志愿者的内心感应和显示他们在想什么 <?xml version="1.0" encoding="UTF-8" ...

  8. call()和apply()方法

    还在处在刚刚学习JavaScript的初级阶段,所以理解相对浅显,是一种简单的模式理解.这里做一个笔记,让自己在回顾的时候,更加牢记. call()和apply()的形式 A.call(B," ...

  9. Codeforces Round #311 (Div. 2) C. Arthur and Table Multiset

    C. Arthur and Table Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/p ...

  10. C# 图片裁剪代码

    /// <summary> /// 缩小裁剪图片 /// </summary> /// <param name="int_Width">要缩小裁 ...