My Blog

Basic_operation2

MySQL 数据的增删改查

学习笔记,仅供参考

参考B站Mirco_Frank - MySQL 删库跑路


思维导图

mind_map


🎊 操作数据

所谓的数据就是表下面的一行行的数据记录,同数据库和表的操作一样,数据的操作也是增、删、改、查这四中基本操作,要想变得复杂就是在后面加各种条件筛选出所要的结果。

一、插入数据(insert)

insert into <table_name> (filed1, filed2, ...) values (data1, data2, ...);   // 根据所选的字段依次填入相应的数据

当然还可以不选择字段插入数据,但这种情况就必须得按照表的字段顺序依次填写数据

insert into <table_name> values (data1, data2, ...);   // 按照表的所有字段依次填写数据

下面举几个例子以展现插入的灵活性。

insert into teacher (id, name, phone, address) values (1, 'Tom', '123456', 'ShangHai');  // 常规插入

insert into teacher (name, id) values ('Tom', 1);  // 只填 name  id 字段的数据,其他为默认值或null

insert into teacher values (1, 'Tom', '123456', 'ShangHai');  // 必须按顺序填写所有字段的数据

insert into teacher values (null, 'Tom', default, default);  // 对于自增的 id 可以填 null,它会自动接着上条数据;对于非空的 name 则必须给以数据;对于有默认值的 phone, address 可以填 default ;对于可以为 null 的字段也可以填 null

要想一次插入多条数据可以用下面的命令

insert into <table_name> values (data1, data2, ...), (data1, data2, ...);   // 用括号隔开多条数据即可


二、删除数据(delete)

delete from <table_name> where <condition_statement>;   // 根据所给的条件从表中删除数据

注意 :在删除数据时,条件语句最好选择能唯一确定所要指定的数据,以免 误删其他数据 。而且对于自增的 id ,其数据的 id 号都是唯一的,一旦删除不可在使用其 id 号。

例子:

delete from teacher where id=1;  // 删除表中 id  1 的数据

delete from teacher where age<20;  // 删除表中年龄小于 20 的数据

当想要清空表的所有数据时,有两种方法来清空:

(×) delete from <table_name>;   // 删除所有数据

(√) truncate <table_name>;   // 清空表中所有数据

区别 :虽然两者都能清空表中数据,但用 delete 清空后,再插入新数据 id 则是接在删前数据之后的;而用 truncate 清空后,插入的新数据 id 是从头开始的。truncate 底层过程是先删除之前的表,然后新建一个与之一样的新表。


三、修改数据(update)

update <table_name> set <field_name>=<data1> where <filed_name>=<data2>;   // set 表明要修改的内容, where 表明在哪修改

例子:

update student set name='Tom' where id=1;  // 将 id 为 1 的数据,姓名改为 Tom

四、查看数据(select)

select * from <table_name>;   // 查看表中所有字段的数据,但这种查询方式的效率不高

select <filed_name> from <table_name>;   // 查看表中指定字段的数据

 


🎃 数据库、表、数据操作的区别

它们的操作区别就是因为它们不是用的同一语言

  • DDL (data definition language) 数据定义语言,它对应的是操作数据库和表,它的增删改查为 (create, drop, alter, show)。因为库和表都用 DDL,所以在用 create, drop, alter 时要跟 database 或 table ,依次来区别操作库还是操作表

  • DML (data manipulation language) 数据操作语言, 它对应的是操作数据, 它的增删改查为 (insert, delete, update, select)

 


🎄 字符问题

想要查看数据库的字符集,可以使用下面的命令:

show variables like 'character_set_%';   // 查看字符集变量

效果图如下:

charset

注意 :一般在开发过程中,上图中的所以字符集均要设置为 utf8, 以免引起字符错误。

set character_set_client=utf8;   // 修改指定的字符集

像上图中 character_set_client 会引起输入字符错误;character_set_results 会引起显示字符错误。

当输入出现字符错误时,输入的字符会变为 ???,即使修改为正确的字符集后,任然是问号显示。除非修改出错数据。

当显示出现字符错误时,显示的字符会变为 ???,在修改为正确的字符集后,就能正常显示数据。