首页
学习
活动
专区
圈层
工具
发布

MySql学习笔记(一)- 表类型有哪些,怎么用?

天天在用mysql,你说sql有什么学的,但是面试官说你学的都是皮毛。怎么样?...所以说一张表就是一棵树,那么这个树的类型有哪些?这也就是我们标题所示的表类型。 那么具体的表类型有哪些?...mysql的基本表类型有MyISAM、InnoDB、DBD、MEMORY、MERGE、EXAMPLE、NDB CLUSTER、ARCHIVE、CSV、BLACKHOLE、FEDERATED等。...如果创建表的时候不指定表类型,默认为InnoDB,这是mysql5.5之后约定的规范。当然您可以通过修改ini文件来指定默认的表类型。 ?...MERGE 是一组myisam表的组合,但是这些myisam表的结构完全相同,MERGE表本身没有数据,对MERGE表可以进行查询更新删除操作,这些表其实是对myisam的操作。

3K30

MySQL 分表查询

分表是一种数据库分割技术,用于将大表拆分成多个小表,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分表,例如基于范围、哈希或列表等。...下面将详细介绍MySQL如何分表以及分表后如何进行数据查询。 基于哈希的分表 基于哈希的分表是一种将数据分散到多个子表中的数据库分表策略。这种方法通过计算数据的哈希值来决定数据应该存储在哪个子表中。...基于哈希的分表可以帮助平均分布数据,提高查询性能,并减轻单个表的负载。下面是详细介绍如何基于哈希的分表的步骤: 步骤1:创建子表 首先,你需要创建多个子表,每个子表将存储一部分数据。...示例插入数据: -- 计算数据的哈希值(示例使用MySQL的MD5哈希函数) SET @hash = MD5(CONCAT(customer_id, order_date)); -- 根据哈希值决定插入到哪个子表中...•查询路由算法: 查询路由算法应该与数据分布策略一致,以确保正确路由查询。 基于列表的分表 基于列表的分表是一种数据库分表策略,它根据某个列的值将数据分割到不同的子表中。

4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL单表查询

    单表查询的语法及关键字执行的优先级 单表查询语法 SELECT DISTINCT 字段1,字段2......1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.执行select(去重)...post; GROUP BY与聚合函数一起使用 select post,count(id) as count from employee group by post;#按照岗位分组,并查看每个组有多少人...查询岗位名以及岗位包含的所有员工名字 2. 查询岗位名以及各岗位内包含的员工个数 3. 查询公司内男员工和女员工的个数 4. 查询岗位名以及各岗位的平均薪资 5....Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。 #2.

    20.5K10

    MySQL之单表查询、多表查询

    一、单表查询: 单个表的查询方法及语法顺序需要通过实际例子来熟悉 先将表数据创建下: ? ?...查询数据的条件依据 找到数据形成虚拟表 ②、where约束条件的使用 # 1.查询id大于等于3小于等于6的数据 mysql> select * from emp where id >=...多个表之间的查询一般都是在 表之间存在某种逻辑关联的情况下进行的查询,这种逻辑上的关联其实就是表中某个字段名和另外一个表中的字段名存在一个一一对应的关系或者关联。...# 将2张表关联到一起的操作,有专门的方法 # 1、内连接(inner join):只取两张表有对应关系的记录 mysql> select * from emp inner join dep on emp.dep_id...,也可以通过其别名的方式把它作为一张虚拟表去跟其他表做关联查询 额外题: 部门中薪资超过部门平均薪资的员工姓名及薪资 mysql> select t1.name,t1.salary,t1.post,t2

    24K30

    mysql分表+分页查询

    背景 我们都知道,数据量大了,都要对数据库进行分库分表。奈何一直对分表及分表查询没什么概念,这里先不讲那么多概念,先直接演示一个demo。我们直接上车,请坐稳扶好。...where id%2=0; insert into tb_member2(id,name,age) select id,name,age from tb_member where id%2=1; 分页查询...接下来,我们需要考虑的是一张tb_member表被拆分成2张表,那分页如何实现呢?...其实tb_member_all表里面是没有存储数据,它就是一个外壳,里面的数据是tb_member1,tb_member2的并集,数据的存储是放在分表中;做数据查询的时候,就直接用tb_member_all...查询数据 SELECT * FROM tb_member_all order by id LIMIT 10 OFFSET 10; 删除数据 delete from tb_member_all where

    2.3K30

    【MySQL】表的基本查询

    案例: 创建一个表结构: mysql> CREATE TABLE exam_result ( -> id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,...通常情况下不建议使用 * 进行全列查询 查询的列越多,意味着需要传输的数据量越大 可能会影响到索引的使用 SELECT * FROM exam_result; 指定列查询 指定列的顺序不需要按定义表的顺序来...LIMIT n OFFSET s; 注意:对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死 按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3...删除孙悟空同学的考试成绩 DELETE FROM exam_result WHERE name = '孙悟空'; 此时查询不到: 删除整张表数据 注意:删除整张表慎用 DELETE FROM for_delete...; 截断表 基本语法 TRUNCATE [TABLE] table_name 只能对整表操作,不能像 DELETE 一样针对部分数据操作; 实际上 MySQL 不对数据操作,所以比 DELETE 更快,

    2.3K10

    在MySQL 中优化查询时常见的优化方法有哪些

    优化查询时,常见的优化方法包括: 添加索引 根据查询的需求,在查询字段上添加合适的索引,可以大大提高数据库的查询速度。...查询字段选择 只选择需要查询的字段,避免查询不需要的字段,这样可以减少数据传输量,提高查询效率。 使用缓存 将频繁查询的结果缓存起来,避免重复查询数据库。这可以大大减少数据库的负载,提高查询速度。...避免使用通配符 尽量避免在查询中使用通配符(如%和_),因为它们会导致数据库进行全表扫描,降低查询效率。...表设计优化 选择合适的存储引擎,如InnoDB(适用于需要事务支持的场景)或MyISAM(适用于只读或大量读取的场景)。 考虑表的压缩选项,以减少I/O操作并提高性能。...遵循数据库设计范式,使表结构更加合理。 选择合适的数据类型,如使用数字类型代替字符类型,使用VARCHAR代替CHAR等。

    67710

    MySQL子查询,联结表

    一,子查询 子查询:嵌套在其他查询中;执行顺序由里到外。子查询数目没有限制,如果要使用多层查询,注意写好缩进格式,不要出错。...二,联结表 SQL强大的功能之一就是能够在数据检索查询的执行中使用联结(join)。使用联结的的原理是一个表与另一个表有相关联的列。一个表的外键是另一个列主键,通过外键可以将两个表联结起来。...在使用联结表时,实际上做的是将第一个表的每一行与第二行表行进行匹配。因此,如果没有联结条件,检索出的行数目将是第一个表的行数乘以第二个表的行数,即所谓的笛卡儿积。...对于联结表的数目没有限制,对于那些复杂的查询使用联结将变得简单。...外部链接,左联结(left outer join),右联结(right outer join);左联结左边表全部返回,右边表没有匹配的为空;右联结同理。

    5.8K20

    MySQL表查询操作实例

    在安装完数据库后,不管是Windows 还是Linux平台,  MySQL的sql命令都大同小异,相关命令都是相同的,每个命令结束后 都以  ;  结尾,注意在Windows平台中表名是不区分大小写的,...在安装完数据库后会出现的几个系统数据库:   Mysql 库: 该数据库存储了系统的用户权限信息   In_formation_schema库: 该数据库存储了一些数据库对象信息。...DROP TABLE emp;   6.修改表 --  修改表类型, 将emp表ename字段从varchar(10)改为varchar(20) ALTER TABLE emp MODIFY ename...查询 -- 查询不重复记录 DISTINCT SELECT DISTINCT * FROM emp; -- 查询条件(比较运算符可以是=,>,=,<=,!...`deptno`;   14.子查询   子查询的关键字主要包括in、not in、=、!

    5.7K10

    【MySQL】表的基本查询

    全列查询 语法:SELECT * FROM 表名; 通常情况下不建议使用 * 进行全列查询,因为: 查询的列越多,意味着需要传输的数据量越大; 可能会影响到索引的使用。...[order by ...] limit n offset s; 建议:对未知表进行查询时,最好加一条 limit 1,避免因为表中数据过大,查询全表数据导致数据库卡死。...我们查看当前库的表: 可以看到有一张 employee 表,我们查看这张表的数据如下: 再查看表的结构: 然后我们把整表数据删除: delete from employee; 再查看就发现数据全没了...(2)截断表 语法: truncate [table] table_name 注意:这个操作慎用 只能对整表操作,不能像 delete 一样针对部分数据操作; 实际上 MySQL 不对数据操作,所以比...实例:创建一个新表,插入一个旧表中查询到的去重后的数据 先创建一个旧表,并插入数据: mysql> create table duplicate_table (id int, name varchar

    2.1K10

    mysql数据引擎有哪些

    MySQL 提供了多种存储引擎,每种引擎都有其独特的特点和适用场景。以下是一些常见的 MySQL 存储引擎及其特点:InnoDB特点:支持事务、外键约束、行级锁和崩溃恢复功能。...Federated特点:允许访问远程 MySQL 服务器的数据,无需复制。适用场景:适用于分布式数据库架构,跨服务器查询。NDB Cluster特点:提供高可用性和分布式集群功能,支持自动分片。...Merge特点:将多个 MyISAM 表合并为一个逻辑表,便于管理。适用场景:适用于分区表和日志表的管理。MariaDB特点:由 MySQL 原作者开发的分支,兼容 MySQL 并提供额外功能。...数据量:如果数据量很大,考虑 Archive 或分区表。...可以通过以下 SQL 语句查看 MySQL 支持的存储引擎:SHOW ENGINES;也可以在创建表时指定存储引擎:CREATE TABLE table_name ( column1 datatype

    47410

    mysql索引类型有哪些

    mysql中索引类型有:最基本的没有限制的普通索引,索引列的值必须唯一的唯一索引,主键索引,多个字段上创建的组合索引以及用来查找文本中的关键字的全文索引 微信图片_20191202154142.jpg...MySQL中的索引类型有以下几种 普通索引 唯一索引 主键索引 组合索引 全文索引 1、普通索引 是最基本的索引,它没有任何限制。....png 缺点 1、虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行insert、update和delete。...索引只是提高效率的一个因素,如果有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。...5、不要在列上进行运算,这将导致索引失效而进行全表扫描,例如 微信图片_20191202161035.png 6、不使用not in和操作 以上就是mysql索引类型有哪些的详细内容

    5.4K31
    领券