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

MySQL 教程上

MySQL 正则表达式匹配(版本3.23.4后)不区分大小写(即,大写和小写都匹配)。...相应语法如下: select 'hello' regexp '^h'; MySQL 是创建计算字段 在MySQLSELECT句中,可使用Concat()函数来拼接两个列; 计算字段另一常见用途是对检索出数据进行算术计算...INSERT SELECT 列名 为简单起见,这个例子在 INSERTSELECT句中使用了相同列名。但是,不一定要求列名匹配。事实上,MySQL 甚至不关心SELECT 返回列名。...只有一点例外,假如表一个旧记录与一个用于 PRIMARY KEY 或一个 UNIQUE 索引记录具有相同值,则在新记录被插入之前,旧记录被删除。...区别就是 replace into 时候会删除老记录。如果表中有一个主键。那么就要出问题了。 首先,因为新纪录与老记录主键值不同,所以其他表中所有与本表老数据主键id建立关联全部会被破坏。

3.4K10

技术阅读-《MySQL 必知必会》

行:表数据按行存储,每行存放特定一条记录。 将表想象成网格,水平一行就是表行。 行数表示着记录总数。...除此之外,处理聚集计算语句之外,SELECT句中每个列都必须在GROUP BY 句中给出,否则会报错。...SELECT * FROM a_table a WHERE a.x = X; 联结 当单句 SELECT句中 FROM 引用了一个表两次时使用,为了避免歧义可以采用给表取别名,然后使用 SELECT...,MySQL 变量都以 @ 开始,包括存储过程变量。...触发器好处 固定执行,透明处理 创建跟踪记录 第二十六章 事务处理 提问:MySQL 是怎么管理事务 ? 事务处理保证了多个 MySQL 操作要么完全执行,要么完全不执行,保证原子性操作。

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

MySQL约束

3.3.1、delete 删除记录后,对增长字段没有影响 案例: 删除用户数据库表所有记录,在插入1条记录 mysql> delete from user; Query OK, 4 rows affected...,增长字段重新从1开始 案例: 删除用户数据库表所有记录,在插入1条记录 mysql> truncate user; Query OK, 0 rows affected (0.02 秒) mysql...-- 姓名记录不能为null ); 往表插入一条记录 mysql> insert into t2 values(1,'lisi'); Query OK, 1 rows affected (0.10...秒) 往表插入一条姓名为null记录 mysql> insert into t2 values(1, null); Column 'name' cannot be null mysql> select...7.3、为什么要使用外键约束 新问题? 假如我们在员工表增加一条记录 员工表记录dep_id3,在部门表并没有这个id记录。我们也将这条记录加入了进去。

6.5K10

mysql 唯一键冲突与解决冲突时死锁风险

一文讲透 MySQL MVCC 机制 MySQL 锁机制(上) — 全局锁与表级锁 MySQL 锁机制(下) — 细说 InnoDB 行锁(记录锁、间隙锁与临键锁) 在实际使用场景,常常会发生唯一键冲突...原因很简单,因为通常我们都是依赖 mysql 增 ID 作为数据表主键,在大于当前表最大增主键范围上几乎是不会存在有事务加锁情况,因此插入意向锁在实际使用也就不会出现锁冲突,从而被我们忽略...如下图所示,我们在表 test 插入三条数据,然后在左侧事务通过 select for update 语句获取临键锁 (10, 20] 然后,在右侧另一个事务 insert id 为 15 记录...在其后 update 语句中mysql 允许使用者将任意字段更新为任何值,而不仅仅局限于 insert句中预先指定值。...4.2.1. mysql 版本问题 在 mysql 5.6 ,使用 INSERT INTO … SELECT … ON DUPLICATE KEY UPDATE 语句并不会出现死锁问题,但是却有可能造成并发环境下

3.8K41

SQL优化完整详解

MySQL索引 1. mysql如何使用索引 索引用于快速找出在某个列中有一特定值行。对相关列使用索引是提高SELECT 操作性能最佳途径。...任何在where子句中使用is null或is not null语句优化器是不允许使用索引。...优化order by语句 基于索引排序 MySQL弱点之一是它排序。虽然MySQL可以在1秒查询大约15,000条记录,但由于MySQL在查询时最多只能使用一个索引。...3)用SELECT创建记录和表   INSERT语句与DELETE语句和UPDATE语句有一点不同,它一次只操作一个记录。然而,有一个方法可以使INSERT 语句一次添加多个记录。...当为一个表记录建立备份时,这种形式INSERT语句是非常有用。在删除一个表记录之前,你可以先用这种方法把它们拷贝到另一个表

1.2K40

带你看懂MySQL执行计划

explain 执行计划支持 SELECT、DELETE、INSERT、REPLACE 以及 UPDATE 语句。我们一般多用于分析 select 查询语句。...这是查询 SELECT 序号。如果该行引用其他行并集结果,则值可以为 NULL 。当 id 相同时,执行顺序 由上向下;当 id 不同时,id 值越大,优先级越高,越先执行。...PRIMARY:查询如果包含子查询或其他部分,外层 SELECT 将被标记为 PRIMARY。 SUBQUERY:子查询第一个 SELECT。...派生表有可能产生 FROM 语句中子查询。 : 本行引用了 id 为 N 表所产生物化子查询结果。 type: 查询执行类型,描述了查询是如何执行。...> index_subquery > range > index > ALL 常见几种类型具体含义如下: system:如果表使用引擎对于表行数统计是精确:MyISAM),且表只有一行记录情况下

1.6K40

Hive 与 SQL 标准和主流 SQL DB 语法区别

HiveQL类SQL查询语言支持大多数标准SQL操作,SELECT、JOIN、GROUP BY、HAVING、ORDER BY等,同时还支持自定义函数和自定义聚合函数。...比如 MySQLINSERT 时可以指定目标表列。 解决办法是严格保证 INSERT句中字段和建表语句中字段顺序一致,如果没有则显示指定缺省值。...具体而言,如果使用MySQL 5.7.5 或更高版本,并且在 SELECT句中使用了列别名,则可以在 GROUP BY 子句和 ORDER BY 子句中使用相同别名。...Hive 即使不需要对子查询进行引用,也要设置别名。 在 SQL 标准,并没有强制规定子查询一定要设置别名。不同数据库实现可能会有不同规定。...SELECT * FROM (SELECT * FROM t); (4)关于窗口函数。 Hive 对窗口函数支持比较早, Hive 0.11 版本便开始支持窗口函数。

21410

mysql常见建表选项和约束

sex char(1) default ‘m’ 当然,也可以在INSERT和UPDATE语句中使用DEFAULT关键字显式地给列赋默认值: 函数default(column)可以得到一个列默认值:select...指定某列数据不能重复,唯一 foreign key:外键,指定该列记录属于主表一条记录,参照另一条记录 check:检查,指定一个表达式,用于检验指定数据 primary key = not null...一张表可以定义多个外键 外键列默认可以给null值 父子表 外键所在表叫做子表,从表 外键所引用主键所在表叫做父表,主表 constraint emp_deptid_fk foreign_key...> insert into test_ck values(-100); mysql> select * from test_ck; +------+ | id | +------+ |...1,不会覆盖原来删除编号 列数值自动增长,列类型只能是整数类型 通常给主键添加增长约束

11210

java面试(3)SQL优化

何在Order by语句非索引项或者有计算表达式都将降低查询速度 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,select id...任何在where子句中使用is null或is not null语句优化器是不允许使用索引。...select id from t where num/2 = 100可以改为select id from t where num = 100*2 应尽量避免在where子句中对字段进行函数操作...select id from t where datediff(day,createdate,’2005-11-30′) = 0 不要在 where 子句中“=”左边进行函数、算术运算或其他表达式运算...这也是一条简单而重要规则,当仅引用索引第二个列时,优化器使用了全表扫描而忽略了索引 a如果检索数据量超过30%记录数.使用索引将没有显著效率提高.

3.2K20

mysql 优化海量数据插入和查询性能

常用插入语句INSERT INTO `insert_table` (`Id`, `Name`, `Value`) VALUES ('0', 'name0', 'value0');  INSERT...数据有序插入是指插入记录在主键上是有序排列,例如datetime是记录主键: INSERT INTO `insert_table` (`Id`, `Name`, `Value`) VALUES ('...num 上设置默认值 0,确保表 num 列没有 null 值,然后这样查询: Sql 代码 : select id from t where num=0; 3.应尽量避免在 where 子句中使用...: Sql 代码 : select id from t where substring(name,1,3)='abc';#name 以 abc 开头 id 应改为: Sql 代码 : select...21.避免频繁创建和删除临时表,以减少系统表资源消耗。 22.临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用 表某个数据集时。

3.8K20

【数据库原理与运用|MySQLMySQL视图使用

目录 MySQL视图 概念 作用 语法 创建 修改 更新(可以修改update 但不能插入insert) 重命名 MySQL视图 概念         视图(view)是一个虚拟表,非真实存在,其本质是根据...数据库只存放了视图定义,而并没有存放视图中数据。这些数据存放在原来。 使用视图查询数据时,数据库系统会从原来取出对应数据。因此,视图中数据是依赖于原来数据。...--(2)view_name :表示要创建视图名称。 --(3)column_list:可选项,指定视图中各个属性名词,默认情况下与SELECT句中查询属性相同。 ...--(4)select_statement :表示一个完整查询语句,将查询记录导入视图中。...FROM子句中不可更新视图 WHERE子句中子查询,引用FROM子句中表。

1.8K20

【数据库原理与运用|MySQLMySQL视图使用

图片 编辑 ---- 目录 MySQL视图 概念 作用 语法 创建 修改 更新(可以修改update 但不能插入insert) 重命名 云数据库 https://cloud.tencent.com/product...**数据库只存放了视图定义,而并没有存放视图中数据。这些数据存放在原来。** 使用视图查询数据时,数据库系统会从原来取出对应数据。因此,**视图中数据是依赖于原来数据。...--(2)view_name :表示要创建视图名称。 --(3)column_list:可选项,指定视图中各个属性名词,默认情况下与SELECT句中查询属性相同。...--(4)select_statement :表示一个完整查询语句,将查询记录导入视图中。...JOIN FROM子句中不可更新视图 WHERE子句中子查询,引用FROM子句中表。

2.3K00

mysql insert into as_mysql insert into select使用方法详解

mysql insert into select使用方法详解2017-11-22 15:47 我们先来看看mysql insert into select语法规则。...DELAYED被忽略INSERTSELECT。 该INSERT语句目标表可能出现在查询部分FROM子句中SELECT。但是,不能插入到表并从子查询同一个表中进行选择。...但是,不能使用INSERT INTO t … SELECT … FROM t何时 t是TEMPORARY 表,因为TEMPORARY表不能在同一语句中引用两次。...为避免SELECTINSERT引用同一个表时引用不明确引用问题 , 请为该SELECT部分中使用每个表提供唯一别名,并使用适当别名限定该部分列名。...由于这个问题,在MySQL 5.5.18INSERTSELECT ON DUPLICATE KEY UPDATE和INSERT IGNORE… SELECT语句被标记为不安全基于语句复制。

1.8K30

T-SQL进阶:超越基础 Level 2:编写子查询

清单7查询显示了我如何在FROM子句中使用子查询。 当在FROM子句中使用子查询时,从子查询生成结果集通常称为派生表。...我子查询返回包含ProductID为716最后10个Sales.alesOrderDetail记录。 清单7代码是一个非常简单例子,说明如何在FROM子句中使用子查询。...在修改数据句中使用子查询示例 到目前为止,我所有示例一直在演示如何在SELECT语句不同部分中使用子查询。 也可以在INSERT,UPDATE或DELETE语句中使用子查询。...清单10代码显示了如何在INSERT句中使用子查询。...问题1: 完成这个句子“一个子查询是另一个Transact-SQL语句中SELECT语句,_____________________”。 不能独立于完整查询运行。 引用来自外部查询列。

6K10

MySQL必会SQL查询语句优化方法你竟然还不知道!

sql语句查询数据库效率高低,直接影响到网站访问速度,下面介绍Mysqlsql语句几种优化方法,小编这里还总结了一份 MySQL笔记500多页资料集锦以及详细mysql核心技术思维导图 关注公众号...select id from t where num is null 可以在num上设置默认值0,确保表num列没有null值,然后这样查询: select id from t where...select id from t where num/2=100 应改为: select id from t where num=100*2 9、应尽量避免在where子句中对字段进行函数操作...15、索引并不是越多越好,索引固然可以提高相应 select 效率,但同时也降低了 insert 及 update 效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑...21、避免频繁创建和删除临时表,以减少系统表资源消耗。 22、临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表某个数据集时。

64400

MySQL面试题集锦,据说国内外知名互联网公司都在用!

1、一张表,里面有ID增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录ID是18还是15 ?...SELECT VERSION();用于获取当前MySQL版本。 14、MySQL中使用什么存储引擎? 存储引擎称为表类型,数据使用各种技术存储在文件。...索引是通过以下方式为表格定义: SHOW INDEX FROM ; 28.、LIKE声明%和_是什么意思? %对应于0个或更多字符,_只是LIKE语句中一个字符。...29、如何在Unix和MySQL时间戳之间进行转换?...35、mysql_fetch_array和mysql_fetch_object区别是什么? 36、我们如何在mysql运行批处理模式? 37、MyISAM表格将在哪里存储,并且还提供其存储格式?

1.8K00
领券