鼠扑 发表于 2022-9-2 16:19:38

mysql进阶

mysql进阶


目录

[*]mysql进阶

[*]1.二进制格式mysql安装
[*]2.mysql配置文件

[*]2.1 数据库密码破解

[*]3.多表联合查询

[*]3.1 什么是多表联合查询
[*]3.2 交叉连接(CROSS JOIN)

[*]3.2.1 笛卡尔积
[*]3.2.2 交叉连接




1.二进制格式mysql安装

下载二进制格式的mysql软件包
# cd /usr/src/
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
--2022-07-27 15:52:00--https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
Resolving cdn.mysql.com (cdn.mysql.com)... 23.33.16.230
Connecting to cdn.mysql.com (cdn.mysql.com)|23.33.16.230|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 674830866 (644M)
Saving to: 'mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz'

mysql-5.7.38-linux- 100%[=================>] 643.57M1.43MB/s    in 4m 25s

2022-07-27 15:56:27 (2.42 MB/s) - 'mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz' saved 创建用户和组
# useradd -M -r -s /sbin/nologin mysql
# id mysql
uid=995(mysql) gid=992(mysql) groups=992(mysql)解压软件到/usr/local/
# tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# ls /usr/local/
bingames    lib    libexec                              sbin   src
etcincludelib64mysql-5.7.38-linux-glibc2.12-x86_64share
# cd /usr/local/
# ln -sv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
'mysql' -> 'mysql-5.7.38-linux-glibc2.12-x86_64'
# ll
total 0
drwxr-xr-x. 2 root root   6 Jun 222021 bin
drwxr-xr-x. 2 root root   6 Jun 222021 etc
drwxr-xr-x. 2 root root   6 Jun 222021 games
drwxr-xr-x. 2 root root   6 Jun 222021 include
drwxr-xr-x. 2 root root   6 Jun 222021 lib
drwxr-xr-x. 3 root root17 Jul 12 21:45 lib64
drwxr-xr-x. 2 root root   6 Jun 222021 libexec
lrwxrwxrwx. 1 root root35 Jul 27 16:06 mysql -> mysql-5.7.38-linux-glibc2.12-x86_64
drwxr-xr-x. 9 root root 129 Jul 27 16:04 mysql-5.7.38-linux-glibc2.12-x86_64
drwxr-xr-x. 2 root root   6 Jun 222021 sbin
drwxr-xr-x. 5 root root49 Jul 12 21:45 share
drwxr-xr-x. 2 root root   6 Jun 222021 src修改目录/usr/local/mysql的属主属组
# chown -R mysql.mysql mysql*
# ll
total 0
drwxr-xr-x. 2 rootroot    6 Jun 222021 bin
drwxr-xr-x. 2 rootroot    6 Jun 222021 etc
drwxr-xr-x. 2 rootroot    6 Jun 222021 games
drwxr-xr-x. 2 rootroot    6 Jun 222021 include
drwxr-xr-x. 2 rootroot    6 Jun 222021 lib
drwxr-xr-x. 3 rootroot   17 Jul 12 21:45 lib64
drwxr-xr-x. 2 rootroot    6 Jun 222021 libexec
lrwxrwxrwx. 1 mysql mysql35 Jul 27 16:06 mysql -> mysql-5.7.38-linux-glibc2.12-x86_64
drwxr-xr-x. 9 mysql mysql 129 Jul 27 16:04 mysql-5.7.38-linux-glibc2.12-x86_64
drwxr-xr-x. 2 rootroot    6 Jun 222021 sbin
drwxr-xr-x. 5 rootroot   49 Jul 12 21:45 share
drwxr-xr-x. 2 rootroot    6 Jun 222021 src添加环境变量
# cd /usr/local/mysql
# ls
LICENSEREADMEbindocsincludelibmansharesupport-files
# cd bin/
# pwd
/usr/local/mysql/bin
# cd /usr/local/mysql
# ls
LICENSEREADMEbindocsincludelibmansharesupport-files
# cd bin/
# pwd
/usr/local/mysql/bin
# echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh
# source /etc/profile.d/mysql.sh
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin创建头文件
# cd ..
# ls
LICENSEREADMEbindocsincludelibmansharesupport-files
# ln -sv /usr/local/mysql
mysql/                               mysql-5.7.38-linux-glibc2.12-x86_64/
# ln -sv /usr/local/mysql/include/ /usr/include/mysql
'/usr/include/mysql' -> '/usr/local/mysql/include/'
# vim /etc/ld.so.conf.d/mysql.conf
# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib/
# ldconfig
# vim /etc/man_db.conf
#MANDATORY_MANPATH                      /usr/src/pvm3/man
#
MANDATORY_MANPATH                     /usr/man
MANDATORY_MANPATH                     /usr/share/man
MANDATORY_MANPATH                     /usr/local/share/man
MANDATORY_MANPATH                     /usr/local/mysql/man        //添加一句建立数据存放目录
# mkdir /opt/data
# ll /opt/data/
total 0
# chown -R mysql.mysql /opt/data/初始化数据库
# mysqld --initialze --user mysql --datadir /opt/data/
2022-07-27T08:28:23.607621Z 0 Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-07-27T08:28:23.804276Z 0 A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-07-27T08:28:23.804304Z 0 A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-07-27T08:28:23.804658Z 0 CA certificate ca.pem is self signed.
2022-07-27T08:28:23.844366Z 1 A temporary password is generated for root@localhost: RIa<P+tD%6qV               
//这个命令的最后会生成一个临时密码,此处密码是RIa<P+tD%6qV
//再次注意,这个密码是随机的,你的不会跟我一样,一定要记住这个密码,因为一会登录时会用到2.mysql配置文件

mysql的配置文件为/etc/my.cnf
配置文件查找次序:若在多个配置文件中均有设定,则最后找到的最终生效
# vim /etc/my.cnf
# cat /etc/my.cnf

basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION//先找到启动脚本文件位置
# cd /usr/local/mysql
# ls
LICENSEREADMEbindocsincludelibmansharesupport-files
# cd support-files/
# ls
magicmysql-log-rotatemysql.servermysqld_multi.server
# file mysql.server
mysql.server: POSIX shell script, ASCII text executable
//在进行启动mysql,发现3306端口已监听
# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.Logging to '/opt/data/localhost.localdomain.err'.
SUCCESS!
# ss -anlt
State            Recv-Q         Send-Q                     Local Address:Port                     Peer Address:Port         Process         
LISTEN         0                128                              0.0.0.0:22                              0.0.0.0:*                              
LISTEN         0                80                                       *:3306                                  *:*                              
LISTEN         0                128                                 [::]:22                                 [::]:*                           

//将脚本加入到系统里去   //使用service控制MySQL启动或关闭
# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# vim /etc/init.d/mysqld
basedir=/usr/local/mysql/                //添加安装位置
datadir=/opt/data/                                //添加数据库存放位置
# service mysqld start
Starting MySQL. SUCCESS!
# ss -anlt
State            Recv-Q         Send-Q                     Local Address:Port                     Peer Address:Port         Process         
LISTEN         0                128                              0.0.0.0:22                              0.0.0.0:*                              
LISTEN         0                80                                       *:3306                                  *:*                              
LISTEN         0                128                                 [::]:22                                 [::]:*                              
# service mysqld stop
Shutting down MySQL.^[[A^[[A. SUCCESS!
# ss -anlt
State            Recv-Q         Send-Q                     Local Address:Port                     Peer Address:Port         Process         
LISTEN         0                128                              0.0.0.0:22                              0.0.0.0:*                              
LISTEN         0                128                                 [::]:22                                 [::]:*                              
//配置文件被删除后使用不了
# rm -rf /etc/init.d/mysqld
# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
Failed to start mysqld.service: Unit mysqld.service not found.

//使用systemctl管理mysql
# cp /usr/lib/systemd/system/sshd.service .
# ls
anaconda-ks.cfgpasswdsshd.service
# mv sshd.service mysql.service
# ls
anaconda-ks.cfgmysql.servicepasswd
# vim mysql.service
# cat mysql.service

Description=mysql server daemon
After=network.target sshd-keygen.target


Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP $MAINPID


WantedBy=multi-user.target

# mv mysql.service /usr/lib/systemd/system/
# ls
anaconda-ks.cfgpasswd
# systemctl daemon-reload
# systemctl start mysqld
Failed to start mysqld.service: Unit mysqld.service not found.        //启动报错需要关闭防火墙和selinux
# systemctl stop firewalld
# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled        //修改
# systemctl start mysql
# ss -anlt
State            Recv-Q         Send-Q                     Local Address:Port                     Peer Address:Port         Process         
LISTEN         0                128                              0.0.0.0:22                              0.0.0.0:*                              
LISTEN         0                80                                       *:3306                                  *:*                              
LISTEN         0                128                                 [::]:22                                 [::]:*                              mysql常用配置文件参数:
参数说明port = 3306设置监听端口socket = /tmp/mysql.sock指定套接字文件位置basedir = /usr/local/mysql指定MySQL的安装路径datadir = /data/mysql指定MySQL的数据存放路径pid-file = /data/mysql/mysql.pid指定进程ID文件存放路径user = mysql指定MySQL以什么用户的身份提供服务skip-name-resolve禁止MySQL对外部连接进行DNS解析 使用这一选项可以消除MySQL进行DNS解析的时间。 若开启该选项,则所有远程主机连接授权都要使用IP地址方 式否则MySQL将无法正常处理连接请求2.1 数据库密码破解

数据库密码破解:
1、修改/etc/my.cnf配置文件
vim /etc/my.cnf
添加skip-grant-tables
2、重启mysql服务
3、mysql 登入修改密码
update user set authentication_string = password('654321') where User = 'root' and Host = 'localhost';
4、编辑/etc/my.cnf配置文,删除skip-grant-tables,然后重启启动mysql服务
5、使用新密码登入mysql测试
# ls
anaconda-ks.cfgpasswd
# cat passwd
RIa<P+tD%6qV
# mysql -uroot -p'RIa<P+tD%6qV'        //登录报错显示需要libncurses.so.5
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
# dnf provides libncurses.so.5        //查看这个在那个软件包里面
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:37:59 ago on Wed Jul 27 16:33:32 2022.
ncurses-compat-libs-6.1-9.20180224.el8.i686 : Ncurses compatibility libraries
Repo      : base
Matched from:
Provide    : libncurses.so.5

# dnf -y install ncurses-compat-libs        //下载包
# mysql -uroot -p'RIa<P+tD%6qV'
mysql: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.38

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> exit
Bye
# mysql -uroot -p123456
mysql: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.38 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 3.多表联合查询

3.1 什么是多表联合查询

前面所讲的查询语句都是针对一个表的,但是在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询。多表查询就是同时查询两个或两个以上的表。
在 MySQL 中,多表查询主要有交叉连接、内连接、外连接、分组查询与子查询等5种。
3.2 交叉连接(CROSS JOIN)

3.2.1 笛卡尔积

交叉连接(CROSS JOIN):有两种,显式的和隐式的2种,一般用来返回连接表的笛卡尔积。
笛卡尔积(Cartesian product)是指两个集合 X 和 Y 的乘积。
例如,有 A 和 B 两个集合,它们的值如下:
/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf集合 A×B 和 B×A 的结果集分别表示为:
# vim .my.cnf
# cat .my.cnf

user=root
password=123456
# mysql -e 'show databases';
+--------------------+
| Database         |
+--------------------+
| information_schema |
| mysql            |
| performance_schema |
| sys                |
+--------------------+以上 A×B 和 B×A 的结果就叫做两个集合的笛卡尔积。
并且,从以上结果我们可以看出:

[*]两个集合相乘,不满足交换率,即 A×B≠B×A。
[*]A 集合和 B 集合的笛卡尔积是 A 集合的元素个数 × B 集合的元素个数。
多表查询遵循的算法就是以上提到的笛卡尔积,表与表之间的连接可以看成是在做乘法运算。在实际应用中,应避免使用笛卡尔积,因为笛卡尔积中容易存在大量的不合理数据,简单来说就是容易导致查询结果重复、混乱。
3.2.2 交叉连接

交叉连接的语法格式如下:
# vim /etc/my.cnf

basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
skip-grant-tables                        //添加一句 表示跳过所有授权表
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# systemctl restart mysql
# mysql
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.38 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password = password('654321');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

mysql> show databases;
+--------------------+
| Database         |
+--------------------+
| information_schema |
| mysql            |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

mysql> update user set authentication_string = password('654321') where User = 'root' and Host = 'localhost';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1Changed: 1Warnings: 1
//删除添加的那一句
# vim /etc/my.cnf
# cat /etc/my.cnf

basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

//测试密码是否能登录
# mysql -uroot -p654321
mysql: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.38 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 或
A = {1,2}
B = {3,4,5}注意:多个表交叉连接时,在 FROM 后连续使用 CROSS JOIN 或,即可。以上两种语法的返回结果是相同的,但是第一种语法才是官方建议的标准写法。
先创建一个名为tb_student_info的表
A×B={(1,3), (1,4), (1,5), (2,3), (2,4), (2,5) };
B×A={(3,1), (3,2), (4,1), (4,2), (5,1), (5,2) };创建一个名为tb_course的表
SELECT <字段名> FROM <表1> CROSS JOIN <表2> ;使用cross join查询出两张表中的笛卡尔积
SELECT <字段名> FROM <表1>, <表2> ;使用,来查询两张表
mysql> create database zxr;
Query OK, 1 row affected (0.00 sec)

mysql> use zxr;
Database changed
mysql> create table tb_students_info(id int not null primary key auto_increment,name varchar(50),age tinyint,sex varchar(4),height float,course_id int);
Query OK, 0 rows affected (0.01 sec)

mysql> desc tb_students_info;
+-----------+-------------+------+-----+---------+----------------+
| Field   | Type      | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| id      | int(11)   | NO   | PRI | NULL    | auto_increment |
| name      | varchar(50) | YES|   | NULL    |                |
| age       | tinyint(4)| YES|   | NULL    |                |
| sex       | varchar(4)| YES|   | NULL    |                |
| height    | float       | YES|   | NULL    |                |
| course_id | int(11)   | YES|   | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

mysql> insert tb_students_info(name,age,sex,height,course_id) values('Dany',25,'M',160,1),('Green',23,'M',158,2),('Henry',23,'W',185,1),('Jane',22,'M',162,3),('Jim',24,'W',175,2),('John',21,'W',172,4),('Lily',22,'M',165,4),('Susan',23,'M',170,5),('Thomas',22,'W',178,5),('Tom',23,'W',165,5)
    -> ;
Query OK, 10 rows affected (0.00 sec)
Records: 10Duplicates: 0Warnings: 0

mysql> select * from tb_students_info;
+----+--------+------+------+--------+-----------+
| id | name   | age| sex| height | course_id |
+----+--------+------+------+--------+-----------+
|1 | Dany   |   25 | M    |    160 |         1 |
|2 | Green|   23 | M    |    158 |         2 |
|3 | Henry|   23 | W    |    185 |         1 |
|4 | Jane   |   22 | M    |    162 |         3 |
|5 | Jim    |   24 | W    |    175 |         2 |
|6 | John   |   21 | W    |    172 |         4 |
|7 | Lily   |   22 | M    |    165 |         4 |
|8 | Susan|   23 | M    |    170 |         5 |
|9 | Thomas |   22 | W    |    178 |         5 |
| 10 | Tom    |   23 | W    |    165 |         5 |
+----+--------+------+------+--------+-----------+
10 rows in set (0.01 sec)查询表中学习mysql的人的名字
mysql> create table tb_course(id int not null primary key auto_increment,course_name varchar(50));
Query OK, 0 rows affected (0.02 sec)

mysql> desc tb_course;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type      | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)   | NO   | PRI | NULL    | auto_increment |
| course_name | varchar(50) | YES|   | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql> select * from tb_course;
+----+-------------+
| id | course_name |
+----+-------------+
|1 | Java      |
|2 | MySQL       |
|3 | Python      |
|4 | Go          |
|5 | C++         |
+----+-------------+
5 rows in set (0.00 sec)查询表中id和course_id相同学习mysql的有哪些人
mysql> select * from tb_course cross join tb_students_info;
+----+-------------+----+--------+------+------+--------+-----------+
| id | course_name | id | name   | age| sex| height | course_id |
+----+-------------+----+--------+------+------+--------+-----------+
|1 | Java      |1 | Dany   |   25 | M    |    160 |         1 |
|2 | MySQL       |1 | Dany   |   25 | M    |    160 |         1 |
|3 | Python      |1 | Dany   |   25 | M    |    160 |         1 |
|4 | Go          |1 | Dany   |   25 | M    |    160 |         1 |
|5 | C++         |1 | Dany   |   25 | M    |    160 |         1 |
|1 | Java      |2 | Green|   23 | M    |    158 |         2 |
|2 | MySQL       |2 | Green|   23 | M    |    158 |         2 |
|3 | Python      |2 | Green|   23 | M    |    158 |         2 |
|4 | Go          |2 | Green|   23 | M    |    158 |         2 |
|5 | C++         |2 | Green|   23 | M    |    158 |         2 |
|1 | Java      |3 | Henry|   23 | W    |    185 |         1 |
|2 | MySQL       |3 | Henry|   23 | W    |    185 |         1 |
|3 | Python      |3 | Henry|   23 | W    |    185 |         1 |
|4 | Go          |3 | Henry|   23 | W    |    185 |         1 |
|5 | C++         |3 | Henry|   23 | W    |    185 |         1 |
|1 | Java      |4 | Jane   |   22 | M    |    162 |         3 |
|2 | MySQL       |4 | Jane   |   22 | M    |    162 |         3 |
|3 | Python      |4 | Jane   |   22 | M    |    162 |         3 |
|4 | Go          |4 | Jane   |   22 | M    |    162 |         3 |
|5 | C++         |4 | Jane   |   22 | M    |    162 |         3 |
|1 | Java      |5 | Jim    |   24 | W    |    175 |         2 |
|2 | MySQL       |5 | Jim    |   24 | W    |    175 |         2 |
|3 | Python      |5 | Jim    |   24 | W    |    175 |         2 |
|4 | Go          |5 | Jim    |   24 | W    |    175 |         2 |
|5 | C++         |5 | Jim    |   24 | W    |    175 |         2 |
|1 | Java      |6 | John   |   21 | W    |    172 |         4 |
|2 | MySQL       |6 | John   |   21 | W    |    172 |         4 |
|3 | Python      |6 | John   |   21 | W    |    172 |         4 |
|4 | Go          |6 | John   |   21 | W    |    172 |         4 |
|5 | C++         |6 | John   |   21 | W    |    172 |         4 |
|1 | Java      |7 | Lily   |   22 | M    |    165 |         4 |
|2 | MySQL       |7 | Lily   |   22 | M    |    165 |         4 |
|3 | Python      |7 | Lily   |   22 | M    |    165 |         4 |
|4 | Go          |7 | Lily   |   22 | M    |    165 |         4 |
|5 | C++         |7 | Lily   |   22 | M    |    165 |         4 |
|1 | Java      |8 | Susan|   23 | M    |    170 |         5 |
|2 | MySQL       |8 | Susan|   23 | M    |    170 |         5 |
|3 | Python      |8 | Susan|   23 | M    |    170 |         5 |
|4 | Go          |8 | Susan|   23 | M    |    170 |         5 |
|5 | C++         |8 | Susan|   23 | M    |    170 |         5 |
|1 | Java      |9 | Thomas |   22 | W    |    178 |         5 |
|2 | MySQL       |9 | Thomas |   22 | W    |    178 |         5 |
|3 | Python      |9 | Thomas |   22 | W    |    178 |         5 |
|4 | Go          |9 | Thomas |   22 | W    |    178 |         5 |
|5 | C++         |9 | Thomas |   22 | W    |    178 |         5 |
|1 | Java      | 10 | Tom    |   23 | W    |    165 |         5 |
|2 | MySQL       | 10 | Tom    |   23 | W    |    165 |         5 |
|3 | Python      | 10 | Tom    |   23 | W    |    165 |         5 |
|4 | Go          | 10 | Tom    |   23 | W    |    165 |         5 |
|5 | C++         | 10 | Tom    |   23 | W    |    165 |         5 |
+----+-------------+----+--------+------+------+--------+-----------+
50 rows in set (0.00 sec)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: mysql进阶