搭建MySQL服务
文章目录
- 搭建MySQL服务
- 一.MySQL简介
- 二.环境说明以及准备
- 三.修改设置密码
- 四.完成服务需求目标
- 1.搭建MySQL的服务
- 2.创建一个以你名字为名的数据库,并创建一张表的学生,该表包含三个字段(ID,姓名,年龄),表结构如下:
- 3.查看下该新建的表有无内容(用select语句)
- 4.往新建的student表中插入数据(用insert语句),结果应如下所示:
- 5.修改lisi的年龄为50
- 6.以下字段降序排序
- 7.查询学生表中年龄最小的3位同学
- 8.查询学生表中年龄最大的4位同学
- 9.查询学生表中名字叫zhangshan的记录
- 10.查询学生表中名字叫zhangshan且年龄大于20岁的记录
- 11.查询学生表中年龄在23到30之间的记录
- 12.修改wangwu的年龄为100
- 13.删除学生中名字叫zhangshan且年龄小于等于20的记录
一.MySQL简介
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
如果比喻NFS存放的图片附件视频是静态的,MySQL的数据库就是动态的
1.mysql常见命令大全
CREATE DATABASE 库名; //创建数据库
use 库名; //进入数据库
SHOW TABLES; //查看当前数据库有哪些表
DROP TABLE 表名称; //删除表
DROP USER ‘username’@‘host’; //删除数据库用户
SHOW CHARACTER SET; //查看支持的所有字符集
SHOW ENGINES; //查看当前数据库支持的所有存储引擎
SHOW DATABASES; //查看数据库信息
SHOW TABLES FROM 表名称; //不进入某数据库而列出其包含的所有表
2.SELECT语句
select * from 表名称; //正常排序查看
select * from 表名称 where name = ‘关键词’; //搜索查看关键词数据
select * from 表名称 order by age; //从小到大排序查看
SELECT * FROM 表名称 ORDER BY age DESC; //从大到小排序查看
SELECT * FROM 表名称 ORDER BY age limit 2; //倒数最小的两位
SELECT * FROM 表名称 ORDER BY age limit 1,2; //最小的两个数字
SELECT * FROM 表名称 WHERE age >= 25; //大于等于25的排序查看
SELECT * FROM 表名称 WHERE age >= 25 AND name = ‘关键字’; //搜索关键字并且大于等于25查看
SELECT * FROM 表名称 WHERE age BETWEEN 23 and 28; //搜索23到28之间的数据
select * from wangqing where age is not null; //把没有null的数据排序查看
select * from wangqing where age is null; //把包含null的数据排序查看
3.update语句
update 表名称 set 修改的数据 where name = ‘需要修改的名称’; //修改表内的数据
4.delete语句与truncate语句
delete from 表名称 where id = 排序; //删除对应的关键字
delete from 表名称; //删除整张表的内容
truncate 表名称;
truncate与delete的区别:
语句类型 | 特点 |
---|---|
delete | DELETE删除表内容时仅删除内容,但会保留表结构DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项可以通过回滚事务日志恢复数据非常占用空间 |
truncate | 删除表中所有数据,且无法恢复表结构、约束和索引等保持不变,新添加的行计数值重置为初始值执行速度比DELETE快,且使用的系统和事务日志资源少通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放对于有外键约束引用的表,不能使用TRUNCATE TABLE删除数据不能用于加入了索引视图的表 |
二.环境说明以及准备
主机名 | IP | 系统环境 |
---|---|---|
qy-server | 192.168.69.134 | centos7 |
[root@qy-server ~]# systemctl stop firewalld.service 关闭防火墙
[root@qy-server ~]# setenforce 0 关闭setLinux服务
[root@qy-server ~]# cd /usr/src
[root@qy-server src]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
[root@qy-server src]# rpm -ivh mysql57-community-release-el7-10.noarch.rpm
[root@qy-server src]# cd /etc/yum.repos.d
[root@qy-server yum.repos.d]# yum -y install mysql-community-server mysql-community-client mysql-community-common mysql-community-devel
[root@qy-server yum.repos.d]# systemctl start mysqld 启动mysqld服务
[root@qy-server yum.repos.d]# systemctl status mysqld
[root@qy-server yum.repos.d]# systemctl enable mysqld 开机启动
三.修改设置密码
[root@qy-server yum.repos.d]# grep "password" /var/log/mysqld.log
2019-01-21T08:32:33.525415Z 1 [Note] A temporary password is generated for root@localhost: _36b?%Zh8waF前面为临时密码_36b?%Zh8waF
[root@qy-server yum.repos.d]# mysql -uroot -p输入密码
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'qinyong123!';修改密码为qinyong123!
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
四.完成服务需求目标
1.搭建MySQL的服务
按照环节第二步安装即可
2.创建一个以你名字为名的数据库,并创建一张表的学生,该表包含三个字段(ID,姓名,年龄),表结构如下:
mysql> desc student;
±------±-------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±-------------±-----±----±--------±------+
| id | int(11) | NO | | NULL | |
| name | varchar(100) | NO | | NULL | |
| age | tinyint(4) | YES | | NULL | |
±------±-------------±-----±----±--------±------+
以下为步骤
[root@qy-server yum.repos.d]# mysql -uroot -pqinyong123!
mysql> create database qinyong;
mysql> use qinyong
mysql> create table student(id int(11) NOT NULL,name CHAR(100) NOT NULL,age tinyint NULL);
mysql> DESC qinyong.student;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| name | char(100) | NO | | NULL | |
| age | tinyint(4) | YES | | NULL | |
+-------+------------+------+-----+---------+-------+
3.查看下该新建的表有无内容(用select语句)
mysql> select * from student;
Empty set (0.00 sec)
4.往新建的student表中插入数据(用insert语句),结果应如下所示:
±—±------------±-----+
| id | name | age |
±—±------------±-----+
| 1 | tom | 20 |
| 2 | jerry | 23 |
| 3 | wangqing | 25 |
| 4 | sean | 28 |
| 5 | zhangshan | 26 |
| 6 | zhangshan | 20 |
| 7 | lisi | NULL |
| 8 | chenshuo | 10 |
| 9 | wangwu | 3 |
| 10 | qiuyi | 15 |
| 11 | qiuxiaotian | 20 |
±—±------------±-----+
mysql> insert into student (id,name,age)values (1,'tom',20),(2,'jerry',23),(3,'wangqing',25),(4,'sean',28),(5,'zhangshan',26),(6,'zhangshan',20),(7,'lisi',NULL),(8,'chenshuo',10),(9,'wangwu',3),(10,'qiuyi',15),(11,'qiuxiaotian',20);
mysql> select * from student;
+----+-------------+------+
| id | name | age |
+----+-------------+------+
| 1 | tom | 20 |
| 2 | jerry | 23 |
| 3 | wangqing | 25 |
| 4 | sean | 28 |
| 5 | zhangshan | 26 |
| 6 | zhangshan | 20 |
| 7 | lisi | NULL |
| 8 | chenshuo | 10 |
| 9 | wangwu | 3 |
| 10 | qiuyi | 15 |
| 11 | qiuxiaotian | 20 |
+----+-------------+------+
5.修改lisi的年龄为50
mysql> update student set age = 50 where name = 'lisi';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from student;
+----+-------------+------+
| id | name | age |
+----+-------------+------+
| 1 | tom | 20 |
| 2 | jerry | 23 |
| 3 | wangqing | 25 |
| 4 | sean | 28 |
| 5 | zhangshan | 26 |
| 6 | zhangshan | 20 |
| 7 | lisi | 50 |
| 8 | chenshuo | 10 |
| 9 | wangwu | 3 |
| 10 | qiuyi | 15 |
| 11 | qiuxiaotian | 20 |
+----+-------------+------+
6.以下字段降序排序
mysql> select * from student order by age desc;
+----+-------------+------+
| id | name | age |
+----+-------------+------+
| 7 | lisi | 50 |
| 4 | sean | 28 |
| 5 | zhangshan | 26 |
| 3 | wangqing | 25 |
| 2 | jerry | 23 |
| 1 | tom | 20 |
| 6 | zhangshan | 20 |
| 11 | qiuxiaotian | 20 |
| 10 | qiuyi | 15 |
| 8 | chenshuo | 10 |
| 9 | wangwu | 3 |
+----+-------------+------+c;
7.查询学生表中年龄最小的3位同学
mysql> select * from student order by age limit 3;
+----+----------+------+
| id | name | age |
+----+----------+------+
| 9 | wangwu | 3 |
| 8 | chenshuo | 10 |
| 10 | qiuyi | 15 |
+----+----------+------+
8.查询学生表中年龄最大的4位同学
mysql> select * from student order by age desc limit 4;
+----+-----------+------+
| id | name | age |
+----+-----------+------+
| 7 | lisi | 50 |
| 4 | sean | 28 |
| 5 | zhangshan | 26 |
| 3 | wangqing | 25 |
+----+-----------+------+
9.查询学生表中名字叫zhangshan的记录
mysql> select name from student where name='zhangshan';
+-----------+
| name |
+-----------+
| zhangshan |
| zhangshan |
+-----------+
10.查询学生表中名字叫zhangshan且年龄大于20岁的记录
mysql> select name from student where age>20 and name='zhangshan';
+-----------+
| name |
+-----------+
| zhangshan |
11.查询学生表中年龄在23到30之间的记录
mysql> select name from student where age between 23 and 30 ;
+-----------+
| name |
+-----------+
| jerry |
| wangqing |
| sean |
| zhangshan |
+-----------+
12.修改wangwu的年龄为100
mysql> update student set age = 100 where name = 'wangwu';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from student;
+----+-------------+------+
| id | name | age |
+----+-------------+------+
| 1 | tom | 20 |
| 2 | jerry | 23 |
| 3 | wangqing | 25 |
| 4 | sean | 28 |
| 5 | zhangshan | 26 |
| 6 | zhangshan | 20 |
| 7 | lisi | 50 |
| 8 | chenshuo | 10 |
| 9 | wangwu | 100 |
| 10 | qiuyi | 15 |
| 11 | qiuxiaotian | 20 |
+----+-------------+------+
13.删除学生中名字叫zhangshan且年龄小于等于20的记录
mysql> delete from student where name='zhangshan' and age <= 20;
Query OK, 1 row affected (0.00 sec)
mysql> select * from student;
+----+-------------+------+
| id | name | age |
+----+-------------+------+
| 1 | tom | 20 |
| 2 | jerry | 23 |
| 3 | wangqing | 25 |
| 4 | sean | 28 |
| 5 | zhangshan | 26 |
| 7 | lisi | 50 |
| 8 | chenshuo | 10 |
| 9 | wangwu | 100 |
| 10 | qiuyi | 15 |
| 11 | qiuxiaotian | 20 |
+----+-------------+------+