MySQL多表查询、用户授权

备份复制表将源表xxx复制为新表yyycreate table yyy select * from xxx;将指定的查询结果复制为新表zzzcreate table zzz SQL查询语句;复制源表xxx的结构到新表vvvcreate table vvv select * from xxx where false;将源表vvv的名称改为wwwalert table vvv ren...
摘要由CSDN通过智能技术生成
备份复制表
  • 将源表xxx复制为新表yyy
    create table yyy select * from xxx;
  • 将指定的查询结果复制为新表zzz
    create table zzz SQL查询语句;
  • 复制源表xxx的结构到新表vvv
    create table vvv select * from xxx where false;
  • 将源表vvv的名称改为www
    alert table vvv rename to www;
create table t1 select * from user; //把user表所有数据备份到t1表
create table t2 select * from user where 1=2; //创建跟user表一样字段的t2空表
create table t3 select * from user where uid<100;
alter table t2 modify id int primary key auto_increment;//复制、备份表的时候,所有字段的键值属性都不会被复制,需要手动添加
多表查询

多表查询概述

  • 多表查询,也称为连接查询
    将2个或者2个以上的表 按照某个条件连接起来,从中选取需要的数据
    当多个表中存在相同意义的字段(字段名可以不同)时,可以通过该字段连接多个表

多表查询

  • 格式1
    select 字段名列表 from 表a,表b;
  • 格式2
    select 字段名列表 from 表a,表b where 条件;

以上格式的查询结果叫笛卡尔集
查询结果的总条目数是=(表a的记录数*表b的记录数)

where子查询

  • 使用where子查询
    把内层查询结果做为外层查询的查询条件
  • 语法格式
    select 字段名列表 from 表名 where 条件 (select 字段名列表 from 表名 where 条件);
输出年龄小于平均年龄的学生的名字和年龄
select name,age from student where age<(select avg(age) from student);
输出user表中,name字段的值在db2.t1表中的name字段范围之内的数据
select name from user where name in (select name from db2.t1);

左连接查询(以左边的表为主显示查询结果)

  • 基本用法
    select 字段名列表 from 表a left join 表b on 条件表达式;

右连接查询(以右边的表为主显示查询结果)

  • 基本用法
    select 字段名列表 from 表a right join 表b on 条件表达式;
//db2库中创建t1表,内容是db1中user表的查询数据
create table db2.t1 select name,uid,shell,password from user limit 3;

//创建db2库中的t2表
create table db2.t2 select name,uid,homedir from user limit 5;

//查询db2库中t1表跟t2表中,name字段都是root的所有数据
select * from db2.t1,db2.t2 where db2.t1.name="root" and db2.t2.name="root";

//查询db2库中t1表跟t2表中的数据,显示t1表中name为root的所有数据,显示t2表中name为root的homedir字段数据
select db2.t1.*,db2.t2.homedir from db2.t1,db2.t2 where db2.t1.name="root" and db2.t2.name="root";
select db2.t1.name,db2.t1.uid,db2.t2.homedir from db2.t1,db2.t2 where db2.t1.name="root" and db2.t2.name="root";

//显示db2库中t1表跟t2表中uid相同的字段数据
select * from db2.t1,db2.t2 where db2.t1.uid=db2.t2.uid;

//连接查询
create table t3 select name,uid,shell from user limit 5;
create table t4 select name,uid,shell from user limit 9;
select * from t3 left join t4 on t3.uid=t4.uid; //以t3表为主显示
select * from t3 right join t4 on t3.uid=t4.uid; //以t4表为主显示,t3表中没有的数据显示为null
MySQL管理工具

常见的MySQL管理工具

类型 界面 操作系统 说明
mysql 命令行 跨平台 MySQL官方bundle包自带
MySQL-Workbench 图形 跨平台 MySQL官方提供
MySQL-Front 图形 Windows 开源、轻量级客户端软件
phpMyAdmin 浏览器 跨平台 开源,需LAMP平台
Naivat 图形 Windows 专业、功能强大,商业版

部署LAMP+phpMyAdmin平台

  1. 安装httpd、mysql、php-mysql及相关包
  2. 启动httpd服务程序
  3. 解压phpMyAdmin包,部署到网站目录
  4. 配置config.inc.php,指定MySQL主机地址
  5. 创建授权用户
  6. 浏览器访问、登录使用

部署两台虚拟机RHEL7虚拟机,其中一台作为数据服务器(192.168.4.6)、另外一台作为测试用的Linux客户机(192.168.4.254),如图所示。

在这里插入图片描述

一:准备软件的运行环境 lamp

[root@mysql6~]# rpm -q httpd  php  php-mysql    //检测是否安装软件包
未安装软件包 httpd 
未安装软件包 php 
未安装软件包 php-mysql
[root@mysql6~]# yum  -y   install   httpd     php    php-mysql  //装包
[root@mysql6~]# systemctl  start  httpd       //启动服务
[root@mysql6~]# systemctl  enable httpd      //设置开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

二:测试运行环境

[root@mysql6~]# vim  /var/www/html/test.php     //编辑页面测试文件
[root@mysql6~]# cat /var/www/html/test.php      //查看页面测试文件
<?php
$x=mysql_connect("localhost","root","123456");
if($x){   echo "ok";    }else{    echo "no";    };
?>
[root@mysql6~]# yum  -y   install  elinks     //安装测试网页工具
[root@mysql6~]#  elinks   --dump   http://localhost/test.php
   Ok                                                //验证测试页面成功

三:安装软件包

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值