mysql8.0的安装:
参考https://blog.youkuaiyun.com/claroja/article/details/93711476
mysql8.0的使用:
常用语句
select[???] from [???]where oreder by[???]
CREATE DATABASE;
CREATE TABLE;
INSERT INTO
连接和断开链接
shell> mysql -h host -u user -p
Enter password: *******
-h 地址,如果本地可以省略
-u 用户名
-p 密码
SELECT VERSION(), CURRENT_DATE;
SELECT SIN(PI()/4), (4+1)*5;
在如果想退出多行输入,可以使用\c
mysql> SELECT
-> USER()
-> \c
创建和使用数据库
SHOW DATABASES; # 只显示有权限进入的数据库
USE test # 选择数据库
GRANT ALL ON menagerie.* TO ‘your_mysql_name’@‘your_client_host’; # 授权使用数据库
创建和使用数据库
数据库大小写敏感,而SQL语句不敏感
CREATE DATABASE menagerie;
USE menagerie # 进入数据库
mysql -h host -u user -p menagerie # 连接到指定数据库,不然每次都要使用use来进入
创建表
SHOW TABLES; # 查看所有表
CREATE TABLE pet (); # 创建表
DESCRIBE pet; # 查看表
导入数据
LOAD DATA LOCAL INFILE ‘/path/xxx.txt’ INTO TABLE xxx; # 将txt文件导入数据表
LOAD DATA LOCAL INFILE ‘/path/xxx.txt’ INTO TABLE pet
LINES TERMINATED BY ‘\r\n’; # 指定行分隔符
INSERT INTO pet
VALUES (‘Puffball’,‘Diane’,‘hamster’,‘f’,‘1999-03-30’,NULL); # 插入一行
查询数据
获取所有数据
SELECT * FROM pet;
查询指定行
SELECT * FROM pet WHERE species = ‘snake’ OR species = ‘bird’;
查询指定列
SELECT name, birth FROM pet;
指定列排序
SELECT name, birth FROM pet ORDER BY birth DESC;
数据计算
计算生日和现在的年龄
SELECT name, birth, CURDATE(),
TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
FROM pet;
查看指定月份
SELECT name, birth FROM pet WHERE MONTH(birth) = 5;
模式匹配
1.like
SELECT * FROM pet WHERE name LIKE ‘b%’; 以b开头的名字
SELECT * FROM pet WHERE name LIKE ‘%fy’; 以fy结尾的
SELECT * FROM pet WHERE name LIKE ‘%w%’; 包含w的
SELECT * FROM pet WHERE name LIKE ‘_____’; 姓名长度为5的 一个_代表一个字符
2.REGEXP_LIKE()
SELECT * FROM pet WHERE REGEXP_LIKE(name, ‘^b’); 以b开头的
SELECT * FROM pet WHERE REGEXP_LIKE(name, ‘fy
′
)
;
以
f
y
结
尾
的
S
E
L
E
C
T
∗
F
R
O
M
p
e
t
W
H
E
R
E
R
E
G
E
X
P
L
I
K
E
(
n
a
m
e
,
′
w
′
)
;
包
含
w
的
S
E
L
E
C
T
∗
F
R
O
M
p
e
t
W
H
E
R
E
R
E
G
E
X
P
L
I
K
E
(
n
a
m
e
,
′
.
.
.
.
.
'); 以fy结尾的 SELECT * FROM pet WHERE REGEXP_LIKE(name, 'w'); 包含w的 SELECT * FROM pet WHERE REGEXP_LIKE(name, '^.....
′);以fy结尾的SELECT∗FROMpetWHEREREGEXPLIKE(name,′w′);包含w的SELECT∗FROMpetWHEREREGEXPLIKE(name,′.....’); 长度为5的
计数
SELECT owner, COUNT(*) FROM pet GROUP BY owner;
关联查询
SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
FROM pet AS p1 INNER JOIN pet AS p2
ON p1.species = p2.species
AND p1.sex = ‘f’ AND p1.death IS NULL
AND p2.sex = ‘m’ AND p2.death IS NULL;