数据库更新

数据更新包括数据插入、删除和修改操作。它们分别由INSERT语句,DELETE语句及UPDATE语句完成。这些操作都可在任何基本表上进行,但在视图上有所限制。其中,当视图是由单个基本表导出时,可进行插入和修改操作,但不能进行删除操作;当视图是从多个基本表中导出时,上述三种操作都不能进行。

  1.数据插入
  将数据插入SQL的基本表有两种方式:一种是单元组的插入,另一种是多元组的插入。
  单元组的插入:向基本表score中插入一个成绩元组(100002,c02,95),可使用以下语句:
  INSERT
INTO score(st_no,su_no,score) VALUES(‘100002’,‘c02’,95)
  由此,可以给出单元组的插入语句格式:
  INSERT INTO表名(列名1〔,列名2〕…) VALUES(列值1〔,列值2〕…)
  其中,列名序列为要插入值的列名集合,列值序列为要插入的对应值。若插入的是一个表的全部列值,则列名可以省略不写如上面的(st_no,su_no,score)可以省去;若插入的是表的部分列值,则必须列出相应列名,此时,该关系中未列出的列名取空值。
  多元组的插入:这是一种把SELECT语句查询结果插入到某个已知的基本表中的方法。
  例如:需要在表score中求出每个学生的平均成绩,并保留在某个表中。此时可以先创建一个新的基本表stu_avggrade,再用INSERT语句把表score中求得的每一个学生的平均成绩(用SELECT求得)插入至stu_avggrade中。
  CREATE
TABLE stu_avggrade
  (st_no CHAR(10) NOT NULL,//定义列st_no学号,类型为10位定长字符串,非空
  age_grade SMALLINT NOT NULL )// 定义列age_grade平均分,类型为短整形,非空
  INSERT
INTO stu_avggrade(st_no,age_grade)
  SELECT st_no,AVG(score)
  FROM score
  GROUP BY st_no //因为要求每一个学生所有课程的平均成绩,必须按学号分组进行计算。
  2.数据删除
  SQL的删除操作是指从基本表中删除满足WHERE<条件表达式>的记录。如果没有WHERE子句,则删除表中全部记录,但表结构依然存在。其语句格式为:
  DELETE
FROM表名〔WHERE 条件表达式〕
  下面举例说明:
  单元组的删除:把学号为100002的学生从表student中删除,可用以下语句:
  DELETE FROM student
  WHERE st_no=‘100002’//因为学号为100002的学生在表student中只有一个,所以为单元组的删除
  多元组的删除:学号为100002的成绩从表score中删除,可用以下语句:
  DELETE
FROM score
  WHERE st_no=‘100002’//由于学号为100002的元组在表score中可能有多个,所以为多元组删除
  带有子查询的删除操作:删除所有不及格的学生记录,可用以下语句
  DELETE
FROM student
  WHERE st_no IN
  (SELETE st_no
  FROM score
  WHERE score<60)
  3.数据修改
  修改语句是按SET子句中的表达式,在指定表中修改满足条件表达式的记录的相应列值。其语句格式如下:
  UPDATE
表名 SET 列名=列改变值〔WHERE 条件表达式〕
  例:把c02的课程名改为英语,可以用下列语句:
  UPDATE subject
  SET su_subject=‘英语’
  WHERE su_no=‘c02’
  例:将课程成绩达到70分的学生成绩,再提高10%
  UPDATE
score
  SET score=1.1*score
  WHERE score>=70
  SQL的删除语句和修改语句中的WHERE子句用法与SELECT中WHERE子句用法相同。数据的删除和修改操作,实际上要先做SELECT查询操作,然后再把找到的元组删除或修改。

易悦(深圳)科技有限公司

让快乐更简单

微信:EJoyYOJOY

微博:http://weibo.com/EJoyYOJOY

官网:http://www.ejoytec.com/

时间: 2024-10-08 04:48:25

数据库更新的相关文章

varchar2_to_blob,应用向数据库更新LOB字段时的超时问题

将字符串转换为BLOB类型数据,写入服务器. 1,首先利用to_clob函数把varchar2字段转成 clob字段. 2  利用c2b上面函数将clob转成blob. 即: c2b(to_clob(varchar2字段))   CREATE OR REPLACE FUNCTION C2B (b IN CLOB default empty_clob()) RETURN BLOB -- typecasts BLOB to CLOB (binary conversion) IS res BLOB;

greenDao android开源框架数据库更新表的问题

最近使用greenDao当android应用升级数据库新增表或者修改表,发现数据被清空的问题 查找资料也没有找到解决方案,最后查看代码发现需要自己修改SQLiteOpenHelper 1.找到greenDao生成的DaoMaster.java文件,里面有SQLiteOpenHelper实现 2.修改DevOpenHelper类里的   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 方法 通过old

Oracle数据库更新时间的SQL语句

---Oracle数据库更新时间字段数据时的sql语句---格式化时间插入update t_user u set u.name='pipi',u.modifytime=to_date('2015-10-07 00:00:00','YYYY-MM-DD HH24:MI:SS') where u.uid = 11111---使用数据库系统当前时间update t_user u set u.name='pipi',u.modifytime=sysdate where u.uid = 11111

数据库更新日志

=========================================================================== 注:这是软件工程团队的数据库更新日志及交流日志,在做的过程中如果发现数据库缺少一些东西或有错误,每个人都可以按照以下       编辑格式编辑条目,从而不断完善数据库,同时维持其统一性,另外每个人还可发布博文交流意见.   日志编辑格式: 序号 [时间] [修改的表名] 修改意见 [修改原因] ==========================

微软ASP.NET站点部署指南(11):部署SQL Server数据库更新

1. 综述 本章节展示的是如何向完整版SQL Server 数据库部署一个数据库升级.与第9章的数据库升级部署有所不同(第9章是部署到SQL Server Compact数据库). 提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2. 给表添加新列 这个小节,做一个数据库修改和相应的代码更新,在部署到测试和生产环境之前,先在Visual Studio 里测试.修改内容是给Instructor 实体添加一个OfficeHour

微软ASP.NET站点部署指南(9):部署数据库更新

1.  综述 不管什么时候,程序都有可能像代码更新一样更新数据库.本章节你将进行数据库修改,测试,然后部署到测试环境和生产环境. 提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2.  给表添加新列 本小节,将修改Student和Instructor实体共同的基类Person类,添加一个birth date字段,也要在展示页面的表格上添加一个新列. 在ContosoUniversity.DAL项目,打开Person.cs在类

微软ASP.NET网站部署指南(9):部署数据库更新

1.  综述 无论什么时候,程序都有可能像代码更新一样更新数据库.本章节你将进行数据库改动,測试.然后部署到測试环境和生产环境. 提醒:假设依据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2.  给表加入新列 本小节,将改动Student和Instructor实体共同的基类Person类.加入一个birth date字段,也要在展示页面的表格上加入一个新列. 在ContosoUniversity.DAL项目,打开Person.cs在类

Android数据库更新&mdash;&mdash;上万条数据的插入

在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚至可能造成整个应用的崩溃! 解决方案: 遇到这种情况,其解决方案应为,用做好的db文件替换之前的数据库文件.当然,有人可能有疑问,这样的话,怎么写入到data/data目录下.这个的确是个问题,可是,我们可以将该数据库存放在SD卡目录下.当然,数据库存放在SD卡目录中,的确是对安全性的妥协. 实现步

PowerDesigner 如何生成数据库更新脚本

最近在学习使用PowerDesigner 这个数据库设计工具,发现真的很强大,可以做很多事情,其中就涉及到如果数据库要进行更新了怎么办,主要是增加表,最麻烦的是修改字段名称,增加字段等操作,遇到主要的情况我们应该怎么处理呢?接下来让我们一起揭开谜底吧: 首先,我们要将创建好的PDM模板先保存一份,可以命名为xxx_Old.pdm 修改你的PDM文件,修改后,进行导出物理数据库模型,然后选择工具栏上的database-->apply model changes to database出现一个界面选

Android数据库更新并保留原来数据的实现

Android应用程序更新的时候如果数据库修改了字段需要更新数据库,并且保留原来的数据库数据: 这是原有的数据库表 CREATE_BOOK = "create table book(bookId integer primarykey,bookName text);"; 然后我们增加一个字段: CREATE_BOOK = "create table book(bookId integer primarykey,bookName text,bookContent text);&q