今天给大家总结一下数据库中数据的相关操作:

1 插入数据

语法:insert into 表名 (字段名, 字段名,…) values (值1, 值1,…)

1、插入所有字段



-- 插入所有字段
mysql> insert into stu (id,stuname,sex,`add`) values (1,'tom','男','北京');
Query OK, 1 row affected (0.00 sec)

-- 插入部分字段
mysql> insert into stu(id,stuname) values (2,'berry');

-- 插入的字段和表的字段可以顺序不一致。但是插入字段名和插入的值一定要一一对应
mysql> insert into stu(sex,`add`,id,stuname) values ('女','上海',3,'ketty');
Query OK, 1 row affected (0.00 sec)

-- 插入字段名可以省略
mysql> insert into stu values(4,'rose','女','重庆');
Query OK, 1 row affected (0.00 sec)



总结:



1、插入字段名的顺序和数据表中字段名的顺序可以不一致
2、插入值的个数、顺序必须和插入字段名的个数、顺序要一致。
3、如果插入的值的顺序和个数与表字段的顺序个数一致,插入字段可以省略。



2、插入默认值和空值



mysql> insert into stu values (5,'jake',null,default);
Query OK, 1 row affected (0.05 sec)



总结:



default关键字用来插入默认值,null用来插入空值.



3、插入多条数据



mysql> insert into stu values (6,'李白','男','四川'),(7,'杜甫','男','湖北');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0



2 更新数据

语法:update 表名 set 字段=值 [where 条件]



-- 将berry性别改为女
mysql> update stu set sex='女' where stuname='berry';
Query OK, 1 row affected (0.06 sec)

-- 将编号是1号的学生性别改成女,地址改为上海。
mysql> update stu set sex='女',`add`='上海' where id=1;
Query OK, 1 row affected (0.00 sec)



3 删除数据

语法:delete from 表名 [where 条件]



-- 删除1号学生
mysql> delete from stu where id=1;

-- 删除名字是berry的学生
mysql> delete from stu where stuname='berry';
Query OK, 1 row affected (0.00 sec)

-- 删除所有数据
mysql> delete from stu;
Query OK, 5 rows affected (0.00 sec)



问题:delete from 表和truncate table 表区别?



1、delete from 表:遍历表记录,一条一条的删除
2、truncate table:将原表销毁,再创建一个同结构的新表。就清空表而言,这种方法效率高。



4 查询数据

语法:



select 列名 from 表名



例题



-- 查询id字段的值
mysql> select id from stu;

-- 查询id,stuname字段的值
mysql> select id,stuname from stu;、

-- 查询所有字段的值
mysql> select * from stu;



5 数据传输时使用字符集

发现:在插入数据的时候,如果有中文会报错(或者中文无法插入)




MySQL如何在指定的id后插入数据 mysql向指定字段中添加数据_字段


分析:

1、查看客户端发送的编码


MySQL如何在指定的id后插入数据 mysql向指定字段中添加数据_字段_02


2、查看服务器接受,返回的编码


MySQL如何在指定的id后插入数据 mysql向指定字段中添加数据_mysql_03


更改接受客户端指令的编码


mysql> set character_set_client=gbk;
Query OK, 0 rows affected (0.05 sec)


MySQL如何在指定的id后插入数据 mysql向指定字段中添加数据_mysql_04


原因:返回编码是utf8,客户端是gbk;

测试:成功


MySQL如何在指定的id后插入数据 mysql向指定字段中添加数据_字段_05


可以通过set names一次性设置


MySQL如何在指定的id后插入数据 mysql向指定字段中添加数据_给mdb插入数据带中文_06


总结:

1、设置什么编码取决于客户端的编码

2、通过set names 设置编码