
SQL
20Hui
路遥知马力
展开
-
SQL使用INSERTINTOSELECT
INSERT INTO 表1(参数)SELECT 参数 FROM 表2 WHERE 条件原创 2018-09-18 14:16:42 · 519 阅读 · 0 评论 -
SQL的ORDER BY 的使用注意
项目中我写了一条sql语句SELECT s.student_number AS studentNumber, s. NAME, s.sex, class. NAME AS studentClass, m. NAME AS professiona, d. NAME AS department, c. NAME AS collegeFRO...原创 2018-10-30 14:08:45 · 2553 阅读 · 0 评论 -
为什么不要使用IN而要使用EXISTS
今天发现SQL语句执行速度过慢,然后我就认真看了看,用EXPLAIN看了一下SQLSELECT count(*)FROM student_info AS sLEFT JOIN class ON s.class_id = class.idLEFT JOIN major AS m ON class.major_id = m.idLEFT JOIN department...原创 2018-10-31 16:49:42 · 8422 阅读 · 6 评论 -
SQL排序时,null放最后
我们查询SQL的时候会发现有的时候我们并不想返回结果第一条含有null数据这个时候我们可以使用一条orderby语句SELECT <属性>FROM <表名>ORDER BY CASE when <有空值的属性> IS NULL THEN 1 ELSE 0 END ASC,<其他需要排序的属性> ASC ...原创 2018-10-19 20:13:14 · 2906 阅读 · 0 评论 -
MySQL备份与还原,mysqlcopy介绍
mysql备份语句备份单个数据库mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql其中: dbname参数表示数据库的名称; table1和table2参数表示需要备份的表的名称,为空则整个数据库备份; BackupName.sql参数表设计备份文件的名称,文件名前面可以...原创 2018-09-29 14:31:51 · 1062 阅读 · 0 评论 -
SQL进阶(下)
用SQL进行集合运算除法运算--用求差集的方法进行除法运算(有余数)SELECT DISTINCT empFROM EmpSkills ES1WHERE NOT EXESTS (SELECT Skill FROM Skills EXCEPT SELECT skill FROM Emp...原创 2018-10-07 00:05:04 · 362 阅读 · 0 评论 -
SQL进阶(上)
CASE表达式新手用WHERE字句进行条件分支,高手用SELECT字句进行条件分支--男性人口SELECT pref_name, SUM(population)FROM PopTbl2WHERE sex='1'GROUP BY pref_name--女性人口SELECT pref_name SUM(population)FROM PopTbl...原创 2018-10-06 19:50:20 · 1239 阅读 · 0 评论 -
数据结构之MySQL独爱B+树(二叉树、AVL树、红黑树、B树对比)
一、二叉查找树(1)二叉树简介:二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质:1、任意节点左子树不为空,则左子树的值均小于根节点的值;2、任意节点右子树不为空,则右子树的值均大于于根节点的值;3、任意节点的左右子树也分别是二叉查找树;4、没有键值相等的节点; 上图为一个普通的二叉查找树,按照中序遍历的方式可以从小到大的顺序排序...原创 2018-09-20 14:53:17 · 3140 阅读 · 0 评论 -
MySQL索引生效
如何判断数据库索引是否生效explain语句显示MySQL如何使用索引来处理select语句以及连接表,他可以帮助选择更好的索引和写出更优化的查询语句可以看到,使用explain显示了很多列,各个关键字的含义如下: table:顾名思义,显示这一行的数据是关于哪张表的; type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为:const、eq_reg、...原创 2018-09-23 09:56:09 · 1452 阅读 · 0 评论 -
MySQL库表设计
一、引擎选择我们可以通过SHOW ENGINES查看存储引擎对于存储引擎我们可以随便选择吗?答案是不可以,在表之间需要关联外键,却指定了不同的存储引擎,这些表是不能创建外键约束的。因此对于存储引擎我们也不能随意选择MySQL中常用的存储引擎主要是MyISAM和InnoDBMyISAM:配置在Web应用程序中,全表锁,具有较高的执行速度,一个写请求阻塞相同表格的所有读写请求,并发...原创 2018-09-25 21:33:14 · 340 阅读 · 0 评论 -
MySQL索引介绍
索引为什么可以提高查询速度索引就是通过事先排好序,从而在查询是可以应用二分查找等高效率的算法。一般的顺序查找,复杂度为O(n),而二分查找复杂度为O(log2n)。当n很大时,二者的效率相差极其悬殊。在一个或者一些字段需要频繁用作查询条件,并且表数据较多的时候,创建索引会明显提高查询速度,因为可由全表扫描改成索引扫描。(无索引时全表扫描也就是要逐条扫描全部记录,直到找完符合条件的,索引...原创 2018-09-20 12:43:56 · 139 阅读 · 0 评论 -
NoSQL和SQL简介和对比
在日常的编码中,我们常用的是SQL(结构化的查询语言)数据库,SQL是过去四十年间存储数据的主要方式。现在主流的SQL主要有MySQL、SQLServer、Oracel等数据库。NoSQL数据库自从20世纪60年代就已经存在了,现在主流的NoSQL有MongoDB, CouchDB, Redis 和Memcache等数据库。SQL就不做过多的介绍了,我们来说一下NoSQL。NoSQL,指的是非...原创 2018-09-19 21:30:48 · 16937 阅读 · 0 评论 -
优化你的SQL语句
今天读到一篇关于老鸟的SQL的经验之谈,参考后写下这篇建议 避免在select f1,(select f2 from tableB ).... from tableA 这样得到字段列。 直接用tableA和tableB关联得到A.f1,B.f2就可以了。 ...原创 2018-09-19 20:19:46 · 268 阅读 · 0 评论 -
数据库范式的区别
1、1NF(第一范式)第一范式是指数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合或是由一组属性构成。简而言之,第一范式就是无重复的...原创 2018-06-08 19:22:07 · 2988 阅读 · 0 评论