MySQL学习笔记(总结)
1. 数据库服务器操作命令
启动数据库:net start mysql80 (注释:windows命令)
停止数据库:net stop mysql80 (注释:windows命令)
重启数据库:systemctl restart mysql;(重启后全局变量失效)
连接数据库:mysql -h localhost -P 3306 -u root -p (注释:windows命令)
备份数据库:mysqldump [-h{ip}] -uroot -p1234 数据库名 > d:/数据库名.sql(windows命令)
退出数据库:exit (注释:mysql命令,下记略)
2. DDL数据库操作命令
查询所有数据库:show databases; //显示所有数据名
切换当前数据库:use {数据库名}; // 将数据库切换到指定数据库
查询当前数据库:select database(); // 显示当前数据库名
创建数据库:careate database [if not exists] {数据库名} [default charset 字符集]
删除数据库:drop database {数据库名}
3. DDL表操作
查询所有表:show tables; // 显示当前数据库所有表名
查询表结构:desc {表名}; // 显示表字段 属性 约束
查询建表语句:show create table {表名};
创建表:create table {表名} ( {字段名} {类型} [comment 注释], ... ) [comment=表注释];
修改表_添加字段:alter table {表名} add {字段名} {类型} [comment 注释 约束];
修改表_修改类型:alter table {表名} modify {字段名} {类型} [comment 注释 约束];
修改表_修改字段:alter table {表名} change {原字段} {新字段} {新类型} [comment 约束];
修改表_删除字段:alter table {表名} drop {字段名};
修改表_修改表名:alter table {表名} rename to {新表名};
重新建表:truncate table {表名}; // 删除后重新建表(删数据比delete快,需要有改表权限)
删除表:drop table [if exists] {表名};
4. DML数据操作(增删改)
单条插入_指定字段:insert into {表名} (字段, 字段...) values (值, 值...);
单条插入_全部字段:insert into {表名} values (值, 值...);
批量插入_指定字段:insert into {表名} (字段, 字段...) values (字段, 字段),(字段, 字段)...;
批量插入_全部字段:insert into {表名} values (字段, 字段),(字段, 字段)...;
修改数据:update {表名} set {字段}={值}, {字段}={值}... [where 条件];
删除数据:delete from {表名} [where 条件];
5. DQL数据操作(查询)
查询:select 字段... from {表名} [where 条件] [group by 字段...] [having 字段] order by {字段} asc, {字段} desc limit 下标值 件数值;
去重查询:select distinct 字段... from {表名} [where 条件]...; // 据说去重比分组快
条件运算符: =; !=;<> ; >; <; >=; <=; beturn and ; in ; like ; is null; no in; not like; is not null;
逻辑运算符:and ; or ; !
关联查询:inner join; left [outer] join; right [outer] join; full outer join;
联合查询:union; union all;
嵌套查询(子查询):
标量子查询:select * from {表1} where {字段} = (select {字段} from {表2});
行子查询:select * from {表1} where {字段, 字段} = (select {字段, 字段} from {表2});
列子查询:select * from {表1} where {字段} [in,any,some,all] (select {字段} from {表2});
表子查询:select * from {表1} where {字段, 字段} in (select {字段, 字段} from {表2});
判空函数: if (表达式, 字段1, 字段2) // 如果表达式成立则字段1,否则字段2
判空函数: ifnull (字段1, 字段2) // 如果字段1是null则字段2,否则字段1
case when {表达式} then {字段1} else {字段2} end;
case {字段1} when {值1} then {} when {值2} then {} else {} end;
6. DCL数据访问权限(用户权限)
查询用户:select * from user;
创建用户:create user '{用户名}'@'{主机名}' identified {密码}; // 主机 'localhost'本地访问权限,'%'全部机器访问权限
修改密码:alter user '{用户名}'@'{主机名}' identified with mysql_native_password by {新密码};
删除用户:drop user '{用户名}'@'{主机名}';
查询用户权限:show grants for '{用户名}'@'{主机名}';
授权用户权限_数据库下所有表:grant {权限}, {权限}... on {数据库.表名} to '{用户名}'@'{主机名}';
授权用户权限_所有数据的表:grant {权限}, {权限}... on *.* to '{用户名}'@'{主机名}';
撤销权限:revoke {权限}, {权限}... on {数据库.表名} from '{用户名}'@'{主机名}';
7. 约束
建表约束_字段指定:create table {表名} (字段 类型 primary key, 字段 类型 not null, 字段 类型 unique, 字段 类型 check(条件), 字段 类型 defult);
建表约束_外键:create table {表名} (... constraint 外键名 foreign key (字段) 主表名(字段) );
追加外键约束:alter table {表名} add constraint {约束名} {约束} (字段) referenes 主表名(字段);
删除外键约束:alter table {表名} drop foreign key 外键约束名;
外键更新删除行为:no action 不允许删除更新,restrict 不允许删除更新,cascade 同时删除更新子表记录,set null 子表设置成 null
设置外键更新删除行为:alter table {表名} add constraint {约束名} {约束} (字段) referenes 主表名(字段) on update cascade on delete set null; // 主表更新子表同事更新。主表删除子表设置null
8. 事务(原子性,一致性,隔离性,持久性)
查询事务提交方式:select @@autocommint; // 1自动提交 0手动提交
设置事务提交方式:set @@autocommint = 0; // 改为手动提交
开启事务:start transaction; // 或者begin
提交事务:commit; 回滚事务:rollback;
隔离级别:read uncommited(读未提交)有脏读 不可重复读 幻读问题, read commited(读已提交)有不可重复读 幻读问题, reteatable read(可重复读)有幻读问题, serializable(串行化)三个问题都没有,执行效率低
查看事务隔离级别:select @@transaction_isolation;
设置事务隔离级别:set [session | global] transaction level {隔离级别}; // session 当前窗口生效 global所有窗口生效
9. 索引
创建索引:create [unique fulltext] index {索引名} on 表名(字段..);
查看索引:show index from {表名};
删除索引:drop index {索引名} on {表名};
提示用指定索引查询:select * from 表 use index(索引名) where 条件;
提示不用指定索引查询:select * from 表 ignore index(索引名) where 条件;
强制使用索引查询:select * from 表 force index(索引名) where 条件;
10. 视图
创建视图:create view 视图名 as select * from 表;
查询视图:select * from 视图名; // 与查询表一致
查询视图结构:show create view 视图名; // 与查询表结构一致
替换视图:create or replace view 视图名 as select * from 表;
修改视图:alter view 视图名 as select * from 表;
删除视图:drop view 视图名;
创建视图检查选项:create view 视图名 as select * from 表 where with cascaded check option;
create view 视图名 as select * from 表 where 条件 with local check option;
11. 存储过程
查看系统变量:show [global session] variables;
查看系统变量值:select @@[global session] {系统变量名};
设置系统变量:set @@[global session].{系统变量名} = 值; set [global session] {系统变量名} = 值;
设置自定义变量:set @变量名 = 值; set @变量名 := 值; select @变量名 := 值; // 无需声明
查询自定义变量:select @变量名, @变量名;
声明局部变量:declare 变量名 类型; // 可以default 指定默认值
设置局部变量:set 变量名 = 值; set 变量名 := 值; select 字段 into 变量 from 表;
创建存储过程:create procedure {存储过程名} (参数列表) begin ... end;
创建带参存储过程:create procedure {存储过程名} (in 参数 类型, out 返回值 类型) begin ... end;
条件判断: if 条件 then ... elseif 条件 then ... else ... end if;
条件判断:case 值 when 值 then ... else ... end case; case when 条件 then... else ... end case;
循环:while 条件 do ... end while; repeat ... until 条件;
循环:[循环名:] loop ... end loop [循环名]; // leave 循环名(退出) iterate 循环名(跳过)
调用存储过程:call {存储过程名}(参数列表); call {存储过程名}(参数, @自定义变量);
查询存储过程:select * from infomation_schema.routines where routine_schema = {数据库};
查询存储过程创建语句:show create procedure {存储过程名};
删除存储过程:drop procedure {存储过程名};
声明游标: declare 游标名 cursor for 查询语句;
打开游标:open 游标名;
获取当前游标记录:fetch 游标名 into 变量 [, 变量...]; // 多条记录需要循环调用
关闭游标:close 游标名;
12. 存储函数
创建存储函数:create function 存储函数名(参数名 参数类型) // 无需指定参数默认in
returns 返回值类型 begin ... return ...; end;
调用存储函数:select 存储函数名;
13. 触发器
创建触发器:create trigger 触发器名;
before insert / after insert / before update / after update / before delete / after delete //选一个
on 表名 for each row // 行级触发器
begin ... end;
查看触发器:show triggers;
删除触发器:drop trigger [schema名.]触发器名;
14. 锁
加全局锁:flush tables with read lock;
释放全局锁:unlocak tables;
加表共享读锁(读锁):lock tables 表名[,表名...] read; // 任何人只能读不能写
加表独占写锁(写锁):lock tables 表名[,表名...] write; // 自己读写,其他人不能读写
释放表锁:unlock tables;
加查询共享锁:select ... lock in share mode;
加查询排他锁:select ... for update;
相关文章:
MySQL学习笔记(总结)
1. 数据库服务器操作命令 启动数据库:net start mysql80 (注释:windows命令) 停止数据库:net stop mysql80 (注释:windows命令) 重启数据库:systemctl restart mysql;…...
Android开发 Layout布局 ScrollView
1.LinearLayout 属性 orientation:内部组件排列方式,可选vertical、horizontal,默认horizontal layout_weight: 与平级组件长宽比例,需要将layout_width、layout_height其中一个设置为0dp,表明长或宽与平级组件的长…...
手撕数据结构与算法——树(三指针描述一棵树)
🏆作者主页:king&南星 🎄专栏链接:数据结构 🏅文章目录🌱树一、🌲概念与定义二、🌳定义与预备三、🌴创建结点函数四、🍀查找五、🍁插入六、&a…...
字节跳动Java后端开发实习面经
最近在和同学一起找实习,投了b站、字节和miHoYo的后端开发。b站二月底就投了,但现在也还没回复;miHoYo也还没回复,估计是只面向24届了;感谢字节,给了我面试的机会。字节真的处理好快,不到一周官…...
STM32实战项目-触摸按键
前言: 通过触摸按键控制LED灯以及继电器,具体实现功能如下: 1、触摸按键1单击与长按,控制LED1; 2、触摸按键2单击与长按,控制LED2; 3、触摸按键3单击与长按,控制LED3; 4、触摸按键4单击与长…...
安全行业-术语(万字)
肉鸡 所谓“肉鸡”说一种很形象的比喻,比喻那些可以任意被我们控制的电脑,对方可以是Windows系统,也可以说UNIX/linux系统,可以说普通的个人电脑,也可以是大型的服务器,我们可以像操作自己的电脑那样来操控…...
P1113 杂务(拓扑排序 or 记忆回溯)
题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更…...
Web3中文|政策影响下的新加坡Web3步伐喜忧参半
如果说“亚洲四小龙”是新加坡曾经的荣耀,那么当时代进入21世纪的第二个十年,用新加坡经济协会(SEE)副主席、新加坡新跃社科大学教授李国权的话来说,新加坡现在的“荣耀”是全球金融的主要“节点”或区块链行业发展的关…...
Java数据库高阶面试题,好程序员学员分享百度Java面试流程
小源下面分享一位好程序员的学员去百度Java面试流程!百度技术一面(20分钟)1、自我介绍很流畅捡重点介绍2、数据结构算法好不好挺好的(其实心还是有点虚,不过最近刷了很多好程序员出的题感觉没问题!)3、找到单链表的三等分点,如果单…...
栈和队列习题精选(持续更新中)
第一题(括号匹配)给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。…...
大数据开发 - Java入门6
目录标题do-while循环练习1:从键盘输入单词,讲输入的单词输出到控制台,输入是exit时退出循环练习2:键盘输入密码和确认密码,两次密码一致就退出循环打印注册成功,两次密码不一致就循环输入两次密码死循环fo…...
开源超级终端工具——WindTerm
1、下载和安装(我的是win10,其他版本各位自选) Releases kingToolbox/WindTerm GitHub 安装的话,相信大家不用我赘述了。 初始界面是这样的: 2、WindTerm使用 2.1 本地会话(最下面那个框,发…...
【Linux】信号常见概念
文章目录信号入门生活中的信号技术应用角度的信号signal函数注意事项信号的概念信号的产生信号的记录(保存)信号处理常见方式概述信号入门 生活中的信号 你在网上买了很多件商品,在等待不同商品快递的到来 但即便快递还没有到来,你也知道快递到了的时候应该怎么处理快递,也就…...
15000 字的 SQL 语句大全 第一部分
一、基础 1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname 3、说明:备份sql server--- 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat …...
突发——字节跳动被要求出售 TikTok 股票,否则禁令,低代码也曾被打压
一、欲加之罪,何患无辞! 正值人们对TikTok和其它社交媒体平台对年轻用户的影响进行更广泛、持续的反思之际,美政客们以数据安全为由要求TikTok出售股票,已然不顾文明国家的体面。 在美国,TikTok拥有1.4亿用户&#x…...
2023年网络安全趋势
数据安全越来越重要。 我国《数据安全法》提出“建立健全数据安全治理体系”,各地区部门均在探索和简历数据分类分级、重要数据识别与重点保护制度。 数据安全治理不仅是一系列技术应用或产品,更是包括组织构建、规范制定、技术支撑等要素共同完成数据…...
html练习
1.用户注册界面 代码: <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><form action"#" method"get"><table border"1" widt…...
【Redis】Redis 是如何保证高可用的?(背诵版)
Redis 是如何保证高可用的?1. 说一下 Redis 是如何保证高可用的?2. 了解过主从复制么?2.1 Redis 主从复制主要的作用是什么?2.2 Redis 主从模式的拓扑结构?(1)一主一从结构(2)一主多…...
Qt---去掉标题栏后,最大化应用程序窗口时,窗口遮住了任务栏
// showMaximized(); // Qt最大化显示函数 任务栏都会覆盖static bool max false;static QRect location this->geometry();if (max) {this->setGeometry(location);//回复窗口原大小和位置// ui->maxBtn->setIcon(QIcon(":/MAX_.png"));}else {// ui-…...
Cadence Allegro 导出Netin(non-back)报告详解
⏪《上一篇》 🏡《上级目录》 ⏩《下一篇》 目录 1,概述2,Netin(non-back)作用3,Netin(non-back)示例4,Netin(non-back)导出方法4.1,方法1:4.2,方法2:B站关注“硬小二”浏览更多演示视频...
HTML语言
1.什么是HTML? 1、HTML是超文本标记语言(Hyper Text Markup Language) 2、HTML由各种各样的标签(tag)组成,如、 3、HTML文档 网页 (1)一种纯文本文件,扩展名为.html或.html; (2)最终显示结果取决…...
线性代数之行列式
一、思维导图二、二阶、三阶行列式的定义1、二阶行列式2、三阶行列式沙路法展开3、解方程3.1解二元一次方程组观察上面两个未知量的值不难发现,它 们的分母均是上述方程组未知量的系数形成的二阶行列式,𝑥1的分子是将系数行列 式的第一列换成…...
【FPGA-Spirit_V2】小精灵V2开发板初使用
🎉欢迎来到FPGA专栏~小精灵V2开发板初使用 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家…...
STL与其空间配置器
目录什么是STLSTL的六大组件STL的缺陷什么是空间配置器为什么需要空间配置器GI-STL空间配置器实现原理一级空间配置器二级空间配置器内存池SGI-STL中二级空间配置器设计SGI-STL二级空间配置器之空间申请前期的准备申请空间填充内存块向内存池中索要空间SGI-STL二级空间配置器之…...
leetcode刷题之回文链表
目录 做题思路 代码实现 1.找到链表的中间节点 2.反转中间节点之后的链表 3.判断倒置的后半部分的链表是否等于前半部分的链表 整体代码展示 总结: 这里是题目链接。 这道题目的意思是:判断该链表中后半部分倒置是否跟前半部分相同,如…...
复制带随机指针的链表最长连续递增序列数组的度写字符串需要的行数最短补全词
复制带随机指针的链表来源:杭哥138. 复制带随机指针的链表 - 力扣(LeetCode)typedef struct Node Node; Node* BuyNode(int x) {Node* newnode (Node*)malloc(sizeof(Node));newnode->valx;newnode->nextNULL;newnode->randomNULL;…...
「ML 实践篇」回归系统:房价中位数预测
文章目录1. 项目分析1. 框架问题2. 性能指标2. 获取数据1. 准备工作区2. 下载数据3. 查看数据4. 创建测试集3. 数据探索1. 地理位置可视化2. 寻找相关性3. 组合属性4. 数据准备1. 数据清理2. Scikit-Learn 的设计3. 处理文本、分类属性4. 自定义转换器5. 特征缩放6. 流水线5. 选…...
深度学习 Day27——利用Pytorch实现运动鞋识别
深度学习 Day27——利用Pytorch实现运动鞋识别 文章目录深度学习 Day27——利用Pytorch实现运动鞋识别一、查看colab机器配置二、前期准备1、导入依赖项并设置GPU2、导入数据三、构建CNN网络四、训练模型1、编写训练函数2、编写测试函数3、设置动态学习率4、正式训练五、结果可…...
Springboot 整合dom4j 解析xml 字符串 转JSONObject
前言 本文只介绍使用 dom4j 以及fastjson的 方式, 因为平日使用比较多。老的那个json也能转,而且还封装好了XML,但是本文不做介绍。 正文 ①加入 pom 依赖 <dependency><groupId>dom4j</groupId><artifactId>dom4j…...
网络安全实验——安全通信软件safechat的设计
网络安全实验——安全通信软件safechat的设计 仅供参考,请勿直接抄袭,抄袭者后果自负。 仓库地址: 后端地址:https://github.com/yijunquan-afk/safechat-server 前端地址: https://github.com/yijunquan-afk/safec…...
小程序开发文档官网/重庆seo是什么
Java接口测试之日志管理之AOP统一日志 https://blog.csdn.net/zuozewei/article/details/85375106 自定义Api接口访问系统日志记录 https://blog.csdn.net/m0_37125796/article/details/91561223 log4j的MDC配合Spring-mvc进行日志追踪 本文链接:https://blog.…...
网站导航栏三根横线怎么做的/网站推广如何收费
一、LVM准备磁盘分区disk /dev/sdbn创建分区t更改类型 8epartprobe 将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。-d 不更新内核-s 显示磁盘分区汇总信息-h 显示帮助信息-v 显示版本信息准备物理卷yum insatll lvm2 -ypvcreate 磁盘分区pvdisplay 查…...
设计公司网站建设文案/网络营销战略有什么用
作为一个程序员,经常需要上谷歌查点资料,想在大局域网内上谷歌,也不是件容易的事情,给大家推荐一个谷歌镜像导航网站:http://dir.scmor.com/google/ 转载于:https://www.cnblogs.com/tc310/p/6945301.html...
wordpress赚钱主题/线上推广
文章目录1. 理论基础2. 逻辑代码3. 应用3.1 做汉堡咯思考:为何肯德基麦当劳这些快餐能在中国这个上下五千年的国都站住脚? 中国的鱼香肉丝为何不能成为令人追捧的快餐?因为麦当劳肯德基使用的是统一制造的快餐, 也就相当于厨师是一个厨师, 而中国的饭店每个都有鱼香肉丝, 但是…...
做全屏的网站 一屛多高/百度平台客服电话是多少
1. 描述 第一个练习将为你提供线性回归练习。这些练习已经用Matlab进行了广泛的测试,但它们也应该在Octave中工作,它被称为“免费版的Matlab”。如果你使用的是Octave,那就是 一定要安装Image包(可在Windows中作为选项使用&#…...
企业b2b电子商务平台/淘宝seo是什么
在过去单核CPU时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务…...