4、数据更新

4-1:数据的插入(INSERT语句的使用方法)

  1、使用INSERT语句可能向表中插入数据(行),原则上INSERT语句每次执行一行数据的插入。

  2、列名和值用逗号,分别括在()内,这种形式称为清单。

  3、对表中所有的列进行INSERT操作时可以省略表名后的列清单。

  4、插入NULL时需要在VALUES子句的值清单中写入NULL。

  5、可以为表中的列设定默认值,默认值可以通过CREATE TABLE语句中,为列设置DEFAULT约束来设定。

  6、插入默认值可以通过两种方式实现,INSERT语句的子句指定DEFAULT关键字或省略列清单。

  7、使用INSERT...SELECT可以从其他表中复制数据

4-1-1:INSERT的使用

-- 创建ShohinIns表
CREATE TABLE ShohinIns
(shohin_id CHAR(4) NOT NULL,
 shohin_mei  VARCHAR(100) NOT NULL,
 shohin_bunrui VARCHAR(32) NOT NULL,
 hanbai_tanka INTEGER DEFAULT 0,
 shiire_tanka INTEGER,
 torokubi DATE,
 PRIMARY KEY(shohin_id)
);

  语法4-1:INSERT INTO <表名>(列1,列2,.....) VALUES(值1,值2,....);

-- 向表中插入一行数据
INSERT INTO ShohinIns(shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi) VALUES(‘0001‘,‘T恤衫‘,‘衣服‘,1000,500,‘2009-09-20‘);

  法则4-1:原则上,执行一次INSERT语句会插入一行数据。

4-1-2:插入默认值

-- 通过显式方法插入默认值,在VALUER子句中指定DEFAULT关键字
ShohinIns(shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi) VALUES(‘0007‘,‘擦菜板‘,‘厨房用具‘,DEFAULT,790,‘2009-04-28‘);

-- 通过隐式方法插入默认值,省略hanbi_tanka列和值
ShohinIns(shohin_id,shohin_mei,shohin_bunrui,shiire_tanka,torokubi) VALUES(‘0007‘,‘擦菜板‘,‘厨房用具‘,790,‘2009-04-28‘);

  法则4-2:省略INSERT语句中的列名,就会自动设定为该列的默认值(没有默认值为NULL)。

4-1-3:多其他表中复制数据

-- 用来插入入数据的商品复制表
CREATE TABLE ShohinCopy
(
 shohin_id CHAR(4) NOT NULL,
 shohin_mei VARCHAR(100) NOT NULL,
 shohin_bunrui VARCHAR(32) NOT NULL,
 hanbai_tanka INTEGER,
 shiire_tanka INTEGER,
 torokubi DATE,
 PRIMARY KEY(shohin_id)
);
-- 把商品表中的数据复制到商品复制表中
INSERT INTO ShohinCopy(shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi)
SELECT shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi
FROM Shohin;
-- 创建ShohinBunrui表
CREATE TABLE ShohinBunrui(
shohin_bunrui VARCHAR(32) NOT NULL,
sum_hanbai_tanka INTEGER,
sun_shiire_tanka INTEGER,
PRIMARY KEY(shohin_bunrui)
);
-- 插入其他表中数据合计值
INSERT INTO ShohinBunrui(shohin_bunrui,sum_hanbai_tanka,sun_shiire_tanka)
SELECT shohin_bunrui,SUM(hanbai_tanka),SUM(shiire_tanka)
FROM Shohin
GROUP BY shohin_bunrui;

  法则4-3:INSERT语句中的SELECT语句中,可以使用WHERE子句或GROUP BY子句等等任何SQL语法。

4-2:数据的删除(DELETE语句的使用方法)

  1、删除整个表使用DROP TABLE,只想删除表中全部数据用DELETE语句。

  2、如果想删除部分数据行,只需在WHERE子句中书写对象数据的条件即可。

4-2-1:DELETE语句的基本语法

  语法4-2:DELETE FROM <表名>;

--清空ShohinCopy
DELETE FROM ShohinCopy;

  法则4-4:DELETE语句删除的对象是记录(行)。

4-2-2:指定删除对象的DELETE语句

  语法4-3:DELETE FROM <表名>

        WHERE <条件>;

-- 删除销售单价大于等于4000的数据
DELETE FROM Shohin
WHERE hanbai_tanka >= 4000;

  语法4-3:TRUNCATE <表名> (只能删除表中全部数据且速度比DELETE快,但有些DBMS不支持)。

4-3:数据的更新(UPDATE语句的使用方法)

  1、使用UPDATE语句更新表中的数据

  2、更新部分数据行时间可以使用WHERE来指定更新对象的条件

  3、UPDATE可以陈列值更新为NULL

  4、同时更新多列,使用UPDATE的SET子句,使用逗号分开更新对象的多个列

4-3-1:UPDATE语句的基本语法

  语法4-4:修改表中数据

    UPDATE <表名>

           SET <列名> = <表达式>; 

-- 把日期全部更新为‘2009-10-10‘
UPDATA Shohin
SET torokubi = ‘2009-10-10‘;

4-3-2:指定条件的UPDATE语句

  语法4-5:修改部分行的数据

    UPDATE <表名>

           SET <列名> = <表达式>; 

     WHERE <条件>;

-- 把商品种类为厨房用具的记录的销售单价更新为原来的10倍
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka * 10
WHERE shohin_bunrui = ‘厨房用具‘;

4-3-3:使用NULL进行更新

-- 把商品编号0008的登记日期更新为NULL
UPDATE Shohin
SET torokubi = NULL
WHERE shohin_id = ‘0008‘;

4-3-3:多列更新

-- 使用逗号分开,所有DBMS都可以使用
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka *20,
       shiire_tanka = shiire_tanka /2
WHERE shohin_bunrui = ‘厨房用具‘;

--使用括号分开,部分DBMS不支持
UPDATE Shohin
SET (hanbai_tanka , shiire_tanka)=(hanbai_tanka *20,shiire_tanka /2)
WHERE shohin_bunrui = ‘厨房用具‘;

4-3:事务

时间: 2024-08-24 03:02:37

4、数据更新的相关文章

数据更新+加载列表+删除数据

此项目实例为springMVCDB 一.数据检索更新 分析:要实现的效果是在第一个页面文本框中输入一个数值,点击检索,然后在第二个页面的文本框中显示.然后在这个文本框中输入新数据,点击更新按钮,数据库中的文件及文本框中的数据被改写.需要注意的是此操作是检索的userid,而要更新的则是它对应的username的值. 功能实现思路: 先实现数据更新,即在控制中用searchUser的方法实例化一个存放结果集的bean.然后是进行数据改写,就是实例化一个update的方法,将结果给bean.并用一个

数据更新、视图的创建与修改

一.实验目的 1.学会使用INSERT.UPDATE.DELETE等SQL语句进行数据更新: 2.学会使用CREATE.DROP等SQL语句创建和删除视图. 二.实验内容 1.在SQL Server Management Studio中使用INSERT.UPDATE.DELETE语句进行数据更新. 2.在SQL Server Management Studio中使用CREATE.DROP语句创建和删除视图. 三.实验步骤 1.利用SQL Server Management Studio在数据库S

SQL Server 2012 - 数据更新操作

SELECT * FROM dbo.Student; --1, 插入数据 Insert ,逗号分隔可以同时插入多条 INSERT dbo.Student ( StuID, Class, StuName, StuEnName, StuAge, StuBirthday, StuSex, Height, Remark ) VALUES ( '007', -- StuID - varchar(10) 3, -- Class - int N'呵呵', -- StuName - nvarchar(50) '

MySQL数据库实验五:数据更新

实验五   数据更新 一.实验目的 掌握数据更新操作的用法. 二.实验环境 三.实验示例 1.?往基本表SC中插入元组. ①    INSERT INTO S(S#,SNAME,AGE,SEX) VALUES('S36','GU',20,'M'): ②   INSERT INTO SC(S#,C#) VALUES('S5','C8'): ③        INSERT INTO SC VALUES('S4','C4',85), ('S3','C6',90), ('S7','C2',70): ④

Mongodb数据更新命令(update、save)

Mongodb更新有两个命令:update.save. 1.1update命令 update命令格式: db.collection.update(criteria,objNew,upsert,multi) 参数说明: criteria:查询条件 objNew:update对象和一些更新操作符 upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入. multi:默认是false,只更新找到的第一条记录.如果为true,把按条件查询出

update 表名 set 字段=值,数据更新

--数据更新 必须考虑是否有条件,往往能够做条件首先考虑主键值和唯一键语法:update 表名 set 字段=值,字段=值 .....where 条件 not|and|or--修改年龄 update Teacher set Age=18--将所有人年龄+1 设置表达式update Teacher set Age=Age+1--有条件的修改:修改张三的工资+1000,同时修改性别为女update Teacher set Salary+=1000,Gender='女' where Id=4--修改出

[原]OpenGL基础教程(五)缓冲区数据更新方式

1.glBufferSubData 适用于相同数据类型 void SetPositionY(float y){    vector<Vector3<float>>::iterator ver3;    for(ver3 = vertices.begin();ver3!=vertices.end();ver3++)    {        ver3->y +=y;     }    glBindBuffer(GL_ARRAY_BUFFER,posHandler);    glB

使用kettle实现两张表的数据更新

请大家指教,使用的Oracle数据库作为数据源,mysql数据库做同步 1.如图所示: 拖进,表输入,插入/更新,write to log, 2.下面进入配置页面,双击”表输入“ 或是右键”编辑步骤“ 如果所示: 配置你的主数据源,就是你要从他上边更新数据的,点击”新建“或是”编辑“进行数据库配置,如图所示, 你的数据库地址ip,数据库,端口号,用户名,密码,点击”Test“进行测试连接,然后关闭进行点击,”获取查询sql语句“,如图所示: 选择你的数据源表,然后点击”确定“ 3.进行插入/更新

3.4 数据更新

第四节 数据更新 注意!满足参照完整性(有父才有子,有被参照表才有参照表) 注意!区别数据定义,数据定义是对整表的操作,而数据更新是对行进行的操作,只含有3种更新操作,分别是: 向表中添加若干行数据: 修改表中若干行数据: 删除表中若干行数据: 一.插入数据insert 1.插入一个元组 insert into <表名>[(<属性列1>[,<属性列2>...)] values (<常量1>[,<常量2>]...); insert into Stu

loadrunner 参数化数据更新方式

数据分配方式: Select next row[选择下一行]: 顺序(Sequential):按照参数化的数据顺序,一个一个的来取. 随机(Random):参数化中的数据,每次随机的从中抽取数据. 唯一(Unique):为每个虚拟用户分配一条唯一的数据 数据更新方式: 每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代:完了50个用户都取第二条数据,后面以此类推. 每次出现(Each occurrence):每次参数时取新的值,这里强调前后