MySql学习之数据操纵语言DML

数据语言DML

在上一篇文章中我们学习了如何创建数据库、创建表及修改表、约束设置等内容,本文将简述插入数据、修改数据、删除数据的常用语法。

插入数据

上文中我们创建了一个表,员工表t_empolyer(id int primary key,name varchar(20),gender int,age int),但现在只是有一个空表没有数据。那么我们需要添加数据,将通过insert int语句添加。
语法:
insert into 表名(<列名1>,<列名2>…<列名n>) values (<值1>,<值2>,<值n>);
注意:列名与值一一对应
在为整个表的所有列都添加数据时,可省去列名列表,语法如下:
insert into 表名 values (<值1>,<值2>,<值n>);
例:插入一个员工信息,编号为002,名字为张三,性别为,1(1为男,0为女),年龄25岁

insert into t_employer values(002,'张三',1,25);
//注意此处的标点符号均为英文状态下的

我们运行后发现情况如下:

*ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD'*

这是由于编码的问题,默认编码为unicode,并不支持中文;这时我们需要更改表的编码。
更改表的编码
语法如下:
alter table 表名 convert to character set utf8;

alter table t_employer convert to character set utf8;

我们也可以在建立数据库时设置整个数据库的编码,语法如下:
create database 数据库名 character set utf8;

在更改编码后,再运行结果如下:

mysql> select * from t_employer
+----+------+--------+------+
| id | name | gender | age  |
+----+------+--------+------+
|  2 | 张三 |      1 |   25 |
+----+------+--------+------+

我们可以看到数据插入到t_employer中了,这里select * from t_employer 用来查询表中的数据,select语句以后会详述。
在插入数据时,我们发现id列每次都需要输入,但有无什么业务意义,这时我们可以设置该列为自动增长:
在创建表时,在该字段后加auto_increment即可。

修改数据

我们在mysql中使用update 语句对表中的数据进行修改。也称之为更新数据。
更新数据语法如下:
update 表名 set 列1=新值1,列2=新值2… where 过滤条件
where 字句可包含的运算符及关键字:
算数运算符:
+、-、*、/、%
比较运算符:
!=、=、<>、>、<、<=、>=、!>、!<

and 并且
同时满足左边和右边的表达式
or 或者
满足一个即可

例:把id为2的人,姓名改为李四

update t_employer  set name='李四' where id=2;

删除数据

通过delete 语句删除表中的数据
语法如下:
delete from 表名 where 条件
如:删除员工表中,姓名为张三的员工

delete from t_employer  where name='张三';

这种删除只删除满足条件的数据。
删除整个表中的数据:
使用delete 语句删除:
语法:
delete from 表名
也可使用truncate 语句删除
语法:
truncate table 表名

二者的区别是通过delete删除后可通过日志文件找回,而truncate 删除后无法找回。

你可能感兴趣的:(mysql数据库)