第六周作业

1. 完成将server和client端的mysql配置默认字符集为utf8mb4;

1.首先查看数据是否支持utf8mb4
mysql> SHOW VARIABLES Like '%char%';

#打开mysql的配置文件进行相关配置 vim /etc/my.cnf

2.针对客户端进行utf8mb4设置
[mysql]                        #针对Mysql个人客户端
default-character-set=utf8mb4

[client]                       #针对Mysql所有客户端
default-character-set=utf8mb4

针对服务器端设置utf8mb4
[mysql]
default-set-server=utf8mb4

3.重启mysql服务器
systemctl restart mysqld.service

4.重新查看当前字符集

mysql> SHOW VARIABLES Like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

2. 掌握如何获取SQL命令的帮助,基于帮助完成添加testdb库,字符集utf8, 排序集合utf8_bin

1.在Mysql输入help create database; 查看创建数据库帮助

mysql> help create database;

Name: 'CREATE DATABASE'
Description:
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}

CREATE DATABASE creates a database with the given name. To use this
statement, you need the CREATE privilege for the database. CREATE
SCHEMA is a synonym for CREATE DATABASE.

2.输入 mysql> create database testdb character set utf8 collate utf8_bin;
Query OK, 1 row affected, 2 warnings (0.01 sec)

3.查看数据库 mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| ZA                 |
| hellodb            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
| zabbix             |
+--------------------+
8 rows in set (0.00 sec)

3.总结mysql常见的数据类型。

MySQL支持很多数据类型,以便我们能在复杂的业务场景中支持各种各样的数据格式,存储适当的数据内容。我们在设计数据库时,正确的使用数据库类型对整个数据库的整洁和高效,会有很大的帮助。

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型

整型(INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT):用于存储整数值,不同的整型数据类型支持的范围不同。

浮点型(FLOAT、DOUBLE、DECIMAL):用于存储带小数点的数字,不同的浮点型数据类型支持的精度不同。

字符串型(CHAR、VARCHAR、TEXT、BLOB):用于存储字符型数据,不同的字符串型数据类型支持的长度和存储方式不同。

日期/时间型(DATE、TIME、DATETIME、TIMESTAMP、YEAR):用于存储日期和时间信息,不同的日期/时间型数据类型支持的精度和存储方式不同。

枚举和集合型(ENUM、SET):用于存储具有限定值的数据,ENUM类型只能存储单个值,而SET类型可以存储多个值。


4. 创建一个主机表host,放在testdb中,要求字段 1) 主键自增id 无符号, tinyint. 2) hostname可变字符长度256,可为空。。3)ip 可变字符长度256,可为空。4)账号,可变字符长度256,可为空。5)密码,可变字符长度256,可为空。6)创建时间,时间类型,非空。7)更新时间,时间类型,默认当前时间。8)区域,只能在华南,华北,华东,三个区域之一。9)端口,无符号整数,可为空。10)外网地址,可变字符长度256,可为空。11)内网地址,可变字符长度256,可为空。

1.进入testdb中

mysql> use testdb
Database changed
2.创建hots主机表
mysql> create table host (
    -> id tinyint unsigned not null auto_increment primary key,
    -> hostname varchar(256) default null,
    -> ip varchar(256) default null,
    -> account varchar(256) default null,
    -> password varchar(256) default null,
    -> create_time datetime not null,
    -> update_time datetime default current_timestamp on update current_timestamp,
    -> region enum('华南','华北','华东'),
    -> port int unsigned null,
    -> public_ip varchar(256),
    -> private_ip varchar(256)
    -> );

Query OK, 0 rows affected (0.02 sec)

mysql> mysql> desc table host;
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | host  | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    1 |   100.00 | NULL  |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

mysql> mysql> describe host;
+-------------+----------------------------------+------+-----+-------------------+-----------------------------------------------+
| Field       | Type                             | Null | Key | Default           | Extra                                         |
+-------------+----------------------------------+------+-----+-------------------+-----------------------------------------------+
| id          | tinyint unsigned                 | NO   | PRI | NULL              | auto_increment                                |
| hostname    | varchar(256)                     | YES  |     | NULL              |                                               |
| ip          | varchar(256)                     | YES  |     | NULL              |                                               |
| account     | varchar(256)                     | YES  |     | NULL              |                                               |
| password    | varchar(256)                     | YES  |     | NULL              |                                               |
| create_time | datetime                         | NO   |     | NULL              |                                               |
| update_time | datetime                         | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
| region      | enum('华南','华北','华东')       | YES  |     | NULL              |                                               |
| port        | int unsigned                     | YES  |     | NULL              |                                               |
| public_ip   | varchar(256)                     | YES  |     | NULL              |                                               |
| private_ip  | varchar(256)                     | YES  |     | NULL              |                                               |
+-------------+----------------------------------+------+-----+-------------------+-----------------------------------------------+
11 rows in set (0.00 sec)

5. 给testdb.host表中添加多条数据。

1.插入表
mysql> insert into host (hostname,ip,account,password,create_time,region,port) values
    -> ('linux','192.168.0.1','root','123456','2023-010-01 00:00:00','华东','456')
    -> ('linux','192.168.0.1','root','123456','2023-010-01 00:00:00','华东','456');

2.查看表格内容
mysql> select * from host;
+----+----------+-------------+---------+----------+---------------------+---------------------+--------+------+-----------+------------+
| id | hostname | ip          | account | password | create_time         | update_time         | region | port | public_ip | private_ip |
+----+----------+-------------+---------+----------+---------------------+---------------------+--------+------+-----------+------------+
|  1 | linux    | 192.168.0.1 | root    | 123456   | 2023-10-01 00:00:00 | 2023-11-02 20:42:58 | 华东   |  456 | NULL      | NULL       |
|  2 | linux    | 192.168.0.1 | root    | 123456   | 2023-10-01 00:00:00 | 2023-11-02 20:43:33 | 华东   |  456 | NULL      | NULL       |
+----+----------+-------------+---------+----------+---------------------+---------------------+--------+------+-----------+------------+
2 rows in set (0.00 sec)

6. 根据表扩展出几个语句,完成总结DDL, DML的用法,并配上示例。

DDL:对数据库以及数据库内部的对象进行创建、删除、修改等操作的语言,常用的语句:create,alter,drop,show

DML:用来对数据库表中的数据进行增删改查操作。常用的语句:insert,update,delete,select

DDL用法:

创建表:

mysql> create table student (id tinyint unsigned primary key auto_increment , name char(4) not null, gender char(1), age tinyint unsigned );

修改表

alter table student add score int default 80;

删除表

mysql> drop table student;
Query OK, 0 rows affected (0.00 sec)

查看表

mysql> show tables;                                                                                         
+------------------+
| Tables_in_testdb |
+------------------+
| host             |
+------------------+
1 row in set (0.00 sec)

DML用法

查看表记录:

mysql> select * from host;

表中插入内容

insert into student (id,name,gender,age) values(1,'xiao','M',20);

修改表信息

update student set age = 19 where id = 1;

删除表

delete from student;

7. 导入hellodb库,总结DQL, alias, where子句,gruop by, order by, limit, having使用示例。

导入hellodb库

mysql < hellodb_innodb.sql

总结DQL, alias, where子句,gruop by, limit, having使用

alias 给字段起别名

select 字段名 as 别名 from 表名;

mysql> select Name as 姓名,Age as 年龄 from students;
+---------------+--------+
| 姓名          | 年龄   |
+---------------+--------+
| Shi Zhongyu   |     22 |
| Shi Potian    |     22 |
| Xie Yanke     |     53 |
| Ding Dian     |     32 |

where 筛选条件
查询年龄大于等于10岁的所有信息

mysql> select * from students where age>=20;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
|     3 | Xie Yanke     |  53 | M      |       2 |        16 |
|     4 | Ding Dian     |  32 | M      |       4 |         4 |
|     5 | Yu Yutong     |  26 | M      |       3 |         1 |
|     6 | Shi Qing      |  46 | M      |       5 |      NULL |
|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |

gruop by 分组查询

计算平均年龄
mysql> select gender,avg(age) from students group by gender;
+--------+----------+
| gender | avg(age) |
+--------+----------+
| M      |  33.0000 |
| F      |  19.0000 |
+--------+----------+
order by 排序

按年龄排序
mysql> select * from students order by age;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
|    20 | Diao Chan     |  19 | F      |       7 |      NULL |
|    15 | Duan Yu       |  19 | M      |       4 |      NULL |
|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
|     7 | Xi Ren        |  19 | F      |       3 |      NULL |
|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |

limit 查看指定数据

查看前三条数据
mysql> select * from students limit 3;
+-------+-------------+-----+--------+---------+-----------+
| StuID | Name        | Age | Gender | ClassID | TeacherID |
+-------+-------------+-----+--------+---------+-----------+
|     1 | Shi Zhongyu |  22 | M      |       2 |         3 |
|     2 | Shi Potian  |  22 | M      |       1 |         7 |
|     3 | Xie Yanke   |  53 | M      |       2 |        16 |
+-------+-------------+-----+--------+---------+-----------+
3 rows in set (0.00 sec)

8. 基于hellodb 库, 总结子查询,关联查询 ,交叉连接,内连接,左连接,右连接,完全连接,自连接。

9. 总结select语句处理顺序。

from >> (表名) >> where(过滤条件) > group by (分组)>> 聚合 >>having(筛选)>> select(形成虚拟表)>> order by (输出后结果)>> limit 

10. 总结mysql事件管理,用户管理,权限管理。

MySQL 事件管理

事件是根据时间表运行的任务,类似于 Windows 定时任务。一个事件可调用一次,也可周期性地启动。它由一个特定的线程来管理,也就是所谓的事件调度器。MySQL 的事件调度器可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下非常实用。

事件和触发器类似,都是在某些事情发生的时候启动。有时候也称为“时间触发器”,因为它们是基于特定时间点触发的程序。MySQL 事件可以用于许多场景,例如优化数据库表、归档数据、生成复杂查询报告、清理日志文件等。

管理

事件由两个部分组成,第一部分是事件调度(event schedule),表示事件何时启动以及按什么频率启动,第二部分是事件动作(event action),即事件启动时执行的代码,事件动作可以是一条简单的SQL语句,也可以是一个存储过程,也可以是begin…end语句块。

1.查看事件是否开启

mysql> SHOW VARIABLES LIKE 'event_scheduler'; 或者输入(SELECT @@event_scheduler;)
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0.04 sec)

2.如果没有开启的情况下输入以下命令开启

mysql> set global event_scheduler = ON;

3.创建一个event_1事件,之后每6秒向one1数据表中插入数据

创建用户表
CREATE TABLE t_event(id int auto_increment primary key, ts timestamp);

创建事件

CREATE EVENT event1
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 10 SECOND
DO
INSERT INTO t_event(ts) VALUES (CURRENT_TIMESTAMP);

4.查看结果

mysql> select * from t_event;
+----+---------------------+
| id | ts                  |
+----+---------------------+
|  1 | 2023-11-03 19:48:23 |
+----+---------------------+
1 row in set (0.00 sec)

用户管理

1.创建用户
mysql> create user 'one'@'192.168.50.7' identified by '123456';

2.修改密码
SET PASSWORD FOR 'USERNAME'@'HOST' = 'password';

权限管理

1.赋予权限
mysql> grant all on *.* to 'one'@'192.168.50.7';

2.更新权限
flush privileges;


11. 基于apache, php, mysql搭建wordpress站点。

1.安装所使用的软件

yum -y install httpd php php-mysqlnd php-json mysql-server

2.下载wordpress-6.3.2-zh_CN.tar.gz 并解压

tar -xvzf wordpress-6.3.2-zh_CN.tar.gz

3.将压缩后的文件移动到指定目录下

mv wordpress /var/www/html/

4.为wordpress创建一个数据库,一个指定用户并赋予权限

mysql> create database wordpress;

mysql> CREATE USER 'wordb'@'192.168.50.7' IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';

FLUSH PRIVILEGES;

5.浏览器登入虚拟机域名,对wordpress进行配置设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值