备份复制表
- 将源表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平台
- 安装httpd、mysql、php-mysql及相关包
- 启动httpd服务程序
- 解压phpMyAdmin包,部署到网站目录
- 配置config.inc.php,指定MySQL主机地址
- 创建授权用户
- 浏览器访问、登录使用
部署两台虚拟机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 //验证测试页面成功
三:安装软件包