MySql查询功能梳理
CREATE DATABASE CristinMysql
Create table employee(
eId int(9) not null auto_increment,
eName varchar(8) charset utf8 not null,
eComeDate date not null,
eGender enum('Male','Female','Uncertaion') default null,
primary key (eId)
) engine = InnoDB auto_increment = 20170001 default charset = utf8mb4;
--auto_increment:主键自动增加编号;
--engine = InnoDB 支持事务查询,engine = ISAM 执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错;
--utf8与utf8mb4的区别:utf8只支持3个字节,utf8mb4可支持4个字节;
insert into employee values(null,'张三','2015-01-01','Male'),(null,'李四','2015-01-01','Male'),(null,'王五','2014-01-01','Male'),(null,'白凤九','2016-01-01','Male'),(null,'白凤八','2017-01-01','Male'),(null,'张三丰','2015-06-01','Male')
--【简单查询】
select * from employee;
--where【精确查询】
select * from employee where eName = '张';
--like % _【模糊查询,%与_区别:%表示模糊位数,_表示第几位模糊】
select * from employee where eName like '张%';
select * from employee where eName like '张_';
--between and < > <>【区间查询,between and 从哪里到哪里;< > 逻辑区间;<>表示不等于】
select * from employee where eComeDate between 20150101 and 20170101;
select * from employee where eComeDate >= 20160101;
--order by limit【排序规则,默认升序排列,limit表示取几个】
select * from employee where eComeDate >= 20150101 order by eComeDate desc limit 3;
-- and or【和与或】
select * from employee where eComeDate >= 20150101 and eName like '白%';
select * from employee where eComeDate <20150101 or eName like '白%';
-- group by regexp【group by分组查询,regexp选择性查询】
select eGender,count(eId) from employee group by eGender;
select * from employee where eName regexp '张|白';
--【查询函数】
select count(eId) from employee;//集合
select avg(eComeDate) from employee;//平均
select max(eComeDate) from employee;//最大
select min(eComeDate) from employee;//最小
--date【日期查询】
select curdate();-- 获取数据库服务器当前时间
select date_sub(curdate(),interval 1 year);-- DATE_SUB() 函数从日期减去指定的时间间隔,curdate() 参数是合法的日期表达式。interval 1 year 参数是您希望添加的时间间隔。
select * from employee where eComeDate < date_sub(curdate(), interval 1 year);
--disint【不同值】
select distinct(eGender) from employee; --返回唯一不同的值
--【连接查询】
create table company(
id int(3) not null auto_increment,
cName varchar(8) charset utf8mb4 not null,
cEId int (9) not null,
primary key(id)
)engine = InnoDB default charset = utf8;
show tables;
insert into company values (null,'张三','20170001'),(null,'梁宽','20150101'),(null,'白凤九','20170004'),(null,'梁窄','201570001');
select * from company;
-- 查询employee 和 company两个表中cEId都有的数据
-- 子查询
select * from company where cEId in (select eId from employee);
-- 连接查询(四种:交叉查询、内查询、左连接、右连接)逻辑:形成一个虚拟表,将多表查询出来之后的连查数据放在里面
-- 交叉查询
select * from company c , employee e where e.eId = c.cEId; -- 隐式的交叉查询,左边表和右边表相同记录的内容,显示出来
select * from company c , employee e where e.eId <> c.cEId; -- 不等于交叉查询,左边表乘以右边表再把相同的记录去掉,然后展示出来
select * from company c cross join employee e where e.eId = c.cEId; -- 隐式的交叉查询,左边表和右边表相同记录的内容,显示出来
-- 【内链接】
select * from company c inner join employee e where e.eId = c.cEId; -- 内链接
select * from company c join employee e where e.eId = c.cEId; -- 默认的内链接
-- 左连接,意义:左表中的数据全部查出来,如果与右表中没有匹配的就用null表示
select * from company c left join employee e on e.eId = c.cEId; -- 写法1
select * from company c left outer join employee e on e.eId = c.cEId; -- 写法2
-- 右连接,意义:右表中的数据全部查出来,如果与左表中没有匹配的就用null表示
select * from company c right join employee e on e.eId = c.cEId;
MySql查询功能梳理的更多相关文章
- 复习MySQL④查询功能、连接方式、联合查询
用select语句查询: select〈目标列组〉 from〈数据源〉 [where〈元组选择条件〉] [group by〈分列组〉[having 〈组选择条件〉]] [order by〈排序列1〉〈 ...
- MySQL 5.5开启慢查询功能
vim /etc/my.cnf [mysqld] slow-query-log = on # 开启慢查询功能 slow_query_log_file = /usr/local/mysql/data/s ...
- Vc数据库编程基础MySql数据库的表查询功能
Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...
- Linux 实例如何开启 MySQL 慢查询功能
运行 MySQL 时,查询速度比较慢的语句对数据库的影响非常大,这些慢语句大多是写的不够合理或者大数据环境下多表并发查询造成的.MySQL 自带慢查询功能,能记录查询时间超过参数 long_query ...
- MySQL 基础知识梳理
MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...
- 创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段
创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段 添加查询功能 本文将实现通过Name查询用户信息. 首先更新GetAll方法以启用查询: public async ...
- MySQL查询缓存
MySQL查询缓存 用于保存MySQL查询语句返回的完整结果,被命中时,MySQL会立即返回结果,省去解析.优化和执行等阶段. 如何检查缓存? MySQL保存结果于缓存中: 把SELECT语句本身做h ...
- MySQL查询执行过程
MySQL查询执行路径 1. 客户端发送一条查询给服务器: 2. 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段: 3. 服务器端进行SQL解析.预处理,再由优 ...
- MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
随机推荐
- 51Nod 2020 排序相减
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=2020 思路:排序 水水 #include<iostre ...
- Python+OpenCV图像处理(五)—— 像素运算
最近在忙毕业设计,只能偶尔更新博客........ 一.像素的算术运算 像素的算术运算涉及加减乘除等基本运算(要进行算术运算,两张图片的形状(shape)必须一样) 代码如下: #像素的算术运算(加. ...
- 大数据学习路线:Hadoop集群同步技术分享
今天给大家带来的技术分享是——Hadoop集群同步. 一.同步方式 选择一个机器,作为时间服务器(这里选择hadoop01),所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间. ...
- 深入理解HashMap+ConcurrentHashMap的扩容策略
前言 理解HashMap和ConcurrentHashMap的重点在于: (1)理解HashMap的数据结构的设计和实现思路 (2)在(1)的基础上,理解ConcurrentHashMap的并发安全的 ...
- MyEclipse/Eclipse快捷键总结
MyEclipse/Eclipse快捷键 查找某个方法被谁调用:选中方法名,ctrl+shift+g 通过文件名称查找类或文件:ctrl+shift+r(Open Resource)
- ubuntu 构建Xilinx交叉编译环境
嵌入式系统软硬件协同设计实战指南_基于XILINX ZYNQ_13603826.pdf 202页
- Kafka学习笔记之confluent platform入门
0x00 下载 http://www.confluent.io/download,打开后,显示最新版本3.0.0,然后在右边填写信息后,点击Download下载. 之后跳转到下载页面,选择zip 或者 ...
- debug代码时遇到循环时提高效率方法
在循环时,需要查看uid=uid=12007255时的代码执行情况 可以在循环代码中加入 if((Long)map.get("uid") == 12007255){ System. ...
- Stanford CS231n实践笔记(课时22卷积神经网络工程实践技巧与注意点 cnn in practise 上)
本课主要2个实践内容: 1.keras中数据集丰富,从数据集中提取更多特征(Data augmentation) 2.迁移学习(Tranform learning) 代码:https://github ...
- Bootstrap3基础 nav 便签页(横版、竖版)
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...