表的连接方式
表的连接方式 包括:
-
内连接:
等价连接
非等价连接
自连接
-
外连接:
左外连接(左连接)
右外连接(右连接)
-
全连接:
(很少用)
模糊查询
In
含义:
判断某字段的值是否属于in列表的某一项
特点:
①、使用in提高语句简洁度
②、in列表的值类型必须一致或兼容
示例:
mysql> select ename, job from emp where job in(‘SALESMAN’,‘MANAGER’);
分组查询
查询列表必须特殊,要求是分组函数和group by后出现的字段
特点:
1、分组查询中的筛选条件分为两类
数据源 | 位置 | 关键字 | ||
---|---|---|---|---|
分组前筛选 | 原始表 | Group by子句的前面 | Where | |
分组后帅选 | 分组后的结果集 | Group by子句的后面 | having |
①分组函数左条件肯定是放在having子句中
②能用分组前筛选的,就优先考虑使用分组前筛选
例:
查询领导编号>102的每个领导手下的最低工资>5000的领导编号是哪个,以及其最低工资
①查询每个领导手下的员工固定最低工资
Select MIN(salary), manager_id
From employees
Group by manager_id;
②添加筛选条件:标号>102
Select MIN(salary),manager_id
From employees
Where manager_id>102
Group by manager_id;
③添加筛选条件:最低工资>5000
Select MIN(salary),employees_id
From employees
Where manager_id>102
Group by manager_id
Having MIN(salary)>5000;
子查询
-
含义:
出现在其他语句中的select语句,称为子查询或内查询
外部的查询语句,称为主查询或外查询
-
分类:
-
按子查询出现的位置:
-
select后面:
仅仅支持标量子查询
-
from后面:
支持表子查询
-
where或having后面:
标量子查询
列子查询
行子查询
-
exists后面(相关子查询)
表子查询
-
-
按结果集的行列数不同:
按量子查询(结果集只有一行一列)
列子查询(结果集只有一列多行)
行子查询(结果集有一行多列)
表子查询(结果集一般为多行多列)
linux下MySQL数据库安装初始化
linux下MySQL数据库安装初始化
1、cd /usr/local/ ##进入local目录
2、cp /home/soft/MySQL-5.7.15-Linux-glibc2.5-x86_64.tar.gz /usr/local/
##拷贝mysql压缩到local目录
3、cd /usr/local/ ##进入local目录
4、tar -xzvf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz
##解压mysql压缩包
5、mv mysql-5.7.15-linux-glibc2.5-x86_64 mysql ##重命名mysql目录
6、groupadd mysql ##添加一个mysql组
7、useradd -r -g mysql mysql ##添加一个用户
8、##把mysql目录添加到mysql用户和mysql组,并给执行权限
chown -R mysql:mysql mysql/
chmod -R 755 mysql/
9、mkdir /home/mysql/data ##创建mysql-data目录
10、chown -R mysql:mysql /home/mysql/data ##把mysql-data目录授权给mysql组中的mysql用户
11、chgrp -R mysql /home/mysql/data ##chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。(-R:处理指定目录以及其子目录下的所有文件)使用权限是超级用户。
12、cd /usr/local/mysql ##进入mysql目录
13、cp support-files/my-default.cnf ./my.cnf ##拷贝support-files目录下的my-default.cnf文件到当前目录的my.cnf文件
14、vi /usr/local/mysql/my.cnf ##编辑my.cnf文件
basedir = /usr/local/mysql
##basedir 为mysql 的路径
datadir = /home/mysql/data
##datadir 为mysql的 data 包,里面存放着mysql自己的包
port = 3306 ##mysql端口
#server-id = 100
##服务器ID
socket = /tmp/mysql.sock
15、cp -fr my.cnf /etc/my.cnf ##拷贝my.cnf文件到etc目录下(若etc目录下有则替换)
16、vi /etc/profile ##编辑etc目录下的profile文件
export PATH=/usr/local/mysql/bin:$PATH
##在profile文件最后添加
17、source /etc/profile ##重新加载etc目录下的profile文件
18、cp -a ./support-files/mysql.server /etc/init.d/mysqld
##拷贝
19、./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/home/mysql/data
##初始化
重要:
此处需要注意记录生成的临时密码,如上文:GleB(RP14p<D
注:
如执行后报错内容为 ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:
No such file or directory
CentOS7.2需要安装libaio,执行以下命令进行安装
[root@localhost mysql]# yum install libaio
安装完成后重新执行初始化命令
20、[[[password]]]] ##注意记录生成的临时密码,如:GleB(RP14p<D
21、/etc/init.d/mysql start ##启动mysql
22、/etc/init.d/mysqld status ##查看mysql状态
23、bin/mysql -u root –p ##登录mysql
24、输入临时密码 ##mysql生成的临时密码,如:jgghKqQhZ8*e
25、set password=password(‘A123456’); ##修改密码
26、grant all privileges on . to root@’%’ identified by ‘A123456’;
27、flush privileges; ##
28、use mysql; ##
29、select host,user from user; ##
30、远程链接数据库,或者重启。
初次安装时随机生成的密码
[root@localhost bin]# /usr/local/mysql/bin/mysqld --initialize --user=mysql
2021-10-07T13:00:53.635431Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-10-07T13:00:53.875291Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-10-07T13:00:53.909846Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-10-07T13:00:53.968079Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 9adca78d-276e-11ec-b73a-000c29b44e76.
2021-10-07T13:00:53.968851Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-10-07T13:00:54.807659Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2021-10-07T13:00:54.807674Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2021-10-07T13:00:54.808279Z 0 [Warning] CA certificate ca.pem is self signed.
2021-10-07T13:00:54.922427Z 1 [Note] A temporary password is generated for root@localhost: Rl)N?D#bG7/H
Rl)N?D#bG7/H