安装:
系统:CentOS-7-x86_64-DVD-1810.iso
安装命令:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server
修改权限:
sudo chown -R root /var/lib/mysql
重启服务器:
service mysqld restart
登入登出
首次登入(无密码登入):
首次登入进行密码的修改(密码设置)
mysql -u root
修改密码:
1.进入MySQL数据表:
use mysql
2.修改root密码(更新表)
update user set password=password('proot') where user='root';
3.数据刷新
flush privileges;
正常登入:
参数为:-u用户名 -p密码
mysql -uroot -pproot
登出:
exit
查询版本信息
select version();
用户及权限
进入mysql数据库:
use mysql
创建用户:
将数据库dongdb的所有表的所有权限赋予个新建用户:账号为root2密码为proot2的用户
在centos上需要再建立一个localhost用户
grant all on dongdb.* to 'root2'@'%' identified by 'proot2';
查询所有用户:
得到所有用户的用户名和网络权限
select distinct concat('DongUser: ',user,'''@''',host) AS query FROM mysql.user;
删除用户:
通过用户名和网络权限两个条件进行用户删除
drop user 用户名@'%';
drop user 用户名@localhost;
数据库基本操作
查看数据库:
查看当前用户可操作的所有数据库名
show databases;
进入某个数据库:
use 数据库名;
查看某个数据库里的所有表名:
show tables;
创建数据库
创建dongdb数据库并设置编码集为utf8,编码集也可为gbk
create database dongdb charset utf8;
查看数据库dongdb编码集:
show create database dongdb;
删除数据库:
drop database 数据库名;
数据表基本查找
先进入需要操作的数据库,进行以下内容
创建数据表:
创建tb_dong数据表,其中auto_increment为设置id字段自增,primary key为设置主键字段
mysql> create table tb_dong( -> id int not null auto_increment, -> name char(10) not null, -> user char(11), -> primary key(id));
查看创建表的SQL语句:
show create table tb_dong2;
查看表结构:
查看tb_dong数据表的表结构
desc tb_dong;
添加字段:
为tb_dong表添加sex字段,并设置条件为内容只能为M或F且值不能为空
alter table tb_dong add sex enum("M","F") not null
设置字段默认值,会更改原表数据
alter table tb_dong add otherx char(11) default "dongdong";
修改字段数据条件:
alter table tb_dong modify otherx char(13) not null;
修改字段名及数据条件:
将字段名otherx修改为otherxxx
alter table tb_dong change otherx otherxxx char(13) default "dong";
删除字段:
删除tb_dong表中的user字段
alter table tb_dong drop user;
添加外键:
在需要添加外键的表需要先建立存放外键的字段
在表更改数据时会检查外键值是否存在,不存在则不能更改,被链接的外键表也不能删除已经存在真正存在外键关系的行,除非外键关系的行被添加外键的表删除。
其中tb_dong2和dong1_id为需要添加的外键的表名和存放外键的字段名,dong2fk为外键名,可任意取值;tb_dong和id为链接的外键表和字段。
alter table tb_dong2 add foreign key dong2fk(dong1_id) references tb_dong(id);
删除外键:
先查看查看创建表的SQL语句,然后更加里面的外键名进行外键删除
alter table tb_dong2 drop foreign key tb_dong2_ibfk_1;
索引:
提高查询速度,与查询字段建立连接,默认表的主键就已经建立了索引
查询:
show index from tb_dong;
创建:
给表tb_dong的name字段添加索引,其中dongind为索引的名称,任意取名,10为字段的长度
create index dongind on tb_dong(name(10));
删除:
drop index dongind on tb_dong;
数据增删改查
插入数据
insert into tb_dong(name,sex) values("dongxiao","M");
更新数据
update tb_dong set name="xiaoxiao",sex="F" where id= 1;
删除数据:
delete from tb_dong where id= 2;
查询所有数据:
select * from tb_dong;
条件查询:
其中order by为查询结果排序,asc为升序,desc为降序
select id,sex from tb_dong where sex="F" order by id desc;
分组统计:
select sex,count(*) as sexnum from tb_dong group by sex;
刷新数据:
数据表操作完毕后,及时刷新数据,提高数据的实时性
flush privileges;
事物的使用:
实现操作的成批处理,事物错误回退必须手动执行rollback,即使在系列操作中出现语法错误,依然不影响事物正确提交
开始事物:
begin;
系列操作:
可以进行增删改查的系列操作,每一步操作都会立即返回操作结果,但此时增删改的结果并未正真存入数据库中
insert into tb_dong values(7,"dongxiao7","F");
....
手动错误回退:
rollback;
提交事物:
commit;