首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL查询像普通SELECT一样工作,但不像..?那样在CREATE TABLE内部工作。

MySQL查询像普通SELECT一样工作,但不像事务那样在CREATE TABLE内部工作。

在MySQL中,SELECT语句用于从数据库中检索数据,它是一种查询语句。它可以根据指定的条件从表中选择、过滤和排序数据,并将结果返回给用户。

与SELECT不同,CREATE TABLE语句用于在数据库中创建新的表。它定义了表的结构,包括列名、数据类型、约束等。当执行CREATE TABLE语句时,MySQL会在数据库中创建一个新的表,并为该表分配存储空间。

虽然SELECT和CREATE TABLE都是MySQL中的SQL语句,但它们的功能和作用是不同的。

对于MySQL查询,它的工作方式如下:

  1. 解析查询语句:MySQL会解析查询语句,确定查询的目标表和列。
  2. 优化查询计划:MySQL会根据查询条件和表的索引等信息,选择最优的查询计划来执行查询操作。
  3. 执行查询操作:MySQL会根据查询计划,从存储引擎中读取数据,并进行过滤、排序等操作。
  4. 返回查询结果:MySQL将查询结果返回给用户。

相比之下,在CREATE TABLE内部工作时,MySQL会执行以下操作:

  1. 解析CREATE TABLE语句:MySQL会解析CREATE TABLE语句,确定表的结构和属性。
  2. 创建表空间:MySQL会为新表分配存储空间,并在磁盘上创建相应的文件。
  3. 创建表结构:MySQL会根据CREATE TABLE语句中定义的列名、数据类型、约束等信息,在表空间中创建表的结构。
  4. 建立索引:如果在CREATE TABLE语句中定义了索引,MySQL会在表的结构上创建相应的索引。
  5. 返回创建结果:如果CREATE TABLE语句执行成功,MySQL会返回相应的成功信息。

综上所述,MySQL查询和CREATE TABLE在功能和执行过程上存在明显的差异。MySQL查询用于检索数据,而CREATE TABLE用于创建新的表结构。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从头开始学MySQL——-存储过程与存储函数(1)

调用存储函数的形式就像调用MySQL内部函数一样。...DROP TABLE IF EXISTS t_student; CREATE TABLE t_student ( id INT(11) PRIMARY KEY AUTO_INCREMENT,...如果能Java那样,提供一个ID,就能查询到指定ID的记录,这样就可以复用之前写的SQL语句。对于查询SQL语句,我们能不能Java那样,封装这个查询学生的SQL呢?...10.1.2 创建存储函数 存储函数与存储过程本质上是一样的,都是封装一系列SQL语句,简化调用。 我们自己编写的存储函数可以MySQL函数那样自由的被调用。...SELECT getStuNameById(1); 提示:RETURN 语句后面,有趣的是,分号SQL语句的外面。如果不加分号,查询结果居然查询出两条记录,很奇怪。

44630

mysql索引及优化

–修改表结构的方式添加索引 ALTER TABLE tbl_name ADD INDEX index_name (column_list(length)) 例: CREATE TABLE mytable...mytable ADD INDEX index_name ON (name(length)) 4.唯一索引(unique index) 它与前面的普通索引类似,不同的就是:索引列的值必须唯一,允许有空值...正确用法: select * from mytable where match(title,content) against ('MYSQL'); 备注: mysql中fulltext 索引只针对 myisam...dependent union:与union一样,出现在union 或union all语句中,但是这个查询要受到外部查询的影响 union result:包含union的结果集,union和union...ref:不像eq_ref那样要求连接顺序,也没有主键和唯一索引的要求,只要使用相等条件检索时就可能出现,常见与辅助索引的等值查找。

79020
  • MySQL 高频面试题解析 第04期:RR 隔离级别下真的不会产生幻读吗

    作者简介 无为,多年 MySQL DBA 工作经验,现就职于某知名互联网公司,对 MySQL、 Redis、PostgrepSQL 等主流数据库有一定了解,拥有丰富的一线运维经验。...很多书籍或者文章都说 MySQL 通过 next-key lock 是解决了幻读的,真的是那样吗?我们不妨来验证下(本节实验均在 RR 隔离级别下进行的)。...1 准备环境 mysql> create table ord (id int,b varchar(10))ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Query OK,...-- select .... for update; 同理 换句话说:MySQL innodb RR 隔离下一样会出现幻读,next-key lock 和 MVCC 只解决了部分幻读的场景。...3 总结 由于 MySQL 对于普通读(简单 select 语句)是通过 MVCC 获取快照数据,而 select ... for update、select ... lock in share mode

    46230

    SqlAlchemy 2.0 中文文档(七十三)

    AliasedClass已经做了我们希望非主映射器做的一切;它允许从替代可选择项加载现有映射类,继承现有映射器的所有属性和关系,与加载器选项非常配合,提供一个类似类的对象,可以类本身一样混入查询中。...id=90693 不锁定子查询中的行,不像 PostgreSQL 和其他数据库。...id=90693,MySQL 不会锁定子查询中的行,不像 PostgreSQL 和其他数据库。...id=90693,MySQL 不会锁定子查询内的行,不像 PostgreSQL 和其他数据库。...Oracle 方言中,内部的“FOR UPDATE”不会被渲染,因为 Oracle 不支持这种语法,方言会跳过任何针对子查询的“FOR UPDATE”;在任何情况下都不是必要的,因为 Oracle

    20910

    Zombodb执行引擎

    Zombodb执行引擎 0.前言 我们使用Zombodb时,会使用一些SQL查询,例如: CREATE EXTENSION zombodb; DROP EXTENSION zombodb; CREATE...Zombodb执行引擎不像PG那样复杂,能搞若干年,Zombodb的执行引擎简单用一幅图概括其核心工作。...PG执行器开始 executor_start 执行器开始Zombodb这边实现比较简单,就是内部维护了一个query_stack结构,往里面插入即可,query_stack结构本文后续讲,这里理解为一个...当然还有其他我们内部定制的Hook,这些就不赘述。 2.执行引擎 接下来就是Zombodb执行引擎的结构了,内部包括: 每个表的元组描述符 元组描述符在这里表示你查询的时候的某些列信息。...例如:这里有一个普通查询,这里id就是tupledesc,另一个工具类查询语句结果中的QUERY PLAN就是tupledesc,这些内容会在PG里面用TupleDescData存起来。

    33410

    学习数据库必会知识点-索引-以及索引的巧妙用法

    其可以CREATE TABLE ,ALTER TABLECREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。...HASH索引可以一次定位,不需要树形索引那样逐层查找,因此具有极高的效率。但是,这种高效是有条件的,即只“=”和“in”条件下高效,对于范围查询、排序及组合索引仍然效率不高。 3....此段详细内容见此片博文:Mysql几种索引类型的区别及适用情况 三、索引种类 普通索引:仅加速查询 唯一索引:加速查询 + 列值唯一(可以有null) 主键索引:加速查询 + 列值唯一(不可以有null...创建索引 --创建普通索引CREATE INDEX index_name ON table_name(col_name); --创建唯一索引CREATE UNIQUE INDEX index_name...因为以通配符%和_开头作查询时,MySQL不会使用索引。 六、命中索引 数据库表中添加索引后确实会让查询速度起飞,前提必须是正确的使用索引来查询,如果以错误的方式使用,则即使建立索引也会不奏效。

    43530

    数据库DNSLog外带注入-总结

    修改mysql.ini 文件,[mysqld] 下加入 secure_file_priv = ) mysql 新版本下secure-file-priv字段 :secure-file-priv参数是用来限制...本地mysql查询,带入查询的数据包版本信息: ?...id=1; DROP TABLE IF EXISTS table_output; //判断table_output这个表是否存在,存在就删掉 CREATE TABLE table_output...使用预处理语句被认为是最安全的预防措施,处理语句能在SQL命令被插入的时候确保查询的意图不被攻击者改变,magic_quote()和addslashes()那样的各种禁制机制并不能完全防止SQLI漏洞的存在或利用...现在有一些检测域内DNS流量中恶意活动的工作大多缺乏实际和主流的解决方案,所以在这里并不提及。 SqlMap已经对它实现支持,因此所有人都可以对它进行进一步研究。

    3.7K20

    MySQL技能完整学习列表8、触发器、视图和事务——1、触发器(Triggers)的使用——2、视图(Views)的创建和使用——3、事务(Transactions)的管理

    CREATE TRIGGER语句的基本语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name...视图本身不存储数据,它只是保存了一条用于生成结果集的SELECT语句。当查询视图时,MySQL会执行该SELECT语句并返回结果集。视图可以帮助我们简化复杂的查询操作、隐藏部分数据、实现数据抽象等。...当查询该视图时,将返回这两列的数据。 使用视图 使用视图就像使用普通的表一样,可以SELECT语句中引用视图名称来查询数据。...,就像对普通一样SELECT * FROM UserNamesAndEmails WHERE email LIKE '%@example.com'; -- 筛选特定域名的用户 事务(Transactions...SAVEPOINT:事务内部设置一个保存点,用于后续的回滚到该点。 ROLLBACK TO SAVEPOINT:回滚到指定的保存点。 RELEASE SAVEPOINT:删除指定的保存点。

    54310

    count 浅析

    test;共101 select count(*) from test;共102 可以看到最后时刻,每个session拿到的总行数是不一样的。...2. count(*) 执行计划 先模拟点数据,看看 count(*) 时mysql自身给出的执行计划 建表: CREATE TABLE `count_test` ( `id` bigint NOT...3. count(*) 的内部优化 innodb是索引组织表,主键索引的叶子结点存放的是完整数据,普通索引叶子结点存放的是主键值。因此,普通索引要比主键索引小得多(除非全表所有列设为一个联合索引)。...执行count(*)的时候,遍历哪个索引树得到的结果都是一样的,所以mysql优化器会去寻找最小的那颗树来遍历。 数据库系统设计的原则之一,就是保证逻辑正确的前提下,尽量减少扫描的数据量。...关于查询成本 测试count性能时,想到了select操作会涉及查询成本,于是特意把之前写的有关查询成本的内容贴了过来,希望可以帮到大家,也给自己做个知识点回顾。

    66440

    Hadoop学习笔记—17.Hive框架学习

    3.2 Hive的CLI命令行接口 (1)内部表:与数据库中的 Table 概念上是类似,每一个 Table Hive 中都有一个相应的目录存储数据。...创建视图 hive> create view v1 as select * from t1; 查询视图 hive> select * from v1; (6)查询操作:Hive中,查询分为三种...①基于Partition的查询:一般 SELECT 查询是全表扫描。如果是分区表,查询就可以利用分区剪枝(input pruning)的特性,类似“分区索引“”,只扫描一个表中它关心的那一部分。...下面的查询语句从 t1 表中随机查询5条记录: SELECT * FROM t1 LIMIT 5   ③Top N查询:和关系型数据中的Top N一样,排序后取前N个显示。...5 (7)连接操作:和关系型数据库中的各种表连接操作一样Hive中也可以进行表的内连接、外连接一类的操作: 导入ac信息表 hive> create table acinfo (name

    52620

    谈一谈es的优势和限制

    其实说白了就一句话,垂直搜索是企业内部使用的搜索引擎。这种搜索引擎的特点是,内容可能是一些结构化的数据,而不像大搜索那样都是杂乱的内容。...mysql普通查询过程中,比如select * from xxx limit 100w, 100;这种,小网站随便写sql,可能不会体会到翻页的痛。...如果在select语句的where条件中也有表达式时,这两种存储引擎本质上都是一样的,都会很慢很慢。...列表查询这种场景也会对应各种各样的查询条件,例如字段等于/小于/大于/不等判断,或者字符串的严格匹配/前后缀模糊查询,时间字段的范围查询,in查询等等。..." : "desc"}], "highlight" : { } } 例如上面这个es中的bool查询,就是从这种sql翻译过来的: select * from db/table where

    1.9K40

    MySQL高级特性-合并表

    下面是一个合并表的例子: mysql> CREATE TABLE t1(a INT NOT NULL PRIMARY KEY)ENGINE=MyISAM; mysql> CREATE TABLE...mysql> DROP TABLE t1, t2; mysql> SELECT a FROM mrg; +------+ | a | +------+...最好的办法是阅读手册,但是在这儿要说的是REPLACE并不能在所有的合并表上工作,并且AUTO_INCREMENT不会像你期望的那样工作。 2....2) 创建合并表的CREATE语句不会检查下属表是否是兼容的。如果下属表的定义有轻微的不一样MySQL会创建合并表,但是却无法使用。...索引可以对视图使用UNION ALL命令那样使用合并表。但它的开销更低,因为服务器不会把结果放到临时表中然后再传递给客户端。这使得它对于报告和仓库化数据非常有用。

    2.2K10

    MySQL 之 MERGE 存储引擎

    MERGE 存储引擎把一组 MyISAM 数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个 MERGE 数据表结构的各成员 MyISAM 数据表必须具有完全一样的表结构。...把这个 MERGE 创建出来后,就可以对待任何其他数据表那样查询它,只是每一次查询都将同时作用与构成它的每一个成员数据表 。...下面这个查询可以让我们知道上述几个日志数据表的数据行的总数: SELECT COUNT(*)FROM log_merge;  下面这个查询用来确定在这几年里每年各有多少日志记录项: SELECT YEAR...比如说,某一年结束之后,你应该不会再往相应的日志文件里添加记录,所以你可以用 myisampack 工具压缩它以节省空间,而 MERGE 数据表仍可以往常那样工作   3)、MERGE 数据表也支持...INSERT 操作比较麻烦,因为 MySQL 需要知道应该把新数据行插入到哪一个成员表里去。

    34810

    关于MySQL的几道面试题

    看看官网,MySQL的B+树和上面举例的B+树还不完全一样 所以Innodb使用的B+树,实际上就是对B树的做出的一定升级改动。 为什么要这么改呢,简单的来说,就是为了索引。...结果确实有顺序的,一定在某个时刻进行了排序 那么是什么时候进行的排序,是插入的时候,还是查询的时候?...其中它们还存有一些页头信息,用来标注和互相引用 事实上,每一页的存储的数据远不止5条,效果是一样的。...这种索引的创建,就是为了提高查询的效率 它的创建语句是 # 创建表时,直接指定普通索引 CREATE TABLE `test` ( `id` int(11) NOT NULL, `a` int(...所以范围查询除去主键的普通列时,尽量避免查询所有列,也就是select * 不信就来试试,这次只查索引中有的字段,select b, c, d from test where b >= 1 隐式转换

    46320

    循序渐进,了解Hive是什么!

    于是...他们就开发了一套框架就是用sql来做hdfs的查询(用户输入的是sql,框架内部把sql转成mapreduce的任务,然后再去跑分析)。 ?...创建 Hive里面创建表和在普通的数据库中创建表示类似的,都是先创建(或者使用默认的)数据库,然后创建表。...数据的导入导出参考这篇文章,写的很详细了 查询普通查询,就是select from句式了,Hive还是做得比较通用的 --普通查询 select * from xxx; --带条件的查询 select...存储 首先需要说明的是,Hive存储的时候是不做任何处理的。不像是数据库,存进去的数据要先进行特定的解析,比如解析成一个一个的字段,然后挨个存储。每个数据库的存储引擎不同,解析的方式就不太一样。...比如: CREATE INDEX table02_index ON TABLE table02 (column3) AS 'COMPACT' WITH DEFERRED REBUILD; CREATE

    99550

    SqlAlchemy 2.0 中文文档(七十六)

    因此,这里的变化是 MySQL 方言仍然保持“非本地布尔”,true()和false()符号再次产生关键字“true”和“false”,因此column.is_(true())这样的表达式 MySQL...#3084 null()、false()和 true()常量不再是单例 这三个常量 0.9 中被更改为返回“单例”值;不幸的是,这将导致以下查询一样的内容无法按预期渲染: select([null(...然而,MySQL 5.6.6 及以上版本具有一个新标志explicit_defaults_for_timestamp,修复了 MySQL 的非标准行为,使其任何其他类型一样运行;为了适应这一点,SQLAlchemy...这里的变化是 MySQL 方言仍然保持“非本地布尔”, true() 和 false() 符号再次产生关键字“true”和“false”,因此 column.is_(true()) 这样的表达式...这里的变化是 MySQL 方言仍然保持“非本地布尔”, true() 和 false() 符号再次产生关键字“true”和“false”,因此 column.is_(true()) 这样的表达式

    9910

    MySQL存储过程、函数、视图、触发器、索引和锁的基本知识

    视图可以看成一个虚拟的表,所以可以对表操作一样操作视图。...简化sql的编写 有些固定业务的查询sql很复杂很长(比如达到几十条语句),这时候可以使用一个视图,业务查询的时候直接查询视图即可。极大的缩减了查询语句的编写工作量。 4....create table 语句默认使用InnoDB存储引擎。 MySQL使用可插拔性的存储引擎架构,以便可以在运行中的MySQL服务中装载或者卸载指定的存储引擎。...,你可以通过添加ENGINE操作CREATE TABLE语句中来指定表的存储引擎。...旧版的MySQL全文索引只有MyISAM实现了,新版的MySQL5.6.24上InnoDB引擎也加入了全文索引。 单列索引 索引列为单个字段,类型可以是普通、唯一以及全文索引。

    1.1K10
    领券