mysql8之与标准sql的区别
一 mysql8概述
在研究mysql8新特性的时候,越来越感觉mysql8朝sql server看齐。看来对于中小型企业级应用也挺有兴趣,但是没有企业级的应用套件,有知道的麻烦告知。本文不探讨mysql8的结构变化,函数变化,
以及新增的功能。仅仅阐述下mysql8在sql语法上与标准sql的一点点区别,作为研究mysql系列文章的开篇
二 mysql8sql与标准sql的些许差异
REVOKE:在mysql删除一个表的时候,是不自定执行revoke权限的,必须手动执行revoke
CAST:这个函数不支持转换 REAL 和 BIGINT
SELECT INTO TABLE的语法不同:mysql不支持此语法,替换的是支持INSERT ....SELECT 和CREATEA TABLE ....SELECT和 SELECT ... INTO OUTFILE
UPDATE 不同:UPDATE t1 SET col1 = col1 + 1, col2 = col1; 这条语句的结果是col1和col2最后是同一个值,col2 = col1这条表达式,col1并没有取源值。
三 foreign key 的不同
1 ,如果子表引用父表的值,在父表中有多行,那么这些行是都不能删除的。
2,一个外键可以是非唯一的键值。
3, ON UPDATE CASCADE or ON UPDATE SET NULL是不能自引用的,但是 ON DELETE SET NULL可以, ON DELETE CASCADE或许可以,但是嵌套是不能超过15.
4,在一个增删改的多行的语句,外键约束,比如唯一约束,是一行一行的被检查。外键约束检查功能的时候,innodb设置一个共享锁,在必须被检查的子或者父行上。mysql立即检查约束;检查没有被延迟到事务提交。语句sql标准,默认的动作应当被延迟检查,即是,约束仅仅是被检查在整个sql语句被处理完成后,
四 comment的不同
标准sql使用c风格的注释: /* this is a comment */.mysql同样支持这种样式,同时扩展这种风格,让mysql独特的sql可以嵌入在注释中,标准sql的注释风格使用“--”开始,mysql使用#开始注释字符。mysql也支持--注释样式的变种。就是 --开始,但是 必须跟随一个space,或者一个控制字符,比如新行。space避免自动生成sql查询的一些问题,如下例子:
UPDATE account SET credit=credit-paymet
如果payment是一个负值,比如-1,那么语句就变成:
UPDATE account SET credit=credit--1
credit--1是一个合法的表达式,但是--被解释作为注释的开始字符,注释被丢弃,实际执行的sql就成如下:
UPDATE account SET credit=cred
使用mysql实现需要一个space跟随在--,从而被识别为一个开始注释的符号。
mysql8之与标准sql的区别的更多相关文章
- 86标准SQL与92标准SQL用法区别
86标准SQL与92标准SQL用法区别 在开发Oracle 9i时, 数据库还时间了ANSL SQL/92标准的链接语法, 在书中建议在使用Oracle 9i及更高版本时,应该使用SQL/92标准的语 ...
- pl/sql和sql的区别
源地址:https://zhidao.baidu.com/question/187511430.html 1 sql(数据定义语言) 和PL/Sql的区别:答:SQL是结构化查询语言,比较接近自然语言 ...
- 为什么使用Nosql:Nosql和SQL的区别
1.概念: SQL(Structured Query Language)数据库,指关系型数据库.主要代表:SQL Server.Oracle.MySQL.PostgreSQL. NoSQL(Not O ...
- SQL和PL/SQL的区别
SQL和PL/SQL的区别 1. SQL是结构化查询语言,比较接近自然语言,使用SQL,只需要说干什么,不需要说怎么干.由数据定义语言.数据操纵语言.数据控制语言构成,它不面向过程,即前一条语句与后一 ...
- HiveQL(HiveSQL)跟普通SQL最大区别一直使用PIG,而今也需要兼顾HIVE
HiveQL(Hive SQL)跟普通SQL最大区别 一直使用PIG,而今也需要兼顾HIVE.网上搜了点资料,感觉挺有用,这里翻译过来.翻译估计不太准确,待自己熟悉HIVE后再慢慢总结. * No t ...
- 解析posix与perl标准的正则表达式区别
解析posix与perl标准的正则表达式区别 作者: 字体:[增加 减小] 类型:转载 本篇文章是对posix与perl标准的正则表达式区别进行了详细的分析介绍,需要的朋友参考下 正则表达式(Regu ...
- 标准sql语句,学习
标准SQL语句总结标准SQL语句总结,标准SQL语言基本上适用于下面所列出的数据库软件 -------------------------------------------------------- ...
- MongoDB 1: NoSQL 和 SQL的区别
导读:本篇博客,主要是结合自己在项目中的使用,简单的阐述一下NoSQL和SQL的区别.那么,根据自己的应用,NoSQL这边,选择的是MongoDB(Redis虽然也是,但属于内存存储,这里不予说明). ...
- 标准SQL语言的用法
原文链接:http://www.ifyao.com/2015/05/18/%E6%A0%87%E5%87%86%E7%9A%84sql%E8%AF%AD%E8%A8%80%E4%BD%BF%E7%94 ...
随机推荐
- [转]毕设- 深入HBase架构解析(一)
深入HBase架构解析(一) 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Archi ...
- [转]浅谈Hive vs. HBase 区别在哪里
浅谈Hive vs. HBase 区别在哪里 导读:Apache Hive是一个构建于Hadoop(分布式系统基础架构)顶层的数据仓库,Apache HBase是运行于HDFS顶层的NoSQL(=No ...
- 较常用的Math方法及ES6中的扩展
记录下与Math有关的常用方法,如:求最大值.最小值等,或者是保留几位数啥的 1.数据 let floatA = 2.325232; let floatB = 2.3456; let temporar ...
- Shell 实现找出两个目录下的同名文件方法
# 首先我们来创建一些 2 个目录,里面的目录结构及相关文件如下所示: # 从上面的测试目录可以看到, lol.txt lol2.txt 两个文件是两个目录下的同名文件 # 有实际例子,思路就容易出来 ...
- 分布式集群Session原理及实现共享
1.什么是Session/Cookie? 用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互.HTTP协议本身是无状态的,当用户的第一次访问请求结束后,后端服务器就无法知道下一次来访问的还是 ...
- Maven:如何在eclipse里新建一个Maven的java项目和web项目
如何在eclipse里新建一个Maven的java项目和web项目: 一:java项目 New-->Other-->Maven 右击项目-->properties,修改以下文件: ① ...
- Boostnote:适合程序员的笔记软件【转】
本文转载自:https://blog.csdn.net/u013553529/article/details/70306899 Boostnote:适合程序员的笔记软件 注意: Boostnote正在 ...
- Git服务器的Gitosis安装配置及gitignore的使用方法
Git服务器Gitosis安装设置 1.安装 openssh服务器 sudo apt-get install openssh-server openssh-client 2.创建个人公钥和私钥 在默认 ...
- Spring_事务-注解代码
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?><beans xml ...
- 【P3254】圆桌问题(最大流,洛谷)
看到题目,产生第一反应,是否可以匹配的是这么多.那么连边跑一遍最大流就行了. 从源点向每个单位连一条长度为l的边,然后所有单位和餐桌分别连边,流量为1,所有餐桌向汇点连边,流量为餐桌容量.然后跑一遍最 ...