MySQL学习(四)查询】的更多相关文章

本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避短. 声明:本人使用的数据库版本为MySql 5.1 一.基本原则:优化数据访问 查询性能低下的最基本原因就是访问了太多数据,一些查询要不可避免地筛选大量的数据,大部分性能欠佳的查询都可以用减少数据访问的方式进行优化. 1.首先分析应用程序是否正在获取超过需要的数据,这通常表现在获取了过多的行或列.…
MySQL的查询可以分为交叉联接.内联接.外联接.自然联接.straight_join 下面对于查询的学习,会用到以下四张表: create table t_commodity_type( `id` BIGINT(20) not null auto_increment comment '商品类别ID', `time` TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP comment '入库时间', `name` VARCHAR(32) not null D…
注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学函数会返回 NULL 1.1  abs(x)  返回x的绝对值 1.2  bin(x)  返回x的二进制数 1.3  oct(x)  返回x的八进制数 1.4  hex(x) 返回x的十六进制数 1.5  ceiling(x) 返回大于x的最小整数值 1.6  floor(x) 返回小于x的最大整数…
查询的原理 在一个查询中常包含下述子句: 1.select,2.distinct,3.join,4.on,5.from,6.where,7.having,8.group by,9.order by,10.limit 在查询执行过程中,每个子句按照一定的顺序被执行,每个子句被执行时都会产生一张虚拟表,只有最后一步生成的虚拟表才会返回给用户. 我们用实际的例子来讲解下查询的执行过程,先准备以下两张表: create table t_student( id bigint(20) not null au…
MySQL逻辑架构: 第一层:客户端层,连接处理,授权认证,安全等功能.   第二层:核心层,查询解析,分析,优化,缓存,内置函数(时间,数学,加密),存储过程,触发器,视图   第三层:存储引擎.负责MySQL中数据的存储和提取. MySQL查询过程 客户端/服务端通信协议:需要注意的是,如果查询实在是太大,服务端会拒绝接收更多数据并抛出异常,因而在实际开发中,尽量保持查询简单且只返回必需的数据,减小通信间数据包的大小和数量是一个非常好的习惯,这也是查询中尽量避免使用 SELECT * 以及加…
1 MySQL日期和时间类型 创建一个包含DATE类型的表 mysql> create table test3( -> star varchar(20) not null default '', -> birth date -> )engine myisam charset utf8; 向表中插入数据 mysql> insert into test3 -> values -> ('张国荣','2010-10-10'); Query OK, 1 row affect…
import pymysql as ps # 打开数据库连接 db = ps.connect(host='localhost', user='root', password='123456', database='test', charset='utf8') # 创建一个游标对象 cur = db.cursor() a = cur.execute('SELECT * FROM USER') # 返回值是一个int类型的值 print(a) # 提交事务(这个一定要主动提交,不然在数据库中操作增.…
1.聚合: 1.1 5个聚合函数: count(*):括号中写列名,或者 *: max(列):此列的最大值: min(列):此列的最小值: sum(列):此列的和: avg(列):此列的平均值: 1.2 子查询: select * from teachers where id = (select min(id) from teachers where isDelete = 0); 2.分组(目的在于聚合): 2.1 分组: 例如:统计男女性别: 但是不知道谁是谁? 2.2 分组后的数据筛选: 原…
1.基本查询语法: select * from 表名: **注意** 1.select 后写列名,*代表是所有列:        2.列名可以用as起别名,其出现在结果集中: 3.查询多个列,之间用逗号隔开: 2.条件: 2.1 查询所有的列: 2.2 查询部分列: 2.3 消除重复的行:select distinct 列名 from 表名: **注意**:是整个行: 2.4 条件:select * from where 条件;(原理:在每一行中做运算,满足条件就放到结果集中.而select是选…
1.比方现在有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键. 此时分类表category称为主表,cid称为主键:商品表products称为从表,category_id称为外键. 外键特点:1)从表外键的值是对主表主键的引用 2)从表外键类型必须与主表主键一致. 使用外键的目的:保证数据的完整性 2.首先在命令提示符内创建一个数据库web09,并创建两张表category和product,语句如下: 分别插入多条数…