更新时间:2022-08-14 23:23:53
MySQL是一个关系型数据库管理系统,本步骤指导您如何在ECS实例上安装MySQL
执行如下命令,更新YUM源
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
执行如下命令,安装MySQL
yum -y install mysql-community-server --nogpgcheck
执行如下命令,查看MySQL版本号
mysql -V
返回结果如下,表示您已成功安装MySQL
执行如下命令,启动MySQL服务
systemctl start mysqld
执行如下命令,设置MySQL服务开机自启动【可选】
systemctl enable mysqld
配置MySQL的root用户密码
执行如下命令,查看 /var/log/mysqld.log
文件,获取root用户的初始密码
grep 'temporary password' /var/log/mysqld.log
返回结果如下所示,您可以查看到root用户的初始密码
* 执行以下命令,使用root用户登录数据库
mysql -uroot -p
返回结果如下所示,输入root用户的初始密码。
![结果](https://ucc.alicdn.com/pic/developer-ecology/a63c22d465b04626901611cad1a8e5ab.png)
* 执行以下命令,修改MySQL的root用户的初始密码
```sql
set global validate_password_policy=0; #修改密码安全策略为低(只校验密码长度,至少8位)
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
```
* 执行以下命令,授予root用户远程管理权限
```sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';
```
* 输入 `exit` 或 `quit` 退出数据库
![结果](https://ucc.alicdn.com/pic/developer-ecology/379d871e4c3f4790ae057edea1dd33bc.png)
以下内容对MySQL进行基本演示
使用root用户登录数据库
mysql -uroot -p12345678
创建test数据库
注意:进入 mysql 之后,每条命令结尾都要有分号
create database test;
查看当前数据库列表
show databases;
连接 mysql 数据库
use mysql;
查看 mysql 数据库中的数据表
show tables;
退出 MySQL 界面
exit
返回 Linux 界面,执行如下命令,将名为 test 的数据库备份到当前目录的 test.sql
界面显示 Enter password,输入 MySQL 数据库的登录密码 12345678
根据备份的数据库大小,等待时间长短不同。完成后,使用命令 ll
查看备份文件,界面查看到备份文件 test.sql
,完成备份
mysqldump -uroot -p test > test.sql
返回 Linux 界面,执行如下命令,将 test.sql 导入数据库。界面显示 Enter password ,输入 MySQL 数据库的登录密码 12345678
说明:其中参数 -D 是指定数据库为test
mysql -uroot -p -Dtest < test.sql
还有一种导入方法,在MySQL中
进入 MySQL 数据库
mysql -uroot -p12345678
连接数据库 test
use test;
使用 source
,将 test.sql
导入数据库 test
source /root/test.sql;
source
+ 文件路径
本小节将主要介绍基本的 SQL 语句,数据的增删查改等
提示:若当前不是在 Mysql 数据库的命令界面,请执行命令: ,登录到 Mysql 数据库命令行界面。否则,请忽略此操作。
mysql -uroot -p12345678
连接数据库
用法:
use 数据库名;
创建数据表
用法:
CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....);
表名为 test1 ,test1 表有两列:id 和 name。其中,id 的数据类型为 int,name 的数据类型为 char,且字符长度为 20
create table test1 (id int,name char(20));
插入数据
语法:
INSERT INTO 表名称 VALUES (值1, 值2,....);
示例
insert into test1 values(1,"zhangsan");
此条数据的第一列 id 的值为1,第二列 name 的值为zhangsan
查看表中数据
语法1:
SELECT * FROM 表名称; //查询表中的所有列的数据信息
SELECT 列名称 FROM 表名称; //查询表中的指定列的数据信息
查看 test1 表中的全部数据信息。此时,用户可以查看到新插入的一行数据: id 的值为 1 , name 的值为 zhangsan
select * from test1;
查看
更新表中数据
语法:
UPDATE 表名称 SET 列名 = 值 WHERE 表名称 = 值;
更新 test1 表中的数据,也就是,将所有 id 为 1 的 name 值均修改为 lisi
update test1 set name = "lisi" where id =1;
查看 test1
select * from test1;
删除表中数据
语法:
DELETE FROM 表名称 WHERE 列名称 = 值;
删除 test1 表中,所有 id 值为 1 的数据
delete from test1 where id =1;
查看 test1
select * from test1;
删除数据表
语法:
DROP TABLE 表名称
删除名为 test1 的数据表
drop table test1;
查看当前连接数据库中的所有表
show tables;
删除数据库
语法:
DROP DATABASE 数据库名称
删除名为 test 的数据库
drop database test;
查看所有数据库
show databases;
主要内容:登录本地部署的MySQL数据库实验环境,并查看本地MySQL源数据库中的信息。
运行如下命令,登录到ECS实例的MySQL数据库:
mysql -u root -p123456
通过如下操作,查看源数据库bakery、其中的表customer和product,以及表中的数据
执行如下命令,查看数据库信息
show databases;
执行如下命令,切换数据库为bakery
use bakery;
执行如下命令,查看表中数据:
show columns from customer;
show columns from product;
select * from customer;
select * from product;
首先,通过如下操作步骤,登录到阿里云RDS管理控制台:
通过如下步骤,进入数据库账号创建页面:
填写如下信息,完成数据库账号创建:
通过如下操作步骤,进入数据库创建页面:
在弹出的创建页面中,添加如下信息:
进入数据传输服务DTS
https://dts.console.aliyun.com/
配置迁移任务,按照如下步骤,输入 源库信息 的配置信息:
按照如下步骤,完成 目标库信息 的配置信息:
通过如下步骤,配置迁移任务的 迁移类型及列表:
说明:若预检查未通过,请根据错误提示和如上的操作步骤,核对迁移任务的配置是否正确。
在弹出的页面中,输入如下的信息:
例如:提供的RDS 链接地址为
rm-uf6l90d950j1o7890.mysql.rds.aliyuncs.com
则输入信息为:
rm-uf6l90d950j1o7890.mysql.rds.aliyuncs.com:3306
完成后,点击【登录】(忽略RAM授权)
本小节主要为大家介绍MySQL中常用的数据查询、删除、更新、插入等基本操作
使用CREATE TABLE语句创建一个数据表。将以下语句复制到SQLConsole页签中,然后单击【执行】。
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(32) DEFAULT NULL COMMENT 'name',
`age` int(11) DEFAULT NULL COMMENT 'age',
`address` varchar(32) DEFAULT NULL COMMENT 'address',
`sex` tinyint(1) DEFAULT NULL COMMENT 'sex,woman:0,man:1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
执行成功后,单击【刷新】查看创建的数据表
插入数据
插入语句说明:
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】:
INSERT INTO USER
(name, age, address, sex)
VALUES
('zhangsan', 21, 'jiangxi', 0),
('lisi', 22, 'hubei', 0),
('wangwu', 23, 'hunan', 0),
('lilei', 24, 'henan', 1),
('hanmeimei', 25, 'hebei', 1),
('xiaoming', 26, 'shandong', 1),
('xiaoli', 27, 'shanxi', 1) ;
查询数据
查询语句格式:
SELECT col_name,...
FROM table_name
WHERE where_condition
GROUP BY col_name,...
HAVING where_condition
ORDER BY col_name,...
LIMIT offset,row_count
【例子】将以下SQL语句复制到SQLConsole页签中,然后单击【执行】:
SELECT id,name,age,address,sex FROM user;
更新数据
更新语句格式:
UPDATE table_name SET col_name=expr,... WHERE where_condition
【例子】将以下SQL语句复制到SQLConsole页签中,然后单击【执行】:
UPDATE `user` SET `age` = 28,`address` = 'sichuan' WHERE `name` = 'xiaoming' ;
删除数据
删除语句格式:
DELETE FROM table_name WHERE where_condition
【例子】将以下SQL语句复制到SQLConsole页签中,然后单击【执行】:
DELETE FROM `user` WHERE `name` = 'xiaoming' ;
本小节主要为大家介绍MySQL中常用的内置函数。
使用CREATE TABLE语句创建一个数据表。将以下语句复制到SQLConsole页签中,然后单击【执行】。
CREATE TABLE student_score(sid INT PRIMARY KEY NOT NULL, sname VARCHAR(30), sage INT, ssex VARCHAR(8), score INT(11));
insert into `student_score`(`sid`, `sname`, `sage`, `ssex`,`score`)
values (1001, 'xiaohua', 17,'0', 75),
(1002, 'xiaohong', 18,'0', 80),
(1003, 'wangwu', 18,'1', 90),
(1004, 'lisi', 17,'1', 68),
(1005, 'zhangsan', 19,'1', 73),
(1006, 'xiaohei', 19,'1', 100),
(1007, 'xiaoma', 20,'0', 77),
(1008, 'xiaoli', 17,'1', 82),
(1009, 'xiaobai', 19,'0', 88),
(1010, 'wentong', 18,'0', 53);
AVG()函数
AVG() 函数返回数值列的平均值
语法:
SELECT AVG(column_name) FROM table_name
将以下语句复制到SQLConsole页签中,然后单击【执行】:
SELECT avg(score) FROM student_score;
执行结果如下:
COUNT()函数
COUNT() 函数返回匹配指定条件的行数
语法:
# COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
SELECT COUNT(column_name) FROM table_name;
# COUNT(*) 函数返回表中的记录数:
SELECT COUNT(*) FROM table_name;
# COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name;
将以下语句复制到SQLConsole页签中,然后单击【执行】:
SELECT COUNT(*) FROM student_score;
执行结果如下:
MAX()函数
MAX() 函数返回指定列的最大值
语法:
SELECT MAX(column_name) FROM table_name;
将以下语句复制到SQLConsole页签中,然后单击【执行】:
SELECT MAX(score) FROM student_score;
执行结果如下:
MIN()函数
MIN() 函数返回指定列的最小值
语法:
SELECT MIN(column_name) FROM table_name;
将以下语句复制到SQLConsole页签中,然后单击【执行】:
SELECT MIN(score) FROM student_score;
执行结果如下:
SUM()函数
SUM() 函数返回数值列的总数
语法:
SELECT SUM(column_name) FROM table_name;
将以下语句复制到SQLConsole页签中,然后单击【执行】:
SELECT SUM(score) FROM student_score;
执行结果如下:
本小节主要介绍如何使用GROUP BY、HAVING和ORDER BY等进行分组查询
使用CREATE TABLE语句创建数据表
将以下语句复制到SQLConsole页签中,然后单击【执行】:
CREATE TABLE `student` (
`sid` int(11) NOT NULL,
`sname` varchar(30) DEFAULT NULL,
`sage` int(11) DEFAULT NULL,
`ssex` varchar(8) DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `student`(`sid`,`sname`,`sage`,`ssex`) values
(1005,'xiaohua',19,'0'),
(1004,'xiaohong',18,'0'),
(1003,'wangwu',18,'1'),
(1002,'lisi',17,'1'),
(1001,'zhangsan',18,'1');
CREATE TABLE `sc` (
`sid` int(11) NOT NULL,
`cid` int(11) NOT NULL,
`score` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `sc`(`sid`,`cid`,`score`) values
(1001,101,75),
(1001,102,85),
(1002,101,65),
(1002,102,95),
(1003,101,65),
(1003,102,95),
(1004,101,80),
(1004,102,80),
(1005,101,75),
(1005,102,85);
CREATE TABLE `course` (
`cid` int(11) NOT NULL,
`cname` varchar(30) DEFAULT NULL,
`tid` int(11) DEFAULT NULL,
PRIMARY KEY (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `course`(`cid`,`cname`,`tid`) values
(102,'yuwen',2),
(101,'shuxue',1);
CREATE TABLE `teacher` (
`tid` int(11) NOT NULL,
`tname` varchar(30) DEFAULT NULL,
PRIMARY KEY (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `teacher`(`tid`,`tname`) values
(2,'liulaoshi'),
(1,'wanglaoshi');
执行成功后,单击【刷新】查看创建的数据表
查询所有同学的学号和成绩
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】
# 使用WHERE s. sid = sc.sid 来消除笛卡尔积。
SELECT s.sid ,s.sname ,c.score FROM student AS s ,sc AS c WHERE s.sid = c.sid ;
执行结果如下:
查询语文成绩在80以上同学
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】
SELECT a.score,
b.cname,
s.sname
FROM sc as a,
course AS b,
student AS s
WHERE a.cid= b.cid
AND s.sid= a.sid
AND a.cid= 102
AND a.score> 80
执行结果如下:
查询语文成绩比数学成绩高的同学
将以下SQL语句复制到SQLConsole页签中,然后单击【执行】:
SELECT a.sid,
a.score,
s.sname
FROM(
SELECT sid, score
FROM sc
WHERE cid= "102") a,
(
SELECT sid, score
FROM sc
WHERE cid= "101") b,
student as s
WHERE a.score > b.score
AND a.sid= b.sid
AND s.sid= a.sid
执行结果如下: