---比较特殊,第一次看到这种写法,记录下来 create table Student --学生成绩表 ( id int, --主键 Grade int, --班级 Score int --分数 ) INSERT INTO Student VALUES (1,1,88),(2,1,66),(3,1,75),(4,2,30),(5,2,70),( 6,2,80),(7,2,60),(8,3,90),(9,3,70),(10,3,80) SELECT * FROM dbo.Student…
数据类型: sql server只接受两种数据类型 1. 普通字符 varchar char 用一个字节表示一个字符,表示英文 2.unicode   nchar nvarchar 用两个字节表示一个字符 char nchar都是固定长度的,不论其中字符的实际长度,适用于写入为主的系统,读取效率低 varchar nvarchar 是可变长度,读取速度会快但是更新会慢…
Select 分析一个查询实例 Select empid,year(orderdate) as orderYear,count(*) as orderCount From dbo.orderInfo where custid=71 group by empid,Year(orderdate) having count(*) >1 order by empid 以上语句在sql server内的执行顺序是 from--where--group by--having --select--order…
创建数据库: if db_id('DBTest') is nullcreate database DBTest 创建表 use eb_fy_data_test---use 切换所在数据库上下文 if object_id('UserTest','u') is not null drop TABLE UserTest CREATE TABLE UserTest {} 数据完整性 1.主键约束 alter table UserTest add constraint PK_UserTest Primar…
范式:关系模型的规范化规则. Codd提出的三个数据库范式: 1. 第一范式 第一范式要求表中的每一行都是必须是唯一的.因为关系型数据库是基于集合论的,而集合的定义中,要求每一个元素都是唯一的(在关系数据库中可以用键来区别).因此所有的关系数据库表必然是满足第一范式的. 2.第二范式 第二范式要求必须满足第一范式,其次要求非键值属性和候选键值属性之间必须满足一定的条件.即所有非键值属性都完全依赖与整个候选键值所有属性. 如何理解名词参照http://www.cnblogs.com/lumnm/a…
引言观点 1. 编程语言日新月异,但是从没有人否定sql 在现代编程中的巨大作用和 持续的可利用性.SQL以对人类友好的阅读体验提供数据查询能力( 相比其他编程语言 ), 同时在各种数据库平台中,基础SQL元素是相同或大同小异的, 从我们最早接触的SQL,Mysql到公司大数据impala 支持SQL, Es也提供类似SQL的查询, 阿里提出SQLFlow AI框架, SQL的生命力极其顽强. 2. 在我近6年的开发生涯中,确实觉得SQL语言没有得到开发者足够的重视,尤其是流行的ORM概念使得了…
<[MySQL技术内幕:SQL编程>读书笔记 2019年3月31日23:12:11 严禁转载!!! <MySQL技术内幕:SQL编程>这本书是我比较喜欢的一位国内作者姜承尧, 早年在学mysql时就听过姜老师的开源mysql网络视频教程, 记得在视频时总是姜老师姜老师的自称, 感到十分的亲切. 这本书主要是讲mysql在应用编程时如何正确并且更高效的根据业务场景编写相应的sql语句. 从一开始对mysql的历史, 数据库类型, 分支版本, 咋一看, 还挺熟悉的, 这个逻辑顺序不就是…
本文系 T-Sql技术内幕系列读后感. 用过数据库的程序猿都知道,索引可以极大的优化sql语句的执行时间,但是您要问我,怎么减少的,我只能说:"抱歉,我也不太清楚." 带着这个疑惑,我重读了技术内幕,分享一点书上的所得. 我们先来建2个表,然后塞几条数据. create table Customers ( CustomerID int, Cite ) ) insert into Customers(CustomerID,Cite) ,'Shanghai') insert into Cu…
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnblogs.com/lyhabc/articles/3914213.html Microsoft SQL Server 2005技术内幕:T-SQL查询笔记http://www.cnblogs.com/lyhabc/articles/3912608.html Microsoft SQL Server 2…
--本文来源:http://www.cnblogs.com/fygh/archive/2011/08/31/2160266.html 一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分. 特别对于UNION ALL比较有用.因为UNION ALL的每个部分可能相同…
1.透视转换 透视数据(pivoting)是一种把数据从行的状态旋转为列的状态的处理,在这个过程中可能须要对值进行聚合. 每个透视转换将涉及三个逻辑处理阶段,每个阶段都有相关的元素:分组阶段处理相关的分组或行元素,扩展(spreading)阶段处理相关的扩展或列元素,聚合阶段处理相关的聚合元素和聚合函数.例子中的分组元素是empid,扩展元素为custid,聚合函数为SUM(),聚合元素为qty. (1)使用标准SQL进行透视转换 SELECT empid, SUM(CASE WHEN cust…
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视(Pivoting)就是把数据从行的状态旋转为列的状态的处理.其处理步骤为: 相信很多人在笔试或面试的时候被问到如何通过SQL实现行转列或列转行的问题,可能很多人当时懵逼了,没关系,下面我们通过例子来理解. (1)准备数据 --1.0准备数据 USE tempdb; IF OBJECT_ID('dbo…
2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLFundamentals2008 ,官网给出的连接是这个(貌似有的要穿墙), 冠军也有一份. 第一章 T-SQL查询和编程基础 SQL (Structured Query Language) 为查询和管理关系型数据库管理系统(RDBMS--Relational Database Management Syste…
MySql技术内幕之MySQL入门(1) MySql技术内幕之MySQL入门(1) 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结果,则没有安装.否则表示已经安装. sudo apt-get install mysql-server mysql-client 安装过程中会让输入密码,记得把密码记住. 登录 mysql -u root -p 本节SQL语句 mysql> SELECT NOW(); # 查询当前日期和时间,使用分…
目录 MySql技术内幕之MySQL入门(1) 安装 关于注释 执行SQL语句 关于命令大小写 创建数据库 查看表的信息 查看更加详细的信息 查看与给定模式相匹配的列 插入数据 利用insert添加行 利用文件添加新行 总结 MySql技术内幕之MySQL入门(1) 安装 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结果,则没有安装.否则表示已经安装. sudo apt-get install mysql-server mys…
MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子中使用了mysqld_safe命令来启动数据库,当然启动MySQL实例的方法还有很多,在各种平台下的方式可能又会有所不同. >> 当启动实例时,MySQL数据库会去读取配置文件,根据配置文件的参数来启动数据库实例.这与Oracle的参数文件(spfile)相似,不同的是,Oracle中如果没有参数文件,在启动实例时会提示找不到该参数文件,数据库启动失败.而在MySQL数…
在这我们将关系模型简单理解为 Table 和 SQL 语句,那么问题变为如何在 KV 结构上保存 Table 以及如何在 KV 结构上运行 SQL 语句. 假设我们有这样一个表的定义: CREATE TABLE User { ID int, Name varchar(20), Role varchar(20), Age int, PRIMARY KEY (ID), Key idxAge (age) }; SQL 和 KV 结构之间存在巨大的区别,那么如何能够方便高效地进行映射,就成为一个很重要的…
Mysql技术内幕——InnoDB存储引擎 http://jingyan.baidu.com/article/fedf07377c493f35ac89770c.html 一.mysql体系结构和存储引擎 1.1.数据库和实例的区别 数据库:物理操作系统或其他形式文件类型的集合.在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件. 数据库实例:由数据库后台进程/线程以及一个共享内存区组成.数据库实例才是真正用来操作数据库文件的. mysql数据库是单进程多线程的程序,与sql…
续 2008技术内幕:T-SQL语言基础 单表查询摘记 第三章 联接查询 Microsoft SQL Server 2008 支持四种表运算符 join(ANSI标准).apply(T-SQL扩展).pivot(T-SQL扩展).unpivot(T-SQL扩展). (ANSI SQL是美国国家标准学会(ANSI) 对SQL进行规范化后的国际标准SQL语言,T-SQL是Microsoft SQL Server基于ANSI SQL做了一些扩展形成的专用SQL语言.) join表运算符对两个输入表进行…
这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLFundamentals2008 ,官网给出的连接是这个(貌似有的要穿墙), 冠军也有一份. 第一章 T-SQL查询和编程基础 SQL (Structured Query Language) 为查询和管理关系型数据库管理系统(RDBMS--Relational Database Management System)中的数据而专门设计的一种标准语言. RDBMS是…
MYSQL 技术内幕 Mysql体系 连接池组件 管理服务和工具 SQL接口 查询分析器 优化器 缓冲 插件式存储引擎 物理文件 存储引擎 InnoDB(默认引擎) 支持事务 行锁设计 多版本并发控制,4种隔离级别 next-key locking 插入缓存 二次写 自适应哈希索引 预读 聚集 高可用 高性能 高可拓展 MyISAM 不支持事务 表锁设计.全文索引 缓冲池只缓存索引文件 Maria 设计用来取代MyISAM的 支持缓存数据和索引文件,应用了行锁设计,提供了MVCC 支持事务和非事…
相信大家看过无数的MySQL调优经验贴了,会告诉你各种调优手段,如: 避免 select *: join字段走索引: 慎用in和not in,用exists取代in: 避免在where子句中对字段进行函数操作: 尽量避免更新聚集索引: group by如果不需要排序,手动加上 order by null: join选择小表作为驱动表: order by字段尽量走索引... 其中有些手段也许跟随者MySQL版本的升级过时了.我们真的需要背这些调优手段吗?我觉得是没有必要的,在掌握MySQL存储架构…
前面有多篇文章介绍过MySQL InnoDB的相关知识,今天我们要更深入一些,看看它们的内部原理和机制是如何实现的. 一.内存管理 我们知道,MySQl是一个存储系统,数据最后都写在磁盘上.我们以前也提到过,磁盘的速度特别是大容量的磁盘受磁头臂的影响,速度相对内存慢很多.所以Innodb实现了自己的缓存机制. 首先我们先看下Innodb对内存是如何使用和划分的,然后我们再看看它是如何保存热数据的. 1.主要模块和组成 (1) Buffer Pool 预分配的内存池 (2) Page Buffer…
自7月份换工作以来,期间一直在学习MySQL的相关知识,听了一些视频课,但是一直好奇那些讲师的知识是从哪里学习的.于是想着从书籍中找答案.毕竟一直 看视频也不是办法,不能形成自己的知识.于是想着看书汲取知识,看了几本MySQL的相关书籍,包括<深入浅出Mysql><高性能Mysql><Mysql技术内幕>,发现那些讲 师讲的内容确实都在书上有出现过,于是确信看书才是正确的汲取知识方式.本片主要记录了Mysql的锁机制的学习. 1.什么是锁 锁是计算机协调多个进程或线程并…
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库的物理布局 数据库在物理上由数据文件和事务日志文件组成,每个数据库必须至少有一个数据文件和一个日志文件. (1)数据文件用于保存数据库对象数据.数据库必须至少有一个主文件组(Primary),而用户定义的文件组则是可选的.Primary文件组包括 主数据文件(.mdf),以及数据库的系统目录(cat…
题记:写代码已经有2年了,学到了很多知识,但是没有一个好习惯去记录,去分享,好多知识点都会忘记,所以从今天开始学着像大牛一样去记录自己经历项目的点点滴滴,先从最近读<Mysql技术内幕>开始吧,写一个完整的读书笔记吧:废话不多说了,Let's go! 哈哈...     做为一个程序员来说,都要和数据库打交道,不管是关系型的(SQL Server.MySql.Oracle等),还是非关系型的(MongoDB等);我觉得只要使用过或者了解过,大家或多或少的都掌握了SQL的术语和基本概念,例如:数…
阿里巴巴集团技术丛书 深入分析Java Web技术内幕(修订版)(阿里巴巴集团技术丛书.技术大牛范禹.玉伯.毕玄联合力荐!大型互联网公司开发应用实践!) 许令波 著   ISBN 978-7-121-23293-0 2014年8月出版 定价:79.00元 464页 16开 编辑推荐 让读者知其然,并知其所以然,是<深入分析Java Web技术内幕(修订版)>一书最大的特色. 作者来自淘宝技术一线,亲历了淘宝网PV从1亿到10亿的发展历程,直接经历了在这个过程中技术的不断突破.飞跃等变迁,并积累…
原文:SQLServer 2008 技术内幕--T-SQL 查询 笔记 1.SQL编程有许多独特之处,如:面向集合的思维方式.查询元素的逻辑处理顺序.三值逻辑.如果不掌握这些知识就开始用SQL编程,得到的将是冗余的.性能低下的代码,而且难以维护. 2.在SQLServer中负责生成实际工作计划(执行计划)的组件是:查询优化器(query optimizer).只有在确保结果集正确的前提下,优化器才会走捷径.明确区分查询的逻辑处理和物理处理是非常重要的. 3.逻辑查询的各个阶段: (5) SELE…
MySql技术内幕之MySQL入门(2) 接上一篇. mysql> source create_member.sql; # 创建member表 Query OK, 0 rows affected, 1 warning (0.00 sec) Query OK, 0 rows affected (0.26 sec) mysql> source insert_member.sql; # 插入member表数据 Query OK, 0 rows affected (0.00 sec) Query OK…
任何一个复杂的系统,用户感知到的都只是冰山一角,数据库也不例外. 前两篇文章介绍了 TiKV.TiDB 的基本概念以及一些核心功能的实现原理,这两个组件一个负责 KV 存储,一个负责 SQL 引擎,都是大家看得见的东西.在这两个组件的后面,还有一个叫做 PD(Placement Driver)的组件,虽然不直接和业务接触,但是这个组件是整个集群的核心,负责全局元信息的存储以及 TiKV 集群负载均衡调度. 本篇文章介绍一下这个神秘的模块.这部分比较复杂,很多东西大家平时不会想到,也很少在其他文章…