MySQL学习笔记(二)

— 回顾

八个简短赏心悦目的favicon是网站、博客的体面,在标签浏览器(我们平昔用的不外乎
IE6 之外基本都以)中它能够比 title
更分明,在区别网页间切换的时候它正是导航标识。favicon 能够是
logo,也足以是 logo 一定程度上的简要,但是在 16×16
像素的画布上创作比画二个不受约束的 logo 要难得多。大家先来看一些显赫的
favicon:
图片 1 以某字母、汉字为基点
图片 2 以 logo 等简单图案为主体
图片 3 谷歌 的有些服务
这么些图标都11分具有代表性,令人看了随后留下深远的影象。因此大家看出多个通用的
favicon 设计路线:

数据库基础知识:

  1. 取首字母,用 logo 配色、图案来修饰它。
    比如 Skype 的 S 图案,就是自小编完整
    logo
    的精简。
    而汉字有着方块字的天然优势,2个中中原人民共和国字所含有的音信量又远远高于一个字母,我挖网运用类似于 digg
    配色的“挖”字,把网站类型、功效都浮未来细微的图标里了。
  2. 利用二个不难的图标。
    地方的苹果图标不难到唯有灰湖绿和反动,但它用 Mac
    上海高校规模的色彩搭配勾出了3个清晰的苹果图案。
    其三排我专门列出了 谷歌(Google) 连串服务的 favicon,像 Gmail, Calendar,
    Reader, Groups, 都很好地在图标中表述了一个新闻:它是干吗用的。
    其次排最终2个是经典桌面能源站
    favicon,看似简单的1个深褐绿按钮,却拥有不错的影子,在标签栏上的显得效果尤其好。
    图片 4

1.关系型数据库(磁盘),建立在关系模型上的数据库,数据结构(二维表),浪费空间。

再看有的告负的例证:

操作数据的命令集合:SQL(DDL,DML[DQL]和DCL)

图片 5meebo
本来是擅长于 UI 设计的,不清楚怎么 favicon
这么逊:留白太多,显得单薄。如若使用 meebo rooms
的几个圈圈
相应会好一点。其它多少个沉重的标题是选择了全白背景而不是晶莹剔透背景,在地点那样不是反动的标签栏上,显出个白框很无耻。

完整性约束:表内和表之间(实体)

图片 6假使你对腾讯没有其余问询,能从那个图标中拿走怎么样消息呢?什么都不会有。本来基本上能用的企鹅概略完全不能看清。配色是绝非特色的红孔雀蓝黄。圆形的图标还非要用
256 色,导致边缘出现显著锯齿。

mysql
关系型数据库:c/s结构软件(连接认证,发送SQL指令,服务器处理指令回到结果,客户端接收结果分析结果)

图片 7本来作者照旧很欣赏搜狐从前那几个狐狸尾巴的
logo
的,今后以此呢,你就是脚印吧,看不出来是怎么脚印,若是有人看成1只羽球笔者绝寻常。完全单色,而且同样没有反锯齿,给人的感觉到是含含糊糊而就,辱没了一家成功门户网站应有的气派。

mysql服务端对象:DBMS->Datebase->Table->田野s

二、

sql 基本操作:库操作,表操作(字段)和数码操作

说说最广泛的单字母/汉字构成的 favicon。上边那个除了比较旺盛的
W,挖,易,其它都比不上档次做了修饰,而圆角方框是最广泛的措施。像
M,B,西,是相仿阴文件打字与印刷章的风骨,好处是比搜狗 S
那样的阳文少一道边框线;而且既能够做成 B 那样端端正正的,也得以像 M
和西那样内外相通。

字符集难点:中文数据难点

图片 8
如出一辙是阴文件打字与印刷章,豆瓣的 favicon
就比西祠差很多了:撑得太满,且字体不对劲。豆这么些字上下都有分其他横,一一点都不小心就把它们弄丢了。第1眼小编真的看成了“二头”。前面多少个图标在字体、颜色
上也都各有特色,和各自网站风格很搭配。阴文件打印章是最简便的体裁,只要求容易的颜色、字体搭配就能够接到很好的成效。

变动服务器接收数据的字符集:chatacter_set_client

上面是一个阴文件打字与印刷章的实例,就算用 Photoshop 的话会用到圆角矩形工具
(U),文字工具 (T),图层样式,裁切工具 (C)。
图片 9

改变服务器重回数据的字符集:character_set_results

再有一种用得相比多的是镂空字体,有点类似于华文彩云,那是另一种让字符饱满起来的点子,很好的例子便是最上边的“”。

飞速格局:set names 字符集(三件事)

也给三个讨论文字的实例,
那么些做起来更简单,选好字体,在图层样式里描边并视情状更改填充光滑度,裁切到
16×16,存为 png,用图标工具存为带 α-channel 的图标就能够了。
图片 10

web乱码难点:浏览器解析,php处理(本三步跳件),数据库处理

三、

校队集难题:相比较规则:_bin , _cs和_ci

用字符来做 favicon
的法门,那是一个走后门。前几天我们来探视图片组成的图标,举几个祥和做过的例子,抛抛砖吧。

— 数据类型(列类型)

图片 11

所谓的数据类型:对数码举办联合的归类,从系统的角度出发为了能够使用统一的章程展开管理更好的应用有限的半空中。

这是自笔者的 Firefox
搜索框里面的检索引擎列表,那么些招来有的是从 Mycroft
找的,有的是自个儿生成的,可是图标非常不佳很无耻,被笔者联合加工了一下(那也算
favicon 吧,只是别人看不到罢了)。上边把 png 图标单独列出,可另存。

SQL 准将数据类型分成三大类:数值类型,字符串类型和岁月档次。

图片 12
射手网字幕搜索,弓箭图案
图片 13
迅雷黄狗,画了个简单的箭头
图片 14
YouTube, 当然是播放按钮啦
图片 15 Firefox
普通话扩充站
,一块拼图
图片 16
丁丁地图,来自 Office 剪贴画
图片 17图片 18图片 19图片 20图片 21图片 22图片 23
那多少个是原 favicon 的再加工
图片 24图片 25图片 26
那四个用了有关图标来取代

图片 27


一.数值型

还有前段时间画给煎蛋的
favicon
:大旨很强烈,正是画二头煎蛋嘛。在
Photoshop 里用四个钢笔概略加上样式得到:

数值型数据:都是数值,系统将数值型分为整数和小数型

图片 28
一开首本身把蛋白边缘画太淡了,缩到 16×16
之后根本看不清,只可以重新煎得焦一点。同理可得要调动很频仍,满意截至:)下边能收看它在橄榄黑和土黄的背景下都有不错的遵从:

1.整数型

图片 29

寄存整型数据:再SQL中因为更多着想什么节约磁盘空间,所以系统将整型分为5类


Tinyint :Mini整型,使用八个字节存储,表示的情景最多位257个(常用)

顺手说说自家要好的 favicon: 不难的 f+i 字母组合,在 16×16
下辨识度还足以。后来在别的地点必要用大学一年级点的头像,为了统一就依然用了它,然而在人间重新绘制了域名文字。我的
BSP 优博网恰巧有了友好的 favicon
上传插件
,favicon
映射到根目录下,比原先本人添加 header 代码好多了,那样也帮忙了 IE6 和
马克斯thon. 前些天终于在 Maxthon 里看看了它:

smallint:小整形,使用二个字节存款和储蓄,表示的情景最多位65536种

图片 30

mediumint:中整型,使用三个字节存款和储蓄,表示


int:标准整型,使用伍个字节存款和储蓄(常用)

要团结小说一个图标是件很费精神的事体,有时候我们也要借鉴甚至拿来主义: 这里
和 这里
有众多参照,尤其是前者里面都以很科学的宏图小说,作者就不转过来了,拿多少个点评一下:

bigint:大整型,使用七个字节存款和储蓄

http://aurea.es/ico/favicon.ico
双色带一点渐变,还有活泼的倾斜角,很有大家之气。网站顶部的导航标签也是这两个颜色,看上去非常舒服。
http://www.evozon.comvozon.ico
一个中心对称的眼睛,来自他家 logo 当中的字母o, 左侧的倾角刚好和前一个字母v 契合,难得的 logo 佳作。
http://www.sumagency.com/favicon.ico
鲜艳的配色总是很吸引眼球,美中不足的是网站首页的美工很一般。
http://www.illustrationclass.com/favicon.ico
看域名就是一个设计网站,一个小巧的铅笔头,传达了足够的含义。首页上还能找到这个图案的多种变化,有兴趣可以去看看。
http://www.ctrip.com/favicon.ico
携程的 favicon 和上面几个不同的是它的背景完全填充,颜色很整洁,图标同样精简自 logo,传达便捷、快速之意。

图片 31

四、

例:创立一张整型表

先是搞通晓多个概念:
256 色:图像中最多含有 256 种颜色,且唯有 1位透明通道,换句话说,1个像素唯有透明和不透明二种情状。常见的事例是 GIF
和 PNG-8。
带 α-channel (8人透明通道)
的真彩色:除了颜色数的进步外,最重庆大学的是引入了半晶莹剔透,一个像素能够有
5人(2^8=256)透明状态。常见的事例是 PNG-24。

mysql> create
table my_int(int_1 tinyint, int_2smallint, init_3int) charset
utf8;

1个图标文件(.ico)
能够涵盖各个尺码和格式的映衬,用来适配各个展现须求。以Google Desktop 的
favicon

为例,用 图标工具
打开它能够看出那两种格式都有:

图片 32

图片 33

例:输入数据:只可以插入整型,范围内的整型

右手 PNG
图标里的像素有很多样透明状态,它能够更好地抗锯齿,更好地适配不一样颜色的背景,而左侧的
GIF 格式不大概兼顾那两地点:

mysql> insert
into my_int values (100,100,100,100); #实惠数据

图片 34

mysql> insert
into my_int values (‘a’,’b’,’199′,’f’); #失效数据,类型限定

PNG 相对 GIF 来讲没有缺陷,为何他们会并存?因为很久在此以前 5个人透明并不被普遍支持,以往不可同日而语了,制作图标完全没有须求再带上 256 色
GIF。尤其是上海体育场面那样带有曲线边缘的图标。

mysql> insert
into my_int values (255,1000,10000,100000); #超出范围

打听了格式,再来看看要点:

图片 35

  • 绘图的时候要在大学一年级点的画布上画,写字也是。满足了再压缩到
    16×16,或许交给 图标工具
    去缩小。
  • 缩放的时候要用重新总结像素的法子,不要用接近像素的办法
  • 为了图标文件不至于太大,能够只包蕴 16×16, 8 位透明真彩色
    这一种格式。32×32 大概更高的尺码在建立 .url
    连忙格局图标时会用到,依照事态可以添加。

SQL中的数值类型全体都是暗中认可有记号:分正负,但有时候须求利用无符号数据:须要给多少限定:int unsigned; #无符号,从0开始

例:给表扩充三个无符号类型

mysql> alter
table my_int add int_5 tinyint unsigned;

图片 36

例:插入数据

mysql> insert
into my_int values(127,1000,10000,100000,255);

图片 37

查看表结构的时候,发现各样字段的数据类型之后都自带2个括号里面有数值,这几个是体现上涨幅度,但它没有任何意义只是报告用户能够显得的格局而已;实际上用户是足以操纵的,那种操纵不会转移多少本人尺寸;

图片 38

例:mysql> alter table my_int add int_6
tinyint(1) unsigned; #钦赐显示上涨幅度为1

图片 39

表达:展现上涨幅度的意义是在当数码不够展现上涨幅度的时候,会活动让多少变成对应的显示上涨幅度;平日必要搭配二个前导0来增加幅度,不过值大小不变。zerofill(零填充):零填充会导致数据自动成为无符号

例:mysql> alter table my_int add int_7
tinyint (2) zerofill; #表示显示上涨幅度为2,0填充

图片 40

例:mysql> insert into my_int
values(1,1,1,1,1,1,1); #零填充+展现涨幅的效果

mysql> insert
into my_int values(100,100,100,100,100,100,100);

图片 41

零填充的含义(展现上涨幅度):保险数据格式

2.小数型

小数型:带有小数点可能限制超出整型,SQL少校小数型分成二种:浮点型和定点型

浮点型:小数点浮动,精度有限,而且会丢掉精度

定点型:小树点固定,精度是定位的,不会丢掉精度

2.1浮点型

浮点型数据是一种精度型数据:超出钦点范围之后,会丢掉精度(自动四舍五入)

Float
: 单精度,占用七个字节存储数据,精度范围大约为几人左右

Double: 双精度,占用7个字节存款和储蓄数据,精度方位大约为1五位左右

图片 42

例:创制浮点数表

浮点数的利用方法:直接float 表示尚未小数部分;float(M,D):M代表总委员长度,D代表小数部分长度,整数部分长度为 M-D

mysql> create
table my_float (f1 float,f2 float(10,2),f3 float(6,2)) charset
utf8;

图片 43

例:插入符合条件数据,能够是一贯小数也得以是科学计数法

mysql> inster
into my_float values(1000.10,1000.10,1000.10); #符合条件

mysql> inster
into my_float values(1234567890,12345678.90,1234.56); #符合条件

mysql> inster
into my_float values(9999999999,99999999.99,9999.99); #最大值

mysql> inster
into my_float values(3e38,3.01e7,1234.56); #符合条件

图片 44

浮点型数据的插入:整数有的是不可能超过长度的,然则小数部分能够超过长度(系统会自行四舍五入)

例:超出长度插入数据

mysql> inster
into my_float values(123456,1234.12345678,123.9876543);#小数部分是足以的

mysql> inster into my_float
values(123456,1234.12,123456.56); #平头有些过量

图片 45

结果:浮点数一定会开始展览四舍五入(超出精度范围):浮点数要是是因为系统进位导致整数超出钦点的尺寸那么系统也同意创立

图片 46

2.2 定点型

定点型:相对保险整数部分不会被四舍五入(不会丢掉精度),小数部分有大概(理论小数部分也不会丢掉)

图片 47

创建定点数表

mysql> create
table my_decimal(f1 float(10,2),d1 decimal(10,2)) charset utf8;

图片 48

插入数据:定点数的平尾部分一定不能超过长度(进位不能),小数部分的尺寸能够随意超出(系统活动四舍五入)

mysql> inster
into my_decimal values(12345678.90,12345678.90); #可行数据

mysql> inster
into my_decimal values(1234.123456,1234.123456); #小数部分当先

图片 49

察觉有一条警告,查看警告的授命位: mysql> show warnings;

浮点数若是进位导致长度溢出是足以的,但定点数不行

mysql> insert
into my_decimal values(99999999.99,99999999.99);

mysql> insert
into my_decimal values(99999999.99,99999999.999); #进位超出范围

图片 50

查看数据

图片 51


. 时间日期类型

Datetime:时间日期,格式是 YYYY-mm-dd HH:ii:ss 表示的限量是从1000年初步到9999年,有0值:0000-00-00 00:00:00

Date:日期,就是datetime 中的date部分

Time:时间(段),内定的有些区间之间,-时间到+时间

Timestamp:时间戳,并不是时间戳,只是从一九七〇年开首的YYYY-mm-dd HH:ii:ss 格式和datetime 完全一致

Year:年份,三种表示方式,year(2)和year(4):一九〇五-2156

图片 52

开创时间日期表

mysql> create
table my_date(d1 datetime,d2 date,d3 time,d4 timestamp,d5 year) charset
utf8;

图片 53

插入数据:时间time能够是负数,而且能够是一点都不小的负数,year 能够动用几人数插入,也能够采纳三位

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’11:50:54′,’2015-9-28 11:51:08’,2015);

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-11:50:54′,’2015-9-28 11:51:08′,2015);

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-211:50:54′,’2015-9-28 11:51:08′,2015);

year 可以利用两位依旧4位

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-11:50:54′,’2015-9-28 11:51:08′,69);

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-11:50:54′,’2015-9-28 11:51:08′,70);

图片 54

提姆estramp 字段:只要当前所在的记录被更新,该字段一定会自动更新成当下岁月

修改记录

mysql> update
my_date set d1 = ‘2015-9-28 11:55:45’ where d5 = 2069;

图片 55

三.字符串类型

在SQL中,将字符串类型分成了6类:char,varchar,text,blob,enum和set

1.1 定长字符串

定长字符串:char,磁盘(二维表)在概念结构的时候,就早已规定了最后的积存长度,现在不可能更改

char(L):L
代表length,能够储存的尺寸,单位为字符,最大尺寸为255.

char(4):在 utf8 环境下,需要4 * 3 = 12 字节

1.2 变长字符串

变长字符串:varchar,在分配空间的时候,依照最大的空间分配,然则其实最终用了多少,是基于具体的数额来规定。

1.2 变长字符串

varchart(L):L
代表字符长度理论长度是65536 个字符,不过会多出1到二个字节来分明期存款款和储蓄的实际上尺寸:但是其实假设长度超越255,就既不用定长也不用变长,使用文本字符串text

varchar(10):的确存了十个汉字,utf8环境,10*3+1=31

存储了3个汉字 3*3+1=10(bytes)

定长与边长的囤积实际空间(utf8)

图片 56

何以抉择定长恐怕是变长字符串呢?

定长的磁盘空间比较浪费,但成效高;倘若数额大概鲜明长度都一样,那么就选拔定长,如:身份证,电话号,手提式有线电话机号等;

 

 

变长的磁盘空间相比较节省,然而作用低;假诺数据不可能鲜明长度(不一致数量有变化),如姓名,地址等

 

1.2 文本字符串

假定数据量一点都非常大,日常超过2伍十一个字节就会选择文本字符串

文本字符串依据存款和储蓄的数码的格式举行分类:text和blob

Text :存款和储蓄文字(二进制数据实际上都以储存路径)

Blob :存款和储蓄二进制数据(平常并非)

四:枚举字符串

枚举:enum,事先将富有或者出现的结果都设计好,实际上存款和储蓄的数码必须是规定号中的八个

枚举的选拔方式

概念:enum(或许出现的成分列表);

行使:存款和储蓄数据,只可以存储方面定义好的数据

开创枚举表:

mysql> create table my_enum(gender
enum(‘男’,’女’,’保密’)) charset utf8;

图片 57

插入数据:成效之一:规范数据,数据只好是内部的1个

mysql> insert into my_enum
values(‘男’),(‘保密’); #得力数据

mysql> insert
into my_enum values(‘male’); #荒谬数据,没有该因素

图片 58

效益二:节省存款和储蓄空间(枚举别称:单选框):枚举实际存储的是数量而不是字符串

在mysql中,系统也是自动转换数据格式的:而且基本和php一样(特别是字符串数字)

表达字段存款和储蓄的数目是数值:将数据取出来+0就能够判断出原本的数据存的到底是字符串依旧数值:如若是字符串最后结果永远为0

mysql> select gender + 0, gender from
my_enum; #将字段取出来实行+0运算

图片 59

找出了枚举成分的实际规律:依据元素现身的逐条;从1开首上马编号

图片 60

枚举原理:枚举在进行数量标准的时候系统会自动建立数字与枚举成分的对应关系(关系放到日志中):然后在开始展览数据插入的时候,系统自动将字符转换到对应的数字存款和储蓄,然后在拓展多少抓取的时候,系统自动将数值转换来对应的字符串展现。

因为枚举实际存款和储蓄的是数值所以能够直接插入数值

mysql> insert
into my_enum values (1),(2);

图片 61

五:集合字符串

汇集跟枚举很类似:实际存款和储蓄的是数值,而不是字符串(集合是多选)

聚拢使用方法

概念:set(元素列表)

采取:能够选取要素列表中的成分(七个),使用,分隔

图片 62

mysql> create table my_set(hobby
set(‘篮球’,’足球’,’乒乓球’,’羽毛球’,’排球’,’台球’,’网球’,’棒球’)) charset utf8; #集合中:每一个成分都以对应三个二进制位,被入选为1,没有则为0,组后反过来。

 

创办集合表:

图片 63

插入数据:能够行使多个成分字符串组合,有能够直接插入数值

mysql> insert into my_set
values(‘足球’,’台球’,’网球’);

mysql> insert
into my_set values(3);

图片 64

翻看集合数据

mysql> select
hobby + 0, hobby from my_set;

聚拢中每一种成分都以对应二进制位;

mysql> inster
into my_set values(255);

图片 65

集结中元素的一一没有关系,最后系统都会去匹配顺序。

颠倒成分出现的逐一

mysql> inster into my_set
values(‘网球’,’台球’,’足球’);

图片 66

会面的有力在于能够规范数据和空间,在实际上利用中功用优先,所以很少使用。

六:Mysql记录长度

Mysql
中鲜明:任何一条记下最长不能够跨越655三1一个字节,(varchar 永远达不到理论值) varchar 的其实存款和储蓄长度能完成多少需看字符集

UTF8
下 varchar 的实际顶配:21844 字符

GBK
下 varchar 的实际顶配;32766 字符

图片 67

万一想用完655三拾三个字节长度需扩展个tinyint 字段

图片 68

mysql记录着若是有其余三个字段允许为空,那么系统会自动从全数记录中保留多少个字节来存款和储蓄null(若想释放null所占有的字节,必须保证所以的字段都同意空)

图片 69

Mysql
中 text 文本字符串,不占用记录长度;额外部存款和储蓄器储,不过text文本字符串也是属于记录的一部分,一定必要占用记录中的部分长度十一个字节。(保存数据的地方和尺寸)

text 占用10个字节长度

mysql> create
table my_utf82(age tinyint not null,name varchar(21843) not
null,content text) charset utf8;

图片 70

七.列属性

列属性:真正约束字段的是数据类型,可是数据类型的自律很纯粹,因此供给有的至极的约束来充实保障数据的合法性

列属性有无数:NULL/NOT NULL,defaul,prinary key,uniquee
key,auto_increment,comment

空属性:NULL(默认的)和NOT NULL(不为空)

固然默许的,数据库基本都以字段为空,但是事实上我们尽量确定保证全部数据都不该为空:空数据没有意义;空数据尚未主意加入运算。

图片 71

创建实际案例表:班级表(名字,体育场地)

mysql> creare table my_class(name
varchar(20) not null,room varchar(20) null) charset utf8; #意味着允许为空,null不写默许正是为空

图片 72

八.列描述

列描述:comment,描述没有实际意义:是专门用来讲述字段,会依照表成立语句保存:用来给数据库管理员来拓展问询的。

创建表

mysql> create table my_teacher(name
varchar(20) not null comment ‘姓名’,money decimal(10,2) not null comment
‘工资’) charset utf8;

图片 73

九.默认值

暗中同意值:某一种数据会常常性的产出有个别具体的值,能够再一开端就钦赐好,再供给真正的多寡时,用户能够选取性的使用默许值。

默许值关键字:default

mysql> create table my_default(name
varchar(20) not null ,age tinyint unsigned default 0,gender
enum(‘男’,’女’,’保密’) default ‘男’) charset utf8;

图片 74

默许值的生效:使用,在数额实行插队时,不给改字段赋值

计划数据

mysql> insert into my_default (name)
values(‘高强’);

图片 75

想要使用默许值,能够不一定区钦赐列表;能够运用default关键字代替值

mysql> insert into my_default
values(‘范立峰’,’18,default);

图片 76