数据语言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 删除后无法找回。