Mysql-两表的连接,copy表,select的各种用法
-- 连接:外连接,内连接 两个表之间
外连接:right join left join
-- left join 左标为主 一般以值少的为主
select * from table1 left join table2 on table1.id = table2.id; -- right join 右标为主 一般以值少的为主
select * from table1 right join table2 on table1.id = table2.id;
内连接:join
-- join 不给条件 相当于select * from table1,table2; 会产生笛卡儿积
select * from table1 join table2 ; -- join on +条件 一对一
select * from table1 join table2 on table1.id=table2.id;
Copy表
-- 建新表是copy旧表数据
-- 复制所有
create table new select * from old;
-- 将旧表的某些字段导入另一张表
insert into new(字段1,2,3...) select 字段1,2,3... from old
分组:group by
-- 创建一个测试表
create table test(
id int primary key auto_increment,
name varchar(15),
age int
);
insert into test(name,age) values('tj',18),('th',15),('tr',10); --条件 查询
-- select * from test;
select * from test where age >12 && name = 'tj';
select * from test where age >12 || name = 'tj'; -- 取别名
select name as '名字',age as '年龄' from test; -- 取别名关键字as 可不写 --查询行数
-- limit
select * from test limit 2; -- 当id 有自增长auto_increment,比如id 默认值到了5,删除了这五条数据,插入吓一跳数据id值默认+1成了6
-- truncate 可初始化自增长id 为1. -- 分组 group by
-- 几个字节对应几个分组字节
select 字节1,字节2 from table group by 字节1,字节2.
insert into test(name,age) values('tj1',18),('th1',15),('tr1',10);
select age from test group by age;
-- 分组+ 统计次数,最大值,最小值,和,平均值
select age,count(*),max(age),min(age),sum(age),avg(age) from test
group by age;
-- having +条件
select age,count(*),max(age),min(age),sum(age),avg(age) from test
group by age having count(*)>=2; -- order by 排序
select * from test order by age; -- 默认asc 升序
select * from test order by age asc; --等同上
select * from test order by age desc; -- 降序
Mysql-两表的连接,copy表,select的各种用法的更多相关文章
- 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案(转)
问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...
- php+mysql两次左外联跨表查询
代码如下: $querySel="select * from roomsy rsy left join room ro on rsy.RoomID=ro.ID left join hotel ...
- 转载:记录一次MySQL两千万数据的大表优化解决过程
地址:https://database.51cto.com/art/201902/592522.htm 虽然是广告文,但整体可读性尚可.
- 从多表连接后的select count(*)看待SQL优化
从多表连接后的select count(*)看待SQL优化 一朋友问我,以下这SQL能直接改写成select count(*) from a吗? SELECT COUNT(*) FROM a LEFT ...
- mysql中的内连接,外连接实例详解
内连接: 只连接匹配的行左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边 ...
- mysql 连接命令 表管理 ,克隆表,临时表,字符串属性,设定语句间的分隔符
连接和断开连接mysql -h host -u user -p (即,连接的主机.用户名和使用的密码).断开输入QUIT (或\q)随时退出: 表管理克隆表注意:create table ... li ...
- MySQL(九)之数据表的查询详解(SELECT语法)二
上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等.希望大家能都得到帮助! 在开始之前因为要多表查询,所以搭建好环境: 1 ...
- mysql开启远程登陆(修改数据表和授权两种方法)
一.确认防火墙没有阻止3306端口(一般服务器默认会屏蔽掉) windows防火墙例外设置方法 控制面板(右上角选择查看方式为大图标)---防火墙---高级设置---高级设置---出站规则---最右边 ...
- MySQL 约束、表连接、表关联、索引
一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性. 外键:是另一表的唯一性 ...
随机推荐
- / is not a valid selector
- python 获取excel文件的所有sheet名字
当一个excel文件的sheet比较多时候, 这时候需要获取所有的sheet的名字. xl = pd.ExcelFile('foo.xls') xl.sheet_names # see all she ...
- Hadoop伪分布模式操作
http://blog.csdn.net/wangloveall/article/details/20195813 摘要:本文介绍Hadoop伪分布模式操作,适合于Hadoop学习.开发和调试. 关键 ...
- hasura graphql-engine v1.0.0-alpha25 的几个方便功能
hasura graphql-engine 是一个很不错的graphql 引擎,但是我们的数据模型经常可能会有变动, 但是以前的版本对于这些的处理,官方的方式是删除元数据,重启server,都不是很好 ...
- js 命名空间
yui的命名空间和继承机制 var YAHOO = window.YAHOO || {};YAHOO.namespace = function(ns) { if (!ns || !ns. ...
- Git的一些基本操作和命令
1.创建版本库 在D盘中打开Git Bash Here 1.1.创建一个空目录 Mkdir gitDemo –创建一个目录 Cd gitDemo --进入gitDemo目录 Pwd –查看当前目录的 ...
- Openssl将crt证书和key私钥合成pfx证书
下载OpenSSL地址:http://slproweb.com/products/Win32OpenSSL.html 下载安装openssl 选择对应OpenSSL版本进行下载下载. 运行安装程序Wi ...
- RabbitMQ负载均衡方案之LVS
负载均衡的方案有很多,适合RabbitMQ使用的处理HAProxy之外还有LVS.LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件 ...
- spring4 知识点
1 bean的 创建 1,直接在配置文件里面写一个带有@Bean注解的方法(返回值就是那个bena对象),(name等于 方法名) 2,使用 FactoryBean 接口(三个方法分别是创建,类型,单 ...
- python 典型文件结构
#/usr/bin/env/ python #(1) 起始行 "this is a test module" #(2) 模块文档(文档字符串) import sys import ...