MySQL的数据操作

数据插入:

语法格式如下:

INSERT [IGNORE] [INTO] 表名 [(列名,···)]
VALUE ({表达式 |DEFAULT },···),(···),···
| SET 列名={表达式| DEFAULT},···

列名:需要插人数据的列名。如果要给全部列插入数据,列名可以省略。如果只给
表的部分列插入数据,需要指定这些列。对于没有指出的列,它们的值根据列默认值或有
关属性来确定,MySQL处理的原则如下。
具有AUTO_INCREMENT属性的列,系统生成序号值来唯一标识列。
具有默认值的列,其值为默认值。
没有默认值的列,若允许为空值,则其值为空值;若不允许为空值,则出错。
类型为timestamp的列,系统自动赋值。
VALUES子句:包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。
若表名后不给出列名,则在VALUES子句中给出每一列的值;如果列值为空,则值必须置
为NULL,否则会出错。
表达式:可以是一个常量、变量或一个表达式,也可以是空值NULL,其值
的数据类型要与列的数据类型一致。例如,列的数据类型为int,插入的数据
是“aaa”时就会出错。当数据为字符型和日期型时要用单引号括起来。
DEFAULT:指定为该列的默认值,前提是该列原先已经指定了默认值。如
果列清单和VALUES 清单都为空,则INSERT会创建一行,每个列都设置成默认值。

IGNORE:当插入一条违背唯一约束的记录时,MySQL不会尝试去执行该语句。

例1:向Bookstore 数据库中的表book(表中列包括图书编号、图书类别、书名、
作者、出版社、出版时间、单价、数量、及封面图片)中插人一行数据“TP.9501,计
算机,Dreamwearer、鲍里嘉、高等教育出版社,2020-08-16,33.25,50,0.8,NULL”。

USE Bookstore;
INSERT INTO book VALUES (
'TP.9501','计算机','Dreamwearer',
'鲍里嘉','高等教育出版社','2020-08-16',33.25,50,0.8,NULL );

代码中没有给出要插入的列的字段名列表,是因为如果在VALUES中给出了全部列的
插入数据,则可以省略字段名列表。

或:

INSERT INTO book (
图书编号,书名,作者,出版社,出版时间,单价,数量,折扣)
VALUES ('TP.9501','Dreamwearer',
'鲍里嘉','高等教育出版社','2020-08-16',33.25,50,0.8);

还可以使用SET语句插入数据:

INSERT INTO book
SET 图书编号='TP.9501',书名='Dreamwearer',
图书类别=DEFAULT,作者='鲍里嘉',出版社='高等教育出版社',
出版时间='2020-08-16',单价=33.25,数量=50,折扣=0.8;

使用REPLACE语句,可以用第二条记录替换第一条记录。

REPLACE INTO book
VALUES ('TP.9501','计算机','PHP网站制作','林小红',
'高等教育出版社','2020-10-16',23.5,30, 0.8,NULL);

数据修改:

修改表中的数据,可以使用UPDATE语句。UPDATE可以使用修改单个表,也可以用来修改多个表.

1.单表修改数据,语法格式如下:

UPDATE [IGNORE] 表名
SET 列名1=表达式1,列名2=表达式2 ···
WHERE 条件;

例2:将Bookstore数据库中book表的所有书籍数量都增加10。将members 表中
生名为“张三”的员工的联系电话改为“13802551234”,密码改为“111111”。

UPDATE book
SET 数量=数量+10;
UPDATE members
SET 联系电话='13802551234',密码='111111'
WHERE 姓名='张三';

2.多表查询,语法格式如下:

UPDATE [IGNORE]表名列表
SET 列名 1=表达式1,列名2=表达式2…
[WHERE条件]

例3:订单号为6的客户因某种情况退回2本图书,请在sell表中修改订购册数,
同时书退回后,book表中该图书的数量增加2。

UPDATE sell ,book
SET sell.订购册数=订购册数-2 ,book.数量=数量+2
WHERE sell.图书编号=book.图书编号 and sel1.订单号-'6';

数据删除:

使用DELETE语句删除数据

1.从单个表中删除行

语法格式如下:

DELETE [IGNOME] FROM 表名
WHERE 条件;

语法说明如下。

FROM 子句:用于说明从何处删除数据,表名为要删除数据的表名。

WHERE子句:条件中的内容为指定的删除条件。如果省略WHERE子句,则删除表中的所有行。

例4:将bookstore数据库中members表中姓名为“张三”的员工的记录数据删除。

USE bookstore;
DELETE FROM members
where 姓名='张三';

例6:将book表中数量小于5的所有行删除。

USE bookstore;
DELETE FROM book
where 数量='张三';

2.从多个表中删除行

语法格式如下。

DELETE [IGNORE] 表名1[.*] [表名2[.*]···]
FROM 表名列表
where 条件;

DELETE [IGNOME]
FROM 表名1 [.*] [,表名2][.*] ···]
USING 表名列表
WHERE 条件;

表名列表:包含了多个表的联合,各表之间用逗号隔开。

例7:用户名为“D1963”的客户注销了,请在members表中将该用户记录删除,同时将其在sell表中的记录也删除。

DELETE sell,members
     from sell,members
     where sell.用户名=members.用户名
     AND members.用户名='D1963';

DELETE 
FROM sell,members
USING sell,members
where sell.用户名=members.用户名
AND members.用户名='D1963';

使用TRUNCATE TABLE语句删除表数据

TRUNCATE TABLE语句被称为清楚表数据语句。

语法格式如下:

TRUNCATE TABLE 表名;

使用TRUNCATE TABLE语句后,AUTO_INCREMENT计数器被重新设置为该列的初始值

对于参与了索引和视图的表,不能使用TRUNCATE TABLE语句删除数据,而应使用DELETE语句。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值