MySQL 8.0 语法记录
SQL又杂又烦,记不住,网上搜到的语句还未必正确。这里做一个Record
基本操作
数据库操作
数据表操作
create index [索引名] on [表名]([列名]); /* 以选定列为索引信息,建立普通索引 */
create view [视图名] as [select子句]; /* 建立视图 */
-- 语法上有点类似于使用临时派生表, select出的东西当作一个视图
数据行操作
insert into [表名] values ([对应数据]) /* 插入数据(对应数据需按顺序全部填写) */
insert into [表名]([列名]) values ([对应数据]) /* 插入数据(部分列数据) */
update [表名] set [待修改列名]=[修改值] where [条件,where子句选择行] /* 更新行中某数据 */
delete from [表名] where [条件,where子句选择行] /* 删除行数据 */
数据列操作
desc [表名]; /* 查看列 */
alter table [表名] add [列名+完整描述] [具体位置]; /* 插入列 */
alter table [表名] drop [列名]; /* 删除列 */
alter table [表名] modify [列名+完整描述] [具体位置]; /* 移动列的位置 */
-- e.g.
-- alter table user_account modify Permission tinyint not null unsigned after CodeName;
alter table [表名] modify [列名] [新描述]; /* 修改列属性 */
alter table [表名] change [列名] [新列名] [新描述]; /* 修改列名字+属性 */
-- 列中数据不会被重置(不管是改名字、属性还是约束)
alter table [表名] add unique([列名]); /* 给已有表某列添加约束 */
/* 解释 */
[具体位置] : after [列名] | first
[列名+完整描述] : 完整描述包括:类型、约束等,例如 Permission tinyint not null unsigned
在操作(如 add drop)后也可再多写一个 column
进阶操作
一些非直接的选择操作
1.获取表c_table中a字段最大的两个数字: 可以排序后限制输出,使用order by和limit
select a from `c_table` order by a desc limit 2;
2.使用临时派生表(记得,必须提供别名,Every derived table must have its own alias
)
3.update操作的条件又对目标表进行了select,则需要将该select外包一层才行
设置变量
触发器
delimiter $$
create trigger [触发器名] /* 命名规则trig_[表名]_[属性名]_[触发含义]_[触发行为],如trig_teacher_age_lowest_i */
[before/after] [insert/update/delete] on [表名]
[for each row] /* 行级:sql影响的每一行都会执行; 语句级:单条sql一次 */
begin
statement
end $$
delimiter ;
常用搭配语句:异常报错
signal sqlstate [异常编解码,字符串] set message_text=[异常信息,字符串]
存储过程
MySQL 8.0 语法记录的更多相关文章
- MySQL 8.0 新增SQL语法对窗口函数和CTE的支持
尝试了一下MySQL 8.0的部分新特性. 如果用过MSSQL或者是Oracle中的窗口函数(Oracle中叫分析函数), 然后再使用MySQL 8.0之前的时候,就知道需要在使用窗口函数处理逻辑的痛 ...
- MySQL的sql_mode参数之NO_AUTO_VALUE_ON_ZERO对主键ID为0的记录影响
最近遇到一个不合理使用数据库进行项目开发最终导致项目进度受阻的一个问题,某天几位开发人员找到我并告知数据库中某张表数据无法写入,又告知某行记录被删除了,因为被删除的记录对开发框架影响很大,他们已尝试重 ...
- mysql 8.0.18 手工安装记录
mysql 8.0.18 手工安装记录 为了日常方便,特记录如下. 一.安装系统依赖包 #.系统依赖包安装 yum -y install make gcc-c++ cmake bison-devel ...
- MySQL 8.0.13安装修改密码的一个问题,记录一下。
https://blog.csdn.net/qq_37350706/article/details/81707862 关于安装MySQL 8.0.13,本人就不多说了,上面这个链接讲的非常详细 请参考 ...
- PHP定时备份MySQL,mysqldump语法大全
几个常用操作: 1.备份 # 只导出表结构 d:/PHP/xampp/mysql/bin/mysqldump -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns ...
- mysql防止重复插入记录方法总结
mysql防止重复插入记录方法总结 防止mysql重复插入记录的方法有很多种,常用的是ignore,Replace,ON DUPLICATE KEY UPDATE,当然我们也可以在php中加以判断了. ...
- MySQL的一些语法总结
初学MySQL,今天遇到了一个问题,然后汇总了一下MySQL的一些语法 1. date和datetime类型是不同的 date只记录日期(包括年月日),datetime记录日期和时间(包括年月日时分秒 ...
- sql点滴41—mysql常见sql语法
原文:sql点滴41-mysql常见sql语法 ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename ...
- MySQL create table 语法
MySQL中create table语句的基本语法是: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definitio ...
- What's New In MySQL 8.0
由于8.0内有很多C++11特性.需要gcc4.8版本以上.Rhel6系列默认gcc是4.7.在安装gcc6.1之后仍然检查不过. 原因可能是6.1版本不一定高于4.7,暂不讨论.鉴于升级gc ...
随机推荐
- Maven 插件 git-commit-id-plugin,打包包含提交信息
Maven打包发布版本可能会遇到自己的提交不起作用的情况,排查比较困难,可能需要拉下服务器上包,反编译查看是否包含自己的提交记录.如果使用的是GIT作为SCM,可以使用 git-commit-id-p ...
- grpc与http2的关系
https://nullget.sourceforge.io/?q=node/895 grpc与http2的关系 grpc client 发送包到原生的http2 server client收到报错: ...
- Qt音视频开发09-ffmpeg内核音视频同步
一.前言 用ffmpeg来做音视频同步,个人认为这个是ffmpeg基础处理中最难的一个,无数人就卡在这里,怎么也不准,本人也是尝试过网上各种demo,基本上都是渣渣,要么仅仅支持极其少量的视频文件比如 ...
- IM跨平台技术学习(四):蘑菇街基于Electron开发IM客户端的技术实践
本文由蘑菇街前端技术团队分享,原题"Electron 从零到一",有修订和改动. 1.引言 本系列文章的前面几篇主要是从Electron技术本身进行了讨论(包括:第1篇初步了解El ...
- Github + Jekyll 搭建项目wiki
网站托管 创建新仓库 创建以自己名字为前缀, .github.io为后缀的仓库 在仓库的Settings中的Pages里设置Build and deployment为Github Actio ...
- VSTO踩坑记录(1)- 从零开始开发outlook插件
概述 vsto是微软提供的一种开发office插件的一种技术,现在看来有点落后了,不过项目需要的情况下,总不能跟领导说这活干不了吧?附上官方文档 安装好必备的开发环境,我用的是vs2022,在安装程序 ...
- ANOSIM分析
ANOSIM分析(analysis of similarities)即相似性分析,主要用于分析高维数据组间相似性,为数据间差异显著性评价提供依据.在一些高维数据分析中,需要使用PCA.PCoA.NMD ...
- unordered_map比map慢?
先说结论:unordered_map不维护键的顺序,因此不能按顺序访问元素,因此如果你需要遍历表时若选用unordered_map就肯定比map慢 1. 数据结构与底层实现 unordered_map ...
- 万字图文:SaaS业务架构、价值流、业务能力、业务流程、业务对象、组织架构
大家好,我是汤师爷~ 本文为读者提供一个SaaS业务架构的系统性框架,探讨业务架构分析的核心要素,帮助SaaS企业深入剖析目标客户的业务模式,全面理解他们的业务架构. 无论你是SaaS创业者.产品经理 ...
- ASP.NET Core 中使用 Redis 实现分布式缓存:Docker、IDistributedCache、StackExchangeRedis
安装和配置docker (略)........... ASP.NET Core 使用分布式缓存 ASP.NET Core 中,支持使用多种数据库进行缓存,ASP.NET Core 提供了统一的接口给开 ...