语言基础DML学习.pptx
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第17页/共21页
总
结
• 运算符主要有四类:算术运算符、条件运算符、通配运算符、逻两种方式:
插入表数据的两种语法是:
A、insert into tableName(...) values(....)
B、insert into tableName(...) select ... from tableName
第4页/共21页
条件运算符
常用的条件运算符
运算符
含义
=
等于
>
大于
<
小于
>=
大于等于
<=
小于等于
<>
不等于
示例 AuthorID=5 Price>50 Quantity<20 Age>=50 Price<=100 Birthday<>‘1970-10-10’ (注:不等于可以使用!=代替)
第5页/共21页
通配运算符 常与like关键字配合使用,表示一个模糊的范围
运算符
含义
示例
%
任意长度的字符串
Email like ‘%@%.com’
‘_’
任意一个字符
AuthorName like ‘张_’
第6页/共21页
逻辑运算符
逻辑运算符
运算符
含义
示例
and
连接的两个条件表达式都为True, 表达式结果才为True,否则为False
修改表数据使用update语法:
update tableName set column=value,... where ...
使用DML语法执行插入、删除及修改时必须保证原先表定义的类型、格 式、约束等
第18页/共21页
作业
• 运算符主要有哪四类,每类中各有哪些运算符? • 插入表数据的语法有哪两种语法,各是什么? • 删除表数据的语法有哪两种语法,各是什么,有何区别? • 修改表数据的语法是什么,修改时是否指定where条件有何区别? • 使用DML语法完成插入、删除、修改时应该注意些什么?
第9页/共21页
插入数据实例(一) 示例
insert into student values(3,'黄晓明','计算机信息与工程','08-9月-75',1); 相等
insert into student (student_id,name,major,birthday,teacher_id) values(3,'黄晓明','计算机信息与工程','08-9月-75',1);
第11页/共21页
DML之修改表数据
语法
update tableName set <column=value> [where condition] 其中: 1、column = value 为必选项,用于更新表中某列数据,在SET后面可 以出现多个,只需用逗号隔开。 2、where关键字是可选的,用来限定条件,如果Update语句不限定条件, 表中所有数据行都将被更新。
删除表数据的两种语法是:
A、delete from tableName where ....
B、truncate table tableName
二者区别:truncate只能删除整表数据,delete可以根据where条件删除 单行、多行或整表数据,当删除整表数据时truncate速度更快,是删除整表 方式的首选
第10页/共21页
插入数据实例(二) 示例
insert into student select 3,'黄晓明','计算机信息与工程','08-9月-75',1 from dual; 相等
insert into student (student_id,name,major,birthday,teacher_id) select 3,'黄晓明','计算机信息与工程','08-9月-75',1 from dual; insert into student (student_id,name) select empno,empname from emp;
第19页/共21页
第20页/共21页
感谢您的观看!
第21页/共21页
truncate table tableName [drop storage|reuse storage]
其中: 1、 tableName为必选项,用于指定要删除数据的表名 2、where关键字是可选的,用来指定一个条件以限定要删除数据的表行,
如果delete语句不限定条件,表中所有数据行都将被删除 3、drop storage:这是使用truncate删除数据的默认值,表示删除数据之后
第13页/共21页
修改表数据实例
示例
将teacher表中的所有教师的职务更改成“院长” update teacher set zhiwu='院长';
将编号为“3” 的教师的职称更改为“副教授” update teacher set zhicheng='副教授' where teacher_id=3;
A > 90 and B >100
连接的两个条件表达式中有一个为
or
True,则表达式结果就为True
A >90 or B >100
not
否定条件
not (A > 90)
第7页/共21页
DML之插入表数据 语法
insert into tableName[(column[,column…])] values(value[,value…]) insert into tableName [(column[,column…])] select ...from tableName 其中:“[]”代表可选的; tableName 表示添加记录的表名 column[, column…] 表示添加数据的列名,如果有多列用逗号隔开 value[,value…] 添加的具体数据,如果有多个值用逗号隔开 select... 表示插入的数据来自于另一张表的查询结果
本章案例
• 在Oracle中创建teacher表并使用表的DML对表做数据插入、数据删除和数据 修改
第2页/共21页
本章目标
• 掌握并熟记使用DML插入数据的两种语法 • 掌握并熟记使用DML删除数据的语法 • 掌握并熟记使用truncate清空表的语法 • 掌握并熟记使用DML修改表数据的语法
第3页/共21页
第8页/共21页
插入数据时应该注意的问题
值列表的个数必须与列名数目保持一致 值列表中值的数据类型、精度要与对应的列类型保持一致 可以不指定列名,但值列表中值的顺序应该与表中字段顺序保持一
致 添加的值必须符合表的约束条件,否则不能添加成功
INSERT INTO TEACHER (teacher_id,name,zhicheng,zhiwu) VALUES(3,‘谭浩强‘,’副教授’,’主任’);
第12页/共21页
修改数据时应该注意的问题
• 修改后的数据必须保证符合表中原先定义的类型、格式、约束等,如果违反原先 表的任何定义则修改数据将失败. 比如: 将主键列中的某个值改成与主键列中原先存在的某个值相同则将违反主键约束 (非空且唯一)导致修改抛出错误而失败 将外键列的值修改成一个在主表中引用列上找不到的值也将发生错误而导致失 败,因为它违反了外键约束
SQL语言表达式
• SQL既然是一门语言,那么它就与其它语言一样有表达式。表达式是由变量、运算 符和常量值组成的。
变量:由于SQL语言是对数据库进行编程的语言,所以表达式中的变量一 般就是表中 的列名。 常量:可理解为固定不变的数值符号。可由字母、数字或特殊符号组成。
运算符:可分算术运算符、关系运算符、逻辑运算符、通配运算符。
将删除数据占用的空间,与此相反,reuse storage则表示删除数据之后保 留数据占用空间 4、truncate只能删除整表数据,delete可以根据条件删除单行、多行或整表
第15页/共21页
删除数据时应该注意的问题
• 删除数据后必须能保证符合表中原先定义的类型、格式、约束等,如果违反原先 表的任何定义则删除数据将失败. 比如: 从表中有一个外键引用主表中主键列的值,此时如果删除该主表中主键列的值将 导致违反外键约束而抛出错误,最后致使删除数据失败
truncate删除数据与delete删除数据的不同点在于truncate语法本身不属于 DML语法,它删除数据时是清空整表数据并且不产生任何回滚信息,删除数据的速 度比delete快(注:数据量大时才能体现出来)
第16页/共21页
删除表数据实例 示例
delete from teacher where name='谭浩强' delete from teacher where gender=‘男‘ and age>50 truncate table teacher
将编号为“3” 的教师的职称更改为“副教授”同时职务更改为”院 长”
update teacher set zhicheng=‘副教授‘,zhiwu=‘院长’ where teacher_id=3;
第14页/共21页
DML之删除表数据
语法
delete [from] tableName [where condition]
总
结
• 运算符主要有四类:算术运算符、条件运算符、通配运算符、逻两种方式:
插入表数据的两种语法是:
A、insert into tableName(...) values(....)
B、insert into tableName(...) select ... from tableName
第4页/共21页
条件运算符
常用的条件运算符
运算符
含义
=
等于
>
大于
<
小于
>=
大于等于
<=
小于等于
<>
不等于
示例 AuthorID=5 Price>50 Quantity<20 Age>=50 Price<=100 Birthday<>‘1970-10-10’ (注:不等于可以使用!=代替)
第5页/共21页
通配运算符 常与like关键字配合使用,表示一个模糊的范围
运算符
含义
示例
%
任意长度的字符串
Email like ‘%@%.com’
‘_’
任意一个字符
AuthorName like ‘张_’
第6页/共21页
逻辑运算符
逻辑运算符
运算符
含义
示例
and
连接的两个条件表达式都为True, 表达式结果才为True,否则为False
修改表数据使用update语法:
update tableName set column=value,... where ...
使用DML语法执行插入、删除及修改时必须保证原先表定义的类型、格 式、约束等
第18页/共21页
作业
• 运算符主要有哪四类,每类中各有哪些运算符? • 插入表数据的语法有哪两种语法,各是什么? • 删除表数据的语法有哪两种语法,各是什么,有何区别? • 修改表数据的语法是什么,修改时是否指定where条件有何区别? • 使用DML语法完成插入、删除、修改时应该注意些什么?
第9页/共21页
插入数据实例(一) 示例
insert into student values(3,'黄晓明','计算机信息与工程','08-9月-75',1); 相等
insert into student (student_id,name,major,birthday,teacher_id) values(3,'黄晓明','计算机信息与工程','08-9月-75',1);
第11页/共21页
DML之修改表数据
语法
update tableName set <column=value> [where condition] 其中: 1、column = value 为必选项,用于更新表中某列数据,在SET后面可 以出现多个,只需用逗号隔开。 2、where关键字是可选的,用来限定条件,如果Update语句不限定条件, 表中所有数据行都将被更新。
删除表数据的两种语法是:
A、delete from tableName where ....
B、truncate table tableName
二者区别:truncate只能删除整表数据,delete可以根据where条件删除 单行、多行或整表数据,当删除整表数据时truncate速度更快,是删除整表 方式的首选
第10页/共21页
插入数据实例(二) 示例
insert into student select 3,'黄晓明','计算机信息与工程','08-9月-75',1 from dual; 相等
insert into student (student_id,name,major,birthday,teacher_id) select 3,'黄晓明','计算机信息与工程','08-9月-75',1 from dual; insert into student (student_id,name) select empno,empname from emp;
第19页/共21页
第20页/共21页
感谢您的观看!
第21页/共21页
truncate table tableName [drop storage|reuse storage]
其中: 1、 tableName为必选项,用于指定要删除数据的表名 2、where关键字是可选的,用来指定一个条件以限定要删除数据的表行,
如果delete语句不限定条件,表中所有数据行都将被删除 3、drop storage:这是使用truncate删除数据的默认值,表示删除数据之后
第13页/共21页
修改表数据实例
示例
将teacher表中的所有教师的职务更改成“院长” update teacher set zhiwu='院长';
将编号为“3” 的教师的职称更改为“副教授” update teacher set zhicheng='副教授' where teacher_id=3;
A > 90 and B >100
连接的两个条件表达式中有一个为
or
True,则表达式结果就为True
A >90 or B >100
not
否定条件
not (A > 90)
第7页/共21页
DML之插入表数据 语法
insert into tableName[(column[,column…])] values(value[,value…]) insert into tableName [(column[,column…])] select ...from tableName 其中:“[]”代表可选的; tableName 表示添加记录的表名 column[, column…] 表示添加数据的列名,如果有多列用逗号隔开 value[,value…] 添加的具体数据,如果有多个值用逗号隔开 select... 表示插入的数据来自于另一张表的查询结果
本章案例
• 在Oracle中创建teacher表并使用表的DML对表做数据插入、数据删除和数据 修改
第2页/共21页
本章目标
• 掌握并熟记使用DML插入数据的两种语法 • 掌握并熟记使用DML删除数据的语法 • 掌握并熟记使用truncate清空表的语法 • 掌握并熟记使用DML修改表数据的语法
第3页/共21页
第8页/共21页
插入数据时应该注意的问题
值列表的个数必须与列名数目保持一致 值列表中值的数据类型、精度要与对应的列类型保持一致 可以不指定列名,但值列表中值的顺序应该与表中字段顺序保持一
致 添加的值必须符合表的约束条件,否则不能添加成功
INSERT INTO TEACHER (teacher_id,name,zhicheng,zhiwu) VALUES(3,‘谭浩强‘,’副教授’,’主任’);
第12页/共21页
修改数据时应该注意的问题
• 修改后的数据必须保证符合表中原先定义的类型、格式、约束等,如果违反原先 表的任何定义则修改数据将失败. 比如: 将主键列中的某个值改成与主键列中原先存在的某个值相同则将违反主键约束 (非空且唯一)导致修改抛出错误而失败 将外键列的值修改成一个在主表中引用列上找不到的值也将发生错误而导致失 败,因为它违反了外键约束
SQL语言表达式
• SQL既然是一门语言,那么它就与其它语言一样有表达式。表达式是由变量、运算 符和常量值组成的。
变量:由于SQL语言是对数据库进行编程的语言,所以表达式中的变量一 般就是表中 的列名。 常量:可理解为固定不变的数值符号。可由字母、数字或特殊符号组成。
运算符:可分算术运算符、关系运算符、逻辑运算符、通配运算符。
将删除数据占用的空间,与此相反,reuse storage则表示删除数据之后保 留数据占用空间 4、truncate只能删除整表数据,delete可以根据条件删除单行、多行或整表
第15页/共21页
删除数据时应该注意的问题
• 删除数据后必须能保证符合表中原先定义的类型、格式、约束等,如果违反原先 表的任何定义则删除数据将失败. 比如: 从表中有一个外键引用主表中主键列的值,此时如果删除该主表中主键列的值将 导致违反外键约束而抛出错误,最后致使删除数据失败
truncate删除数据与delete删除数据的不同点在于truncate语法本身不属于 DML语法,它删除数据时是清空整表数据并且不产生任何回滚信息,删除数据的速 度比delete快(注:数据量大时才能体现出来)
第16页/共21页
删除表数据实例 示例
delete from teacher where name='谭浩强' delete from teacher where gender=‘男‘ and age>50 truncate table teacher
将编号为“3” 的教师的职称更改为“副教授”同时职务更改为”院 长”
update teacher set zhicheng=‘副教授‘,zhiwu=‘院长’ where teacher_id=3;
第14页/共21页
DML之删除表数据
语法
delete [from] tableName [where condition]