VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 321|回复: 0

VC++高级班之数据库篇-[5]SQL之数据操纵语言DML的简介及使用

[复制链接]
51_avatar_middle
online_admins Syc 发表于 2018-6-7 01:06:31 | 显示全部楼层 |阅读模式
为了修改数据库中的数据,SQL的数据操纵语言提供了增(insert)、删(delete)、改(update)语句。

①、insert 语句:
插入一条新记录到表中:
◆ values 子句指定待添加数据的具体值;
◆ 若没有指定列名表,则values子句的排列顺序必须和原表的定义相同,个数相等,数据类型一一对应;
◆ 在插入新数据时,会对主键列的值进行主键唯一性检查。

例如:在students表中插入一条学生记录:
insert into students values('0406345', '白帆', '女', 21, 'english');
===================================================
②、插入记录的部分值:
在表中插入记录时,有时候可以只插入部分字段的值,有些字段暂时不插入值。
默认不插入值的列值为空值。
例如,在学生选课表sc中插入一条新的选课记录,但没有成绩,SQL语句如下:
insert into sc(sno, cno) values('0406321', 'C003');
===================================================
③、插入多行记录:
有时候要插入数据库表中的数据是数据库表中已经有的,可以用一个查询语句做为插入值。
例如,需要生成一个英语系学生的成绩表enggrade,表中包括:sname,cno,grade 三个属性。
首先,创建一个新表 enggrade:
create table enggrade(
        sname char(8) not null,
        cno char(4) not null,
        grade smallint
        );
       
然后,在新表中插入有关的数据:
insert into enggrade select sname, cno, grade from students, sc
where students.sno = sc.sno and sdept = 'english';
===================================================
④、delete 语句:
delete语句用于删除表中的一行或多行记录。
◆ where 子句表示要删除的记录应满足的条件;
◆ 如果没有where则表示要删除表中的所有记录,但是表仍然存在;
◆ 删除表用什么语句来着?
1、删除一条记录:
delete from sc where sno = '0406321' and cno = 'C001';

2、删除多条记录:
delete from sc where sno = any (select sno from students where sdept = 'english');

3、删除所有记录:
delete from enggrade;
===================================================
⑤、update 语句:
SQL语言可以使用update语句对表中的一个或多个记录的某些属性值进行更改。

1、修改一个记录:
例如:把学号为0406321的学生的C002课程的成绩修改为60,语句如下:
update sc set grade = 60 where sno = '0406321' and cno = 'C002';

2、修改多个记录:
例如:把所有学生的年龄都增加1,语句如下:
update students set sage = sage+1;
该语句中没有 where 条件,所以对表中所有记录都执行修改操作。
当符合 where 条件的记录为多个时,对这多个记录都进行修改。
例如:要把英语系学生的年龄都减1,SQL语句如下:
update students set sage = sage-1 where sdept = 'english';

3、利用查询子句提供要修改的记录:
例如:把数学系系学生的选课成绩都加10分,SQL语句如下:
update sc set grade = grade + 10 where sno in
        (select students.sno from students sc where students.sno = sc.sno
        and students.sdept = 'math');
       
4、利用查询子句提供要修改的值:
子查询除了能够提供需要修改的记录,在update语句中还能用子查询子句提供要修改的值。
例如:把所有选课的学分改为平均学分数的两倍,SQL语句如下:
update course set ccredit = (select 2*avg(ccredit) from course);
===================================================
※※※ 小作业:熟练掌握本节课讲解的各个SQL语句的用法。
------------------------------------- End -------------------------------------------

相关课程演示细节还请观看视频教程!
本套教程由VC驿站原创,提供视频教程+售后答疑服务!
VC驿站Vip会员售后答疑截图【持续更新】:https://www.cctry.com/thread-288054-1-1.html
教程介绍及详情请见:https://www.cctry.com/static/vip/index.html
VC驿站Vip会员详情请见:https://www.cctry.com/static/vip/index.html





上一篇:VC++高级班之数据库篇-[4]深入的SQL查询语言
下一篇:VC++高级班之数据库篇-[6]ADO数据库编程概述

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-12-11 05:10

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表