ORACLE SQL 数据操纵语言(DML)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Oracle sql*plus PLSQL Developer
作者:陈小白
撰写时间:2019年03月25日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DML: Data Manipulation Language 数据操纵语言
用于查询或修改数据记录,包括如下sql语句
insert:添加数据到数据库中
update:修改数据库中的数据
delete:删除数据库中的数据
select:选择查询数据(基础)
基本的select语句:
例如:
SELECT * FROM STU;(查询全部列)
选择特定的列
SELECT SNO,SNAME
FROM STU;
给列加别名
SELECT SNO AS S , SNAME AS NAME
FROM STU;
INSERT语句语法 :
注:用insert语句一次只能向表插入一条数据
按列的默认顺序列出各个列的值
在insert子句中随意列名和他们的值
字符和日期型数据应包含在单引号中
INSERT INTO(表名) (列名)VALUES(数据)
INSERT INTO STU(SNO, SNAME , SAGE, SEX)
VALUES (11 , ‘木城’ , ’20’ , ’男’)
向表中插入空值
隐式方式:在列名表中省略该列的值。
INSERT INTO STU(SNO, SNAME , SAGE, SEX)
VALUES (11 , ‘木城’ , ’20’ )
显式方式:在列名表中省略该列的值。
INSERT INTO STU(SNO, SNAME , SAGE, SEX)
VALUES (11 , ‘木城’ , ’20’ ,NULL)
插入指定的值
INSERT INTO(表名) (列名)VALUES(数据)
INSERT INTO STU(SNO, SNAME , SBIRTHDAY, SEX)
VALUES (11 , ‘木城’ ,SYSDATE ,’男’)\
从其他表中拷贝数据
在INSERT 语句中加入子查询
INSERT INTO (表名) SELECT…FROM…WHER
INSERT INTO STU
SELECT *
FROM STUDENTS
WHERE SNO = 10;
注:两张表的列与约束必须一致
创建脚本
INSERT INTO STU(SNO, SNAME , SBIRTHDAY, SEX)
VALUES ( &SNO’ , &SNAME’ , &SBIRTHDAY , &SSEX);
UPDATE语句语法:
注:使用update语句更新数据
可以一次更新多条
使用where子句指定需要更新的数据
update [表名]set...WHERE...
UPDATE STU
SET SNO=10
WHERE SNO = 5;
注:如果省略where子句,则表中所有数据都将被更新
DELETE语句语法 :
注:使用where子句删除指定的记录
delete from [表名]where ....
DELETE FROM STU
WHERE SNAME = ‘Lily’;
注:如果省略where子句,则表中的全部数据将被删除
在delete中使用子查询,使删除基于另一个表中的数据
DELETE FROM SC
WHERE SNO=(SELECT SNO
FROM STU
WHERE SNAME= ‘木城’);