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) 标签 ...
随机推荐
- Linux基础命令---ifconfig
ifconfig ifconfig指令用来配置网络接口参数,同时还可以显示当前内核网络接口的工作状态.如果没有提供参数,则ifconfig将显示当前活动接口的状态.如果给定单个接口参数,则只显示给定接 ...
- UART接口与COM口的区别
原文地址:https://blog.csdn.net/wordwarwordwar/article/details/78883732 简单的讲:(UART与COM) 嵌入式里面说的串口,一般是指UAR ...
- JustOJ1500: 蛇行矩阵
题目链接:https://oj.ismdeep.com/problem?id=1500 题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 输入 本题有多组数据,每组数据由一个正整数N ...
- java课上测试心得
放暑假之前,建民老师就给我们布置了每一天学习两小时的代码,但是自己的不重视,根本就没有达到这个要求,简单学了一点点基本的东西,然后在开学的第一堂课上,连续三个小时的敲代码,让我意识到了自己的问题,一个 ...
- Java学习路线:Java中的位移运算符介绍
学习java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,学到java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累. 今天给大家分享的技术知识是:ja ...
- MyEclipse非正常关闭问题
问题:电脑突然断电,myeclipse非正常关闭,“Package Explorer”非正常显示,出现错误“Could not create the view: An unexpected excep ...
- ltp makefile 解析
困惑于 /include/mk/automake.mk中出现了第一个目标 而makefile却任然将all当做最终目标 测试了一番后发觉: ifeq ($(MAKE_3_80_COMPAT),1)# ...
- css显示display、可见性visibility、定位position、对齐
隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden",但是这两种方法会产生不同的结果. display ...
- P2801 教主的魔法(分块)
P2801 教主的魔法 区间加法,区间查询 显然就是分块辣 维护一个按块排好序的数组. 每次修改依然是整块打标记,零散块暴力.蓝后对零散块重新排序. 询问时整块二分,零散块暴力就好辣 注意细节挺多和边 ...
- python简说(十六)第三方模块安装
安装第三模块 1.pip install xxx pip问题 1.提示没有pip命令的, 把python的安装目录. 安装目录下面的scripts目录加入到环境变量里面 2.Unknown or un ...