MySQL连接查询

MySQL连接查询,第1张

Hello,写的语言格式有些丑

练习题目:

3、多表连接(等值连接)

①案例1 :查询员工名、部门

②为表起别名

# ③添加筛选条件

# 案例:查询 工资>5000 的工种名和员工名、工资

④添加分组和筛选

#01 案例:查询每个部门的员工个数和部门名

⑤排序

#01 案例:查询每个部门的员工个数和部门名

⑥ 三表连接

# 案例:查询员工名、部门名和所在城市

4、多表连接(等值连接)练习

传统模式的多表连接

1. 显示所有员工的姓名,部门号和部门名称。

2. 查询90 号部门员工的job_id 和90 号部门的location_id

3. 选择所有有奖金的员工的last_name  , department_name , location_id , city 

----------- 三表连查

4. 选择city 在Toronto 工作的员工的

 last_name  , job_id , department_id , department_name     ----------- 三表连查

5. 查询每个工种、每个部门的部门名、工种名和最低工资  ----------- 三表连查

6. 查询每个国家下的部门个数大于2 的国家编号

5、非等值查询

2.非等值连接

#案例1:查询员工的工资以及对应的工资级别

#案例2:查询名字中第三个字符为a,第五个字符为e的员工的工资以及对应的工资级别

6、内连接

#案例1 :查询员工名、部门名

案例2:查询有奖金的员工名、部门名

案例3:查询城市名、员工名和部门名

9、练习

一、查询编号>3的女神的男朋友信息,如果有则列出详细,如果没有,用null填充

#二、查询哪个城市没有部门

三、查询部门名为SAL或IT的员工信息

#四、选择指定员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式

/*

employees       Emp#       manager    Mgr#

kochhar            101       king         

  100

*/

10、单行子查询

案例1:谁的工资比Abel高

①查询Abel的工资

②查询员工的信息满足工资>①的结果

案例2:题目:返回job_id与141号员工相同,salary比143号员工多的员工 的姓名,job_id 和工资

 ①查询141的job_id

②查询143的salary

③查询  姓名,job_id 和工资,满足job_id=①并且salary>②

案例3:返回公司工资最少的员工的last_name,job_id和salary

①查询最低工资

②查询员工的last_name,job_id和salary满足 salary=①

案例4:查询最低工资大于50号部门最低工资的部门id和其最低工资

①查询50号部门的最低工资

②查询每个部门的最低工资

③筛选最低工资>①

11、多行子查询

二、多行子查询

案例1:返回location_id是1400或1700的部门中的所有员工姓名

①查询location_id是1400或1700的部门编号

②查询department_id满足①结果的员工姓名

案例2:返回其它部门中比job_id为‘IT_PROG’部门任意工资低的员工的员

             工号、姓名、job_id 以及salary

①查询job_id为‘IT_PROG’部门工资

②返回其它部门中,工资<any ①的结果

题目:返回其它部门中比job_id为‘IT_PROG’部门所有工资都低的员工

#的员工号、姓名、job_id 以及salary

12、子查询练习题

#1. 查询和Zlotkey 相同部门的员工姓名和工资

#2. 查询工资比公司平均工资高的员工的员工号,姓名和工资。

#①查询公司平均工资

② 查询工资>①的员工的员工号,姓名和工资。

#3. 查询各部门中工资比本部门平均工资高的员工的员工号, 姓名和工资

①查询各部门的平均工资

②查询员工的员工号, 姓名和工资,满足本部门并且工资>①

4. 查询姓名中包含字母u 的员工在相同部门的员工的员工号和姓名

①查询姓名中包含字母u的员工的部门

② 部门=①的员工的员工号和姓名

5. 查询在部门的location_id 为1700 的部门工作的员工的员工号

①查询loaction_id =1700的部门编号

② 查询员工号,满足部门号=①

#6. 查询管理者是King 的员工姓名和工资

①查询员工名是king的编号

#② 查询员工姓名和工资,领导的编号=①

#7. 查询工资最高的员工的姓名,要求first_name 和last_name 显示为一列,列名为 姓. 名

①查询最高工资

②查询姓名,工资=①

14、子查询巩固练习

# 1 、查询工资最低的员工信息

#①查询公司的最低工资

②查询员工信息,满足 salary=①

2. 查询平均工资最低的部门信息

①查询每个部门的平均工资

②查询①结果中avg(salary) 字段中的最低值

# ③查询部门编号,满足平均工资= ②结果

④查询部门信息,满足  department_id= ③

3*. 查询平均工资最低的部门信息和该部门的平均工资

 4. 查询平均工资最高的 job 信息

①查询每个job的平均工资

②查询①结果中的 avg(salary)的最高值

③查询每个工种的平均工资,满足 平均工资=②

④工种表和③连接  , 查询平均工资最高的 job 信息  

# 5. 查询平均工资高于公司平均工资的部门有哪些?

#①查询公司的平均工资

②查询每个部门的平均工资,并且平均工资>①

6. 查询平均工资最高的部门的  manager 的详细信息:

①查询平均工资最高的部门编号

②查询部门编号=①的manager的详细信息

mysql连接可分为socket连接和TCP|IP连接两种。

[root@localhost bin]# mysql -uroot -p123456 -S/tmp/mysql.sock

-S/tmp/mysql.sock可以省略,因为默认参数如下:

假如sock文件另有其它,那么就后面不能省略,需要指定下。

mysql -h127.0.0.1 -P3306 -uroot -p123456

那么问题来了,如何知道当前连接的连接方式?

查看当前连接方式,使用\s 或者status命令

Connection: Localhost via UNIX socket 表示使用 socket 进行本地的连接

SSL:Not in use 没有使用SSL

Connection: 127.0.0.1 via TCP/IP 使用TCP/IP 协议进行远程连接

SSL:Cipher in use is ECDHE-RSA-AES128-GCM-SHA256 使用了SSL加密

mysql5.7默认是使用SSL的方式来进行通讯的。

/s输出SSL: Not in use,说明当前没有使用SSL连接。

再看下error.log有一个waning:failed to set up SSL because of the following SSL liberary error:SSL context is not usable withut certificate and private key。公密钥文件不存在,所以无法启用SSL的连接方式。

1、进入bin目录执行命令: mysql_ssl_rsa_setup 在/data 根目录 生成相关的*.pem 密钥文件。

2、对新生成到pem文件授权chown mysql:mysql *.pem

3、 /etc/init.d/mysqld restart 重启mysql

4、进入命令客户端执行\s

使用IP/TCP远程连接时,\s输出 SSL: Cipher in use is ECDHE-RSA-AES128-GCM-SHA256。说明已经用上SSL加密。

使用socket进行本地连接,就不会使用SSL加密。\s输出SSL: Not in use;

因为SSL开启可能有性能影响。如果不希望使用ssl加密登录连接,那么可以使用下面命令进行禁用:mysql -h127.0.0.1 -uroot -p123456 --ssl-mode=DISABLED

强制一个用户使用ssl

之后david用户就必须使用ssl登录了,否则报错如下:

取消一个用户强制使用ssl

x509认证在开启SSL的基础下,还强制指定用户必须使用client-cert.pem和client-key.pem证书、密钥文件来登录,否则登录不了。x509是mysql最高等级的认证机制。

之前已经在data根目录生成了8个 *.pem文件

把其中client-cert.pem和client-key.pem导出

如下,再使用之前的命令登录。发现登录不了了。

此时想要登录必须在客户端指定SSL CERT File和SSL Key File 如下在navicat中

在mysql workbench中

在以前不论是使用SQLyog MySQL GUI或是phpMyAdmin访问数据库,第一步一定是输入访问数据库的账号与密码,当然Dreamweaver也不例外。在Dreamweaver中,我们通过建立 【MySQL联机】告诉Dreamweaver连接的MySQL数据库地址、名称,以及访问的账号和密码。

在一个网站中,我们只需对一个数据库建立一次MySQL连接。通常网络上的主机空间也只支持访问一个数据库。例如虚拟主机,最基本的方案是搭配1个MySQL数据库。

在【文件】面板中打开index.php,接着选择【应用程序】→【数据库】面板,单击【+】按钮后选择【MySQL连接】。

建立MYSQL连接

在建立数据库连接前,我们必须设置好图6-5中的前面3个选项,如果依照书中叙述设置好,那么基本上便不会有问题。当然必须至少打开一个网页,否则会有无法选择的情况发生。

未打开页面,选项均无法选择

d出如图6-7所示的窗口,请依照其下面的说明进行设置。可以单击【测试】按钮测试是否有问题,单击【确定】按钮后就可以在【应用程序】→【数据库】面板中看到所建立的数据库连接。我们可以 *** 作这个树状结构(见图6-8)检查连接的数据库、数据表与字段名称及属性等。也可以打开phpMyAdmin来检查数据库结构,并与面板内的信息对比。字段与功能说明。

建立连接

数据库内的数据表、字段和属性

字段与功能说明

字段

说明

连接名称

依个人喜好自由输入

MySQL服务器

MySQL服务器的位置,一般设置为localhost,除非所要存取的MySQL数据库不在网页所在的主机上,而且该MySQL数据库也提供对外的连接

用户名

访问MySQL数据库的用户名称

密码

访问MySQL数据库的用户密码

数据库

选择所要建立连接的数据库名称,可以单击【选取】按钮浏览MySQL服务器上的所有数据库。我们选择刚导入的范例数据库database

在建立完成MySQL连接后,在【文件】面板中会看到Dreamwaver自动建立了Connections文件夹,在该文件夹下有一个与前面所建立的MySQL连接名称相同的文件。

Connections文件夹

Connections文件夹是Dreamweaver用来存放MySQL连接设置文件的文件夹。

打开该文件并使用【代码】视图,可以看到有关连接数据库的设置。

数据库连接设置

在这个文件中定义了与MySQL服务器的连接(mysql_pconnect函数),包括以下内容。

$hostname:MySQL服务器的地址。

$database:连接数据库的名称。

$username:用户名称。

$password:用户密码。

定义的值与我们前面在图形界面所设置的值是对应的,然后利用函数mysql_pconnect与数据库连接。连接后才能对数据库进行查询、新增、修改或删除的 *** 作。

如果在网站制作完成后将文件上传至网络上的主机空间时发现,网络上的MySQL服务器访问的用户名、密码等方面与本机设置有所不同,可以直接修改位于Connection文件夹下的db_conn.php文件。但还是建议直接在本机配合网络主机上的环境来设置。例如,你拥有虚拟主机所提供的MySQL数据库名称为xu354jp6,但在本机却要命名为Charles,虽然可能会好看些,但到时候就会多一个麻烦了。

对于如何将本机已经完成的网站移植到网络上的空间,将在附录中有详细的介绍。

总之,在建立好数据库连接后,除非要连接MySQL数据库里的另一个数据库,否则不需要再做这个步骤了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8594446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存