1、MySQL的基本认识
MySQL是关系型数据库的管理系统,关系型数据库的特点是,将数据存储在不同的表中,再将表放在不同的数据库中,而不是集中放在一个仓库里面,这样有助于快速查询信息和管理,访问以及管理数据库使用的标准化语言是SQL。
2、SQL的基本介绍
SQL:structure query language,结构化查询语言,是针对于关系型数据的标准语言。
SQL是一个编程语言,能够使用户查询和设计程序。
SQL根据使用可以分为哪些种类?
(1)DDL:数据库定义语言,用于创建数据库的基本结构。
(2)DML:数据库操作语言,增删改查。
(3)DCL:数据库控制语言,用于用户的权限管理。
(4)DQL:数据库查询语言,用于数据库查询指定信息
(5)TQL:事务处理语言。
3、MySQL的优势
(1)安装维护的成本很低,方便灵活。
(2)历史悠久,性能稳定,社区用户活跃。
(3)有多种的API接口,支持多开发语言。
(4)开放源代码,没有版权制约。
4、MySQL的安装
(1)RPM包的安装
注意:在安装之前需要查看是否有mariadb的存在,若存在需要卸载
查看:rpm -qa | grep mariadb
卸载: rpm -e 对应的数据包
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar -C 添加指定的解压目录
cd 指定的解压目录
yum localinstall *
(2)yum源安装
要下载相关仓库和包,比较麻烦,不建议
5、MySQL的登录
(1)首先启动服务,并加入开机自启动
systemctl start mysqld
systemctl enable mysqld
(2)找到mysqld服务提供的root用户认证密码
grep "password" | /var/log/mysqld.log
(3)、使用命令登录
mysql -uroot -p
回车,并输入查询到的密码登录数据库
(4)修改临时密码
alter user 'root'@'localhost' identified by '新密码';
6、数据库的使用
1、查看数据库
show databases;
2、创建和删除数据库
create database 数据库名;
drop database 数据库名;
3、修改数据库的名称
rename database 旧数据库名 to 新数据库名;
4、切换库
use databasename;
5、查看当前所在库
select database();
7、数据表的使用
1、创建数据表
use 数据库;
create table 表名(id int()auto_increment not null primary key );
2、查看表结构
describle 表名;
3、删除数据表
drop table 数据表;
4、给表中插入数据
insert into tablename values();
5、更新改表中的内容
update tablename set 属性值=' ' where 属性值=' ';
6、删除记录
delete from tablename where 属性值=' ';
7、修改表的字段以及字段名
修改字段:
alter table tablename modify 字段 字段属性;(name char(3));
修改字段名:
alter table tablename change 旧字段名 新字段名 新字段名属性;
8、查看数据表
show tables;
select * from tablename;
9、数据表重命名
alter table tablename rename new_tablename;
10、清空表
delete from tablename;
8、数据查询
1、select语法
select * from 表名;
select 字段名1,字段名2 from 表名;
select 字段名 from 表名 where 条件;
2、select的算术运算
select age+10 from students;
3、别名
as或者空格都有取别名的功能
select age+10>18 as adults;
select age+10>18 adults;
4、去重distinct
select distinct name from students;
5、连接字段concat
select concat(id,name) from students;
select concat(id,name) from as 学号姓名 students;
6、模糊查询
%代表匹配零个或者多个字符
_代表单个字符
select * from students where name like '%锋';
select * from students where name like '_锋';
7、比较运算符
> >= < <= = !=
8、逻辑运算符
and
or
not
in
not in
bewteen and
not between and
is
not is
9、正则表达regexp
^字符串的开头
$ 字符串的结尾
?匹配字符串一次或者多次
. 配置任意单个字符
p1 | p2 | p3 交替匹配
10、聚合函数
count:用于计算行的数量
avg:用于计算数值列的平均值;
sum:用于计算数列中的和值;
max:用于计算数值列中的最小值;
min:用于计算数值列中的最大值;
11、group_concat
默认以逗号隔开
12、grop_by分组
一般与各种聚合函数搭配使用
13、having
group_by分组后,再用having过滤条件
14、order by
对查询的结果进行排序
order by 默认为升序
desc降序
asc升序
15、limit
对查询的结果行数进行限制
16、完整的select查询语句
select [distinct] [字段列表] [as 字段别名] from 数据源 [where 子句] [group by 子句] [having 子句] [order by 子句] [limit子句]
17、多表关联查询
inner join:内连接,返回匹配两个表之间的连接条件。
left join:左连接,返回左表中的所有行,以及右表中与左表对应的行,若没有匹配的,左表返回NULL
right join:右连接,与上面类似
full join:全连接,返回右表与左表所有的行,若没有匹配的,将另一个表中的列返回null
18、子查询
selsect * from students where name=(select name from students [where子句])
19、导入sql表
source sql表的路径
source /root/students.sql