MYSQL 数据操纵

一、插入表数据

语法格式:

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

语法说明:

列名:需要插入数据的列名。若要全部列插入数据,列名可以省略。若只是插入表的一部分,需要指定这些列,对于没有指出的列,值会根据默认值或有关系属性来确定,MYSQL处理的原则如下:

具有IDENTITY 属性的列,系统生成序号值来唯一标记列。

具有默认值的列,其值为默认值。

没有默认值的列,如允许为空值,则其值为空值,若不允许为空值,则出错

类型为timestamp的列,系统自动赋值

VALUES 子句,包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。若表名后不给出列名,则在VALUES子句中要给出每一列(除IDENTITY和timestamp类型的列)的值,若列值为空,则值必须置为NULL,否则会出错。VALUES子句中的值如下:

表达式:可以是一个常量、变量或一个表达式;也可以是空值NULL,其值得数据类型要与列的数据类型一致,当数据为字符类型时,要用单引号括起来

DEFAULT :指定为该列的默认值,前提是该列原先已经 指定了默认值,若清单和VALUES清单都为空,则INSERT会创建一行,每列都设置成默认值

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

1、插入数据

//参数对应的值,数据类型应与表结构相同,否则或报错
//方法一
insert into book values('id-1020','计算机','计算机应用技术','高川雨','航天工业大学出版社','2005-4-14',45.7,34,0.5,null);

//方法二
insert into book(图书编号,书名,作者,出版社,出版时间,单价,数量,折扣) values('id-1021','网页设计','阿狸','人工智能AI算法研究社','2012-3,23',45.7,6,0.4);

//方法 三
 insert into book set 图书编号='id-1022',书名='JavaScript',图书类别=default,作者='阳阳',出版社='人民邮电出版社',出版时间='2010-10-16',单价=34.6,数量=79,折扣=0.5;

 2、数据替换

当表中存在了一个相同的数据,且是主键,再次插入就会报错,可以使用 REPLACE语句,替换原先的数据

REPLACE 进行替

 replace into book values('id-1022','计算机','php网站制作','小林','高等教育出版社','2022-4-7',78.4,65,0.7,null);

 3、图片的储存形式

        3.1、以路经形式来存储

insert into book values('id-1023','计算机','计算机基础','林志华','高等教育出版社','2011-10-16',45.5,45,0.8,'‪C:/Users/Administrator/Downloads/7171426a9b4646aba1db92b1fbc083f5.png');

        3.2、使用LOAD_FILE() 函数直接存储照片

insert into book values( 'id-1024','网络安全','CCNA','CISO','北京邮电出版社','2020-6-23',78.9,67,1.5,load_file('‪C:/Users/Administrator/Downloads/7171426a9b4646aba1db92b1fbc083f5.png'));

4、插入多条语句

当插入多条记录时,每条记录的数据要用()括起来,记录与记录之间用逗号分开

insert into book values(
  'id-1025','网络安全','CCNB','SO','北京邮电出版社','2010-6-23',53.8,7,1,null),
  ('id-1026','网络安全','CCND','IOSO','北京邮电出版社','2017-6-23',53.8,70,0.5,null);

 5、修改表数据

语法格式:

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

语法说明:

SET子句:根据WHERE子句中指定的条件对符合条件的数据进行修改,。若语句中不设定WHERE子句,则更新所有行

列名1、列名2……为要修改的列值得列名,表达式1、表达式2、……可以是常量、变量或表达式。可以同时修改所在数据行的多个值,中间用逗号隔开。

        5.1、修改指定列的值

 update book
    set 数量=数量+67;

         5.2、按条件修改数据

 update book
    set 作者='小智' where 图书编号='id-1023';

        5.3、同时修改多个表

这里表2 是复制的,数据都是相同的,所以全部都给修改了

包含多个表的联合,各表之间用逗号分开

update book,book_copy1
    set book.作者='小晴',book_copy1.作者='小吕'
    where book.图书编号 = book_copy1.图书编号;

6、删除表数据

        6.1、DELETE 单表删除

        语法格式:

DELETE [IGNORE] FROM 表名
	[WHERE 条件]

        语法说明:

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

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

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

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

         6.2、使用DELETE 语句删除多个表中的行

        语法格式:

方法一
DELETE [IGNORE] 表名1[,表名2[.*]……]
	FROM 表名列表
	[WHERE 条件]
	
	
方法二	
DELETE [IGNORE]
	FROM 表名1[.*] [,表名2[.*]……]
	USING 表名列表
	[WHERE 条件]

        语法说明:

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

这些 删除方式都是只删除FROM子句中之前的数据

 delete book,book1
     from book,book1,book2
     where book.出版时间=book1.出版时间  and book1.出版时间=book2.出版时间;

 

delete  from book,book1
     using book,book1,book2
     where book.单价=book1.单价 and book1.单价=book2.单价;

表3中的数据不会删除,但book2被用来搜索表book1中要删除 的记录(book1中单价与book3中单价相同的记录才 删除)

        6.3、使用TRUNCATE TABLE 删除表数据

        语法格式:

TRUNCATE TABLE 表名;

        语法说明:

TRUNCATE:使用此命令后,AUTO_INCREMENT 计数器被重新设置为该列的初始值

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

TRUNCATE TABLE book;

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值