Basic_operation2
MySQL 数据的增删改查
学习笔记,仅供参考
思维导图:
🎊 操作数据
所谓的数据就是表下面的一行行的数据记录,同数据库和表的操作一样,数据的操作也是增、删、改、查这四中基本操作,要想变得复杂就是在后面加各种条件筛选出所要的结果。
一、插入数据(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_%';
// 查看字符集变量
效果图如下:
注意 :一般在开发过程中,上图中的所以字符集均要设置为 utf8, 以免引起字符错误。
set character_set_client=utf8;
// 修改指定的字符集
像上图中 character_set_client
会引起输入字符错误;character_set_results
会引起显示字符错误。
当输入出现字符错误时,输入的字符会变为 ???,即使修改为正确的字符集后,任然是问号显示。除非修改出错数据。
当显示出现字符错误时,显示的字符会变为 ???,在修改为正确的字符集后,就能正常显示数据。