前言
上篇记录了mysql数据库的数据库定义语言(DDL),现在记录一下它的一些操作语言(DML),即对表中的数据进行一系列的操作,一般分为:增加数据,删除数据,以及修改数据,详情如下。
1. 增加数据
增加数据也是向表中插入数据,一般语句格式如下。
insert into 表名 (列名1,列名2,列名3,...) values(值1,值2,值3,...)
注意:
1. 插入时列名与值要一一对应
2. 列名写可不写,不写时表示向表中的每个字段都插入数据
3. 注意字段数据类型
向students表中插入数据:insert into students values(124,‘李四’,22)
要插入多条时值之间可用逗号隔开,如下
2. 插入数据遇到的问题
上面是经过多次折腾后才能成功插入的,在刚进行数据添加数据遇到如下问题
网上搜了下说是字符集的问题,用如下命令可以查看创建表的过程(表使用的存储引擎,字符集等),如下。
show create table 表名;
在命令行我尝试了很多种方法,但结果还是插入不了中文字符,比如用一下语句修改字符集,结果发现还是不可以
alter table 表名 character set utf8;
最后不得不去navicat修改了,对每行都修改后,就可以插入中文字符了
3. 更新数据
对数据的修改/更新操作的sql语句一般格式如下
update 表名 set 列名1=值1,列名2=值2,... where 条件;
将全部年龄改为18:update students set age=18;
将id为123的年龄改为20:update students set age=20 where id=123;
将id为125的名字,年龄改为张山,21:update students set name=‘张山’,age=21 where id=125;
4. 修改数据库密码
4.1
能够登录数据库的用户及其登录密码一般存储在数据库本身的系统表user中,而其密码在authenticcation_string字段中,如下
修改密码:
use mysql;
update user set authentication_string=password('要修改的密码') where user='用户名';
修改登录密码为1234:update user set authentication_string=password(‘1234’) where user=‘root’;
其中password的作用是对你输入的密码进行加密
刷新系统表:
因为我修改的是数据库的系统表,所以要刷新才能生效,如下
flush privileges;
之后进行退出重登就行了
4.2
使用mysqladmin进行修改密码,使用这个修改要记住之前的密码,如下
mysqladmin -u 用户名 -p password 新密码
红框里需要输入的是你之前的密码,修改成功后可以登录验证下
5. 删除数据
sql中删除数据的语句如下
delete from 表名 where 条件;
删除id为126的数据:delete from students where id=126;
删除students表的所有数据:delete from students;
删除表里的所有数据还可以用以下语句,不过使用该语句后原来表的结构就不存在了,会给你新创建一个表,而delete删除表的结构是还存在的。
truncate table 表名;