mysql 数据库高级知识
一、数据库基础知识
1、为什么修改 Mysql
你需要一种新的数据库服务器或客户端功能,自行定制,开源mysql数据库的魅力,可以自行定制。
学习这东西的思路就是 反复思考源码。
如果知道系统的工作原理肯定是好事,可以帮你把服务器优化做到最好。
2、存储引擎
Mysql 独到之处 — 插件式存储引擎 ,mysql存储类别粒度小到每个表,用户可以最大程度的利用各种引擎的优点、避免缺点。
3、数据库的分类
面向对象型、关系型、对象关系型
4、关系型数据库系统架构
RDBS(Relational DataBase Server),关系数据库服务器。
RDBMS 作为存储和获取数据功能集合,支持大量用户同时
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件

二、mysql 数据类型
数值类型 、日期/时间类型、字符串类型
指定数据的宽度
id int (11)
id int 后面 数字为 11,表示该数据类型指定显示的宽度为。
数值小于指定的宽度可以用空格填充,大于显示的宽度,超过指定的类型,数据还是可以插入,而且能够显示出来。
显示宽度只用于显示,并不能限制取值范围和占用空间,如:int (3) 会占用4个字节的存储空间。并且允许的最大值也不会是 999 ,而是 int 整型允许的最大值
使用 show 查看错误信息
show warnings
Mysql 允许不严格的语法
任何标点符号可以作为日期部分之间的间隔符。
例如: “98-11-31” 、”98/11/31” 、”98@11@31”等价的,可以插入到数据库。
如何选择数据类型
为了优化存储,提高数据库性能,任何情况下都应该使用最精确的类型。
Mysql 内部运算符号
算术运算符、比较运算符、逻辑运算符、位操作运算符
算术运算符操作
创建表
create table testAdd (num int)
向字段中添加 64
insert into testAdd value( 64 )
进行 num 进行加法和减法运算
select num , num + 10 , num -3 +5 , num +36.5 from teatAdd

比较运算符
一个比较运算符的结果是 1、0 或者 null ,比较运算符经常在 select 的查询条件子句中使用。用来查询满足指定条件的记录。
等于运算符
select 1=0,'2'=2,2=2,null=null

数值比较有如下规则
1、若有一个或者两个参数为 null ,则比较运算结果为 null
2、若同一个比较运算中两个参数都是字符串,则按字符串比较
3、若两个参数均为正数,则按正数进行比较
4、若字符串和数字进行相等判断,则 MySQL 可以自动将字符串转为数字。
安全等于运算符
两个操作数均为 null ,返回值为 1 ,而不是 null
当一个操作数为 null ,其返回值为 0 ,而不是 null
不等于运算符
<> 或者 != 用于判断数字、字符串、表达式不相等的判断。如果不相等,返回值为 1; 如果相等,返回值为 0
select 'good'<>'god' ,1<>2, 4 != 4 ,5.5 != 5;

小于、小于等于、大于、大于等于
其实类似
select 'good'>'god',2>1,4>4,5.5>5;
IS NULL 运算符 ,IS NOT NULL 运算符
select null is null , 10 is null ,ISNULL(12)
between and 运算符
A between B and C
A大于等于 B 小于等于 C
select 4 between 3 and 6, 5 between 5 and 7, 7 between 9 and 12;

LEAST 运算符(最小运算)
在有两个或者多个参数的情况下,返回最小值
假如任意一个自变量为 null ,则 LEAST( ) 返回值为 null,
若参数是整数或者浮点数时,LEAST 返回最小值,
若参数为字符串,返回字符串比较靠前的字母。
select least(2,0) ,least(20,3,2,10),least(10,null)

select least(2,3,4) ,least(2,3,null) ,least('a','b','c','d')
GREATEST(value1,value2,…….)
当有两个或者多个参数时,返回值为最大值。
假如任意一个自变量为 null ,则 greatest() 返回值为 null
select greatest(0,2,4) ,greatest(20.1,30.4,50.3),
greatest(10,null)
IN 、 NOT IN 运算符
IN 运算符用来判断操作数是否为 IN 列表中的其中一个值,如果是,返回值为 1 ; 否者返回 0
IN 运算符用来判断操作数是否为 IN 列表中的其中一个值,如果不是,返回值为 1 ; 否者返回 0
select 2 in (1,2,3,'thks') ,'ths' in ('thks',2,3,4)

select 2 not in (1,2,3,'thks') ,'ths' not in ('thks',2,3,4)

使用 like 运算符
A like 匹配条件
如果 A 满足匹配条件,则返回值为 1(true)
如果不匹配,则返回值为 0 (false)
like 两种通用的运算符
“%” , 匹配任何数目的字符,甚至包括 零字符
“_” ,只能匹配一个字符

浙公网安备 33010602011771号