
sql
文章平均质量分 52
rocling
我思故我在
展开
-
Mysql 中,这 21 个写 SQL 的好习惯,你值得拥有呀
前言每一个好习惯都是一笔财富,本文分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,谢谢阅读,加油哈~1. 写完SQL先explain查看执行计划(SQL性能优化)日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。explain select * from user where userid =10086 or age =18;2、操作delete或者update语句,加个.原创 2020-11-09 17:27:43 · 372 阅读 · 0 评论 -
MySQL存储引擎InnoDB与Myisam的六大区别
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:· MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除原创 2020-11-08 14:18:40 · 454 阅读 · 0 评论 -
13个MySQL送命题!大厂必看
想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里?1. 能说下myisam 和 innodb的区别吗?myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不支持外键,并且索引和数据是分开存储的。innodb是基于聚簇索引建立的,和myisam相反它支持事务、外键,并且通过MVCC来支持高并发,索引和数据存储在一起。2. 说下mysql的索引有哪些吧,聚簇原创 2020-11-06 15:59:14 · 226 阅读 · 0 评论 -
MySQL事务简介
前言:在学习 MySQL 的过程中,事务永远是一项绕不开的话题,日常程序开发也经常会用到事务。本篇文章将以 MySQL 8.0 版本为基础,一起来深入了解下 MySQL 事务。一、事务的定义数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程..原创 2020-11-06 15:09:25 · 267 阅读 · 0 评论 -
数据库范式介绍
前言:关于数据库范式,时常有听说过,一直没有详细去了解。一般数据库书籍或数据库课程会介绍范式相关内容,范式也经常出现在数据库考试题目中。不清楚你是否对范式有比较清晰的了解呢?本篇文章我们一起来学习下数据库范式吧。1.数据库范式简介为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。范式的英文名称是 Normal Form ,简称 NF 。它是英国人 ..原创 2020-11-06 15:08:01 · 278 阅读 · 0 评论 -
MySQL 冷、热备份
文章转自:http://www.linuxidc.com/Linux/2014-03/98710.htm冷备份(OFF, 慢, 时间点上恢复)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份数据库信息而言,冷备份是最快和最安全的方法。冷备份的优点:1.是非常快速的备份方法(只需拷贝文件)2.容易归档(简单拷贝即可)3.容易恢复到某个时间点上(只需将文件再拷贝回去)4.能与归档方法相结合,作数据..原创 2020-10-29 09:58:18 · 239 阅读 · 0 评论 -
2020-10-10
一:什么是sql注入 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。二:SQL注入攻击的总体思路 1:寻找到SQL注入的位置 2:判断服务器类型和后台数据库类型 3:针对不同的服务器和数据库特点进行SQL注入攻击三:SQL注入攻击实例String sql = "select * from user_table where username=' "+us..原创 2020-10-10 18:18:39 · 1024 阅读 · 1 评论 -
mysql之慢查询
分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。含义超过指定时间的SQL语句查询记录方法开启“慢查询”记录功能等记录办法记录慢查询的方法:查看/设置“慢查询”的时间定义mysql> show variables like ...原创 2020-01-07 18:14:13 · 168 阅读 · 0 评论 -
DB2关于时间的一些函数
得到当前时间的年份、月份、天、小时等等:YEAR (current timestamp)MONTH (current timestamp)DAY (current timestamp)HOUR (current timestamp)MINUTE (current timestamp)SECOND (current timestamp)MICROSECOND (curr...原创 2018-09-13 22:36:31 · 766 阅读 · 0 评论 -
desc的用法
原创 2018-09-13 22:39:54 · 36039 阅读 · 1 评论 -
【mysql】mysql如何优化
目录1、选取最适用的字段属性2、使用连接(JOIN)来代替子查询(Sub-Queries)3、使用联合(UNION)来代替手动创建的临时表4、事务6、使用外键7、使用索引8、优化的查询语句1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我...原创 2018-09-24 19:36:05 · 260 阅读 · 0 评论 -
【mysql】MySql锁等待(Lock wait timeout exceeded)ERROR 1205: Lock wait timeout exceeded; try restarting。。
今天遇到了mysql无法增加字段,于是排查了很久,终于在网上找到解决案了:https://my.oschina.net/quanzhong/blog/222091此问题的原因是我debug的时候没有放开debug造成的,遇到这种问题建议一般是把环境重置后,再排查。 环境 MySQL5.5 引擎:InnoDB 现象 A.数据更新或新增后数据经常自动回滚。 ...原创 2018-09-30 20:47:17 · 216 阅读 · 0 评论 -
【mysql】MySQL添加字段和修改字段
MySQL添加字段的方法并不复杂,下面将为您详细介绍MYSQL添加字段和修改字段等操作的实现方法,希望对您学习MySQL添加字段方面会有所帮助。 1添加表字段alter table table1 add transactor varchar(10) not Null;alter table table1 add id int unsigned not Null auto_inc...原创 2018-09-30 20:48:51 · 2332 阅读 · 0 评论 -
MySQL中的if和case语句使用总结
来源:https://www.jb51.net/article/60922.htm,真心推荐转载 2018-09-25 20:26:18 · 2720 阅读 · 0 评论 -
SQL常用语句一览
SQL常用语句一览(1)、数据记录筛选:sql = " select * from 数据表 where 字段名 = 字段值 order by 字段名 [desc] "sql = " select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc] "sql = " select top10 * from 数据表 where 字...原创 2018-10-17 20:16:11 · 190 阅读 · 0 评论 -
【SQL】什么是DML语句DDL语句
Data Manipulation Language,数据操纵语言,命令使用户能够查询数据库以及操作已有数据库中的数据的计算机语言数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。一个数据库模式包含该数据库中所有实体的描述定义。DDL 数据定义语言如:create table drop table a...原创 2018-09-25 15:01:46 · 1769 阅读 · 0 评论 -
自增主键与UUID的优缺点
自增主键自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充。在MySQL数据库中,可通过sql语句AUTO_INCREMENT来对特定的字段启用自增赋值 使用自增ID作为主键,能够保证字段的原子性.优点数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;数字型,占用空间小,易排序,在程序中...原创 2018-10-17 20:15:02 · 13994 阅读 · 1 评论 -
关于SQL Server将一列的多行内容拼接成一行的问题讨论
示例昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 :类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式:类别 名称 AAA 企业1,企业2...原创 2018-10-21 18:13:19 · 771 阅读 · 1 评论 -
通用权限管理概要设计说明书
文件更改摘要: 日期 版本号 修订说明 修订人 审核人 批准人 2018-10-8 1.0 创建 边坤鹏 ...原创 2018-11-16 20:09:32 · 3388 阅读 · 0 评论 -
掌握MySQL的锁机制,面试不心慌!
MySQL中的锁机制,按粒度分为行级锁,页级锁,表级锁,其中按用法还分为共享锁和排他锁.行级锁行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁.特点开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。用法共享锁(s 锁 读...原创 2019-05-20 14:08:33 · 1124 阅读 · 0 评论 -
内连接、左右连接和全连接的区别
举例说明假设您有两个表,每个表只有一个列,表数据如下 A B- -1 32 43 54 6 注意,(1,2)是A表唯一的,(3,4)是公共的,并且(5,6)是B表独有的 内连接 内连接是A表的所有行交上B表的所有行得出的结果集 select * from a INNER JOIN b on a.a = b.b;se...原创 2019-05-24 15:15:41 · 68118 阅读 · 8 评论 -
SQL DML 和 DDL
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。查询和更新指令构成了 SQL 的 DML 部分:SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO ...原创 2018-09-06 20:19:20 · 151 阅读 · 0 评论 -
MySQL数据库技巧
目录1、如何快速掌握MySQL?2、如何选择服务器的类型?3、如何选择存储引擎4、如何查看默认存储引擎?5、表删除操作须谨慎6、每个表中都要有一个主键吗?7、每个表都可以任意选择存储引擎吗?8、带AUTO_INCREMENT约束的字段值是从1开始的吗?9、TIMESTAMP与DATATIME两者的区别10、选择数据类型的方法和技巧是什么?11、MySQL...原创 2018-09-13 22:30:39 · 216 阅读 · 0 评论 -
TIMESTAMP和DATETIME相同和区别
目录TIMESTAMP和DATETIME的相同点:TIMESTAMP和DATETIME的不同点:关于TIMESTAMP和DATETIME的自动初始化和更新参考:TIMESTAMP和DATETIME的相同点:1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。 TIMESTAMP和DATETIME的不同点:1>...原创 2018-09-13 21:21:15 · 1955 阅读 · 0 评论 -
强烈推荐MySQL好文
链接:https://www.cnblogs.com/best/p/6517755.html原创 2018-09-13 20:43:53 · 264 阅读 · 0 评论 -
Mysql 列转行统计查询 、行转列统计查询
创建表:-- ------------------------------ Table structure for tabname-- ----------------------------DROP TABLE IF EXISTS `tabname`;CREATE TABLE `tabname` ( `Id` int(11) NOT NULL AUTO_INCREMENT, ...原创 2018-08-25 00:33:33 · 2301 阅读 · 0 评论 -
mysql 列转行,合并字段
创建数据表:-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` bigint(20) NOT NULL AUTO_INCREME...原创 2018-08-24 23:46:50 · 57317 阅读 · 7 评论 -
sql中查询同一列所有值出现的次数
建表country_year_population_tab:-- ------------------------------ Table structure for country_year_population_tab-- ----------------------------DROP TABLE IF EXISTS `country_year_population_tab`;...原创 2018-08-24 23:00:27 · 10074 阅读 · 0 评论 -
SQL MID() 函数
目录 MID() 函数SQL MID() 语法SQL MID() 实例MID() 函数 MID 函数用于从文本字段中提取字符。SQL MID() 语法SELECT MID(column_name,start[,length]) FROM table_name参数 描述 column_name 必需。要提取字符的字段。 start...原创 2018-08-28 17:07:51 · 1831 阅读 · 0 评论 -
MYSQL中可以实现类似IF判断的方法
新建一张客户表,如下:sex:1-男,2-女,3-未知;level是客户的级别:1-超级VIP客户,2-VIP客户,3-普通客户方式一:case函数:流程控制函数用法一:CASE expressionWHEN value1 THEN returnvalue1WHEN value2 THEN returnvalue2WHEN value3 THEN returnvalue3...原创 2018-08-28 14:57:04 · 80767 阅读 · 2 评论 -
sql获取每一个类别中值最大的一条数据
/*数据如下:name val memoa 2 a2(a的第二个值)a 1 a1--a的第一个值a 3 a3:a的第三个值b 1 b1--b的第一个值b 3 b3:b的第三个值b 2 b2b2b2b2b 4 b4b4b 5 b5b5b5b5b5*/--创建表并插入数据:create tabl...原创 2018-08-23 19:31:30 · 19227 阅读 · 0 评论 -
千万不要在脏数据下写sql
不然你生死不如原创 2018-08-23 18:46:15 · 748 阅读 · 0 评论 -
SQL语句执行顺序
查询语句中select from where group by having order by的执行顺序 1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from--where--group by--having--order by 其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序 与sql语句的书写顺序并不是一样的...原创 2018-08-27 10:24:40 · 228 阅读 · 0 评论 -
CASE WHEN 及 SELECT CASE WHEN的用法
Case具有两种格式。简单Case函数和Case搜索函数。简单Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 种方式,...转载 2018-08-26 19:14:59 · 554627 阅读 · 4 评论 -
SQL中distinct的用法
目录1.作用于单列2.作用于多列3.COUNT统计 4.distinct必须放在开头5.其他在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。表table_A:-- ------------------------------ Table structure for t...原创 2018-08-25 10:20:29 · 20503 阅读 · 1 评论 -
笔试题:SQL统计各班成绩第一名的学生信息
题目:统计各班成绩第一名的学生信息,数据信息如下图。建表t_stu_score:-- ------------------------------ Table structure for t_stu_score-- ----------------------------DROP TABLE IF EXISTS `t_stu_score`;CREATE TABLE `t_stu_...原创 2018-08-25 11:53:55 · 9023 阅读 · 1 评论 -
数据库--sql 查询字段如果为null 则返回0的写法
oracleselect nvl(字段名,0) from 表名;sqlserverselect isnull(字段名,0) from 表名; mysqlselect ifnull(字段名,0) from 表名;原创 2018-09-13 17:07:32 · 20258 阅读 · 2 评论 -
mysql判断奇数偶数,并思考效率
-- 按位与select * from cinema WHERE id&1; -- id先除以2然后乘2 如果与原来的相等就是偶数select * from cinema WHERE id=(id>>1)<<1; -- 正则匹配最后一位select * from cinema WHERE id regexp '[13579]$';sel...转载 2018-09-13 16:21:46 · 3363 阅读 · 0 评论 -
先按时间排序,再按姓名排序 sql语句
将字段依次写在order by 后面即可 , 中间用逗号隔开select * from 表 order by time , nameselect * from 表 order by time asc , name ascselect * from 表 order by time desc , name descselect * from 表 order by time asc , nam...原创 2018-09-17 17:58:14 · 10897 阅读 · 0 评论 -
MySQL 的存储引擎比较
原创 2018-09-12 20:46:00 · 305 阅读 · 0 评论