网站建设 翰臣科技公司,北京百度推广公司,企业网站怎样做seo优化 应该如何做,石家庄到底怎样了数据更新
数据库中的数据更新操作有3种#xff1a;1)向表中添加若干行数据#xff08;增#xff09;#xff1b;2#xff09;删除表中的若干行数据#xff08;删#xff09;#xff1b;3#xff09;修改表中的数据#xff08;改#xff09;。对于这3种操作#xf… 数据更新
数据库中的数据更新操作有3种1)向表中添加若干行数据增2删除表中的若干行数据删3修改表中的数据改。对于这3种操作SQL语言中有3种相应的语句与之对应。接下来让我们逐一详细地了解一下。 本文我们依然使用以下三个表来进行数据更新操作
TABLE1: S(学生基本信息表) TABLE2: C(课程表) TABLE3: SC(学生选修课程信息表) ①插入数据
***SQL的数据插入语句INSERT通常有两种形式一种是插入一个元组另一种是插入子查询结果即一次插入多个元组。两种形式在语法格式上稍有有差别 ***
1插入元组
INSERT INTO 表名 (你所指定的属性列名) VALUES(写入属性列中的值)
注意如果在INTO子句后没有显式地指定属性列名那么在VALUES后写入属性列中的值时必须依据你正在操作的表的所有属性列的排列顺序及数据类型依次写入。特别地如果在某一属性列中没有写入任何值那也必须显式的写入NULL 。如果在INTO子句后显式地指定属性列名那么在VALUES后写入属性列中的值时 则只需依据你指定的列名顺序依次写入值即可。此时如果在某一属性列中没有写入任何值则无需显式的写入NULL系统会自动填写。
例1
将一个新学生元组学号21670166姓名小米性别女系别CS, 年龄23插入到S表中。
INSERT INTO S (SNO,SNAME,SSEX,SDEPT,SAGE)
VAALUES(21670166,小米,女,CS,23);#等价写法省略列名
INSERT INTO S
VALUES(21670166,小米,女,CS,23);
#注意VALUES 子句对新元组的各属性赋值字符串常数要用单引号括起来。插入数据前后对比 2插入子查询结果 子查询不仅可以嵌套在SELECT语句中用于构建父查询条件也可以嵌套在INSERT语句中用以生成要插入的批量数据。 插入子查询的语法格式 INSERT INTO 表名属性列 子查询; 说明与一次插入一个元组的格式相比没有了VALUES子句。 例1 对于每一个系求学生的平均年龄并把结果存入数据库。
#建立一个新表存放系名和平均年龄
CREATE TABLE DEPT_AGE(
SDEPT CHAR(10),
AVG_AGE NUMBER(3,1));
#往新表中批量插入子查询结果
INSERT
INTO DEPT_AGE
SELECT SDEPT,AVG(SAGE)
FROM S
GROUP BY SDEPT;运行结果如下 ②修改数据
修改操作又称为更新操作其语句的一般格式如下为 UPDATE 表名 SET 列名1 表达式1列名2 表达式2··· WHERE 条件; 说明UPDATE语句的功能是修改指定表中满足 WHERE子句条件的元组其中SET子句用列名后的表达式的值取代相应的属性列的原有值如果缺省WHERE子句条件约束则会修改表中的所有元组。 1修改一个元组的值 例1 将学号为21670166的学生的年龄改为23岁。
UPDATE SSET SAGE 23WHERE SNO 21670166;
#显示修改后的表
SELECT *FROM S;
运行结果如下; 2)修改多个元组的值: 例2 所有男生的年龄增加一岁。
UPDATE S
SET SAGE SAGE 1
WHERE SSEX 男;运行结果如下; 3带子查询的修改语句 子查询也可以嵌套在UPDATE语句中用以构造修改的条件。 例1 将计算机系的学生的成绩置为0。
UPDATE SC SET GRADE0WHERE SNO IN (SELECT SNO FROM SWHERE SDEPT CS);运行结果如下 ③删除数据
***删除数据可以用DELETE或DROP语句但二者具有本质上的区别DELETE语句的功能是删除指定表中的满足WHERE子句条件的元组如果WHRER缺省则删除表中的所有元组但表的定义任然存在于字典中。换句话说就是将表中的内容清空而DROP语句则会将表中的内容和表的定义一并删除换句话说就是彻底地删除表不复存在。 删除语句的一般格式 DELETE FROM 表名 WHERE 条件; 1删除一个元组
#删除学号为21670166的学生元组
DELETE
FROM S
WHERE SNO LIKE 21670166;2)删除多个元组
#删除女学生元组
DELETE
FROM S
WHERE SSEX 女;3带子查询的删除语句
#删除计算机系所有男学生的选课记录
DELETE
FROM SC
WHERE SNO IN (SELECT SNO FROM SWHERE SDEPT CS AND SSEX 男); 提示 在命令行界面使用SQL语句更新数据库中的表的相关数据时一定不要忘记在修改操作做完后时常添加COMMIT语句该语句会将你的修改操作提交这样才会达到真正对数据进行修改的目的。 接下来我们来介绍一个从基本表中衍生出来的新概念———
视图(view)
视图是从一个或几个基本表或视图导出的表它与基本表不同是一个虚表。 数据库中只存放视图的定义而不存放视图的数据这些数据仍存放在原来的基本表中。一旦基本表中的数据发生改变从视图中查询出的数据也会随之改变。从这个意义上讲视图就像是一个窗口透过它可以选择性的看到数据库中自己感兴趣的数据及其变化。 视图一经定义就可以和基本表一样被查询、删除。也可已在一个视图上再定义一个新的视图但对视图的增、删、改有一定限制本文不做过多讲解重点讨论视图的建立与查询。 ①定义视图 1建立视图 SQL语言使用CREATE VIEW命令创建视图一般格式如下 CREATE VIEW 视图名列名1列名2··· AS 子查询 WITH CHECK OPTION; 说明AS后的子查询可以是任意的 SELECT语句是否可以含有ORDER BY 子句和DISTINCT短语则取决于具体的系统实现。WITH CHCK OPTION表示对视图进行UPDATE、INSERT、DELETE操作时要满足视图定义中的谓词条件即子查询中WHERE子句后的条件表达式。 例1 建立计算机系学生的视图.
CREATE VIEW CS_SUTDENT
AS
SELECT SNO,SNAME,SAGE
FROM S
WHERE SDEPT CS;运行结果如下
上例中省略了视图CS_STUDENT的列名隐含了由子查询SELECT语句中的三个列名组成。值得高度注意的是在以下三种情况下需明确指定组成视图的所有列名 1.某个目标列不是单纯的属性名而是聚集函数或列表达式注意此种情况仍可省略视图的列名只需在子查询中对该聚集函数表达式取别名即可 2.多表连接时出现了几个同名的列作为视图的字段 3.明确规定需要在视图中为某个列取指定的名字 举个栗子 建立计算机系选修了2号课程的学生的视图包括学号、姓名、年龄、成绩。
#明确指定组成视图的所有列名
CREATE VIEW CS_S2(SNO,SNAME,SAGE)ASSELECT DISTINCT S.SNO,SNAME,SAGEFROM S,SCWHERE SDEPT CS AND CNO 2;
#省略组成视图的所有列名