MsSQL入门03

MySQL数据类型

  MySQL中存的是数据,只要是数据,我们就会规定数据的类型,在表的字段中规定了使用的是某个数据类型,那么在插入的数据中就要使用对应的数据类型,并且遵守数据类型的长度要求


 

整型

MySQL数据类型    所占字节    范围值

tinyint                  1字节      -128~127

smallint         2字节      -32768~32767

mediumint       3字节      -8388608~8388607

int           4字节      -2147483648~2147483647

bigint         8字节      +-9.22*10的18次方


 

浮点类型

MySQL数据类型    所占字节             范围值

float(m,d)        4字节      单精度浮点型,m总个数,d小数位

double(m,d)       8字节      双进度浮点型,m总个数,d小数位

decimal(m,d)            decimal是存储为字符串的浮点数


字符类型

MySQL数据类型    所占字节      范围值

char          0-255字节     定长字符串

varchar         0-255字节     变长字符串

tinyblob         0-255字节    不超过255个字符的二级制字符串

tinytext         0-255字节      短文本字符串

blob          0-65535字节    二进制形式的长文本数据

text          0-65535字节    长文本数据

mediumblob      0-16777215字节   二进制形式的中等长度文本数据

mediumtext      0-15777215字节     中等长度文本数据

longgblob       0-4294967295字节  二进制形式的极大文本数据

longtext        0-4294967295字节  极大文本数据

varbinary(m)                     允许长度0-M个字节的定长字节符值之的长度+1个字节

binary(m)        M        允许长度0-M个字节的定长字节符串


 

时间类型

MySQL数据类型      所占字节      范围值

date             3字节      日期,格式:2014-xx-xx

time            3字节      时间,格式:09:22:21

datetime          8字节      日期时间 格式:2014-09-21 20:32:31

timestamp          4字节      自动存储记录修改的时间

year             1字节      年份


复合类型

MySQL数据类型      说明          举例

set            集合类型        set("member","member2"....."member64")

enum           枚举类型        enum ("member","member2"....."member65535")

一个enum类型只允许从一个集合中取得一个值,而set类型允许从一个集合中国取得任意多个值


 

二.MySQL字符集

字符集      说明             字节长度

ASCII      美国标准信息交换代码            单字节

GBK         汉字内码扩展规范       双字节

unicode      万国码                4字节

utf-8       unicode的可变长度字符编码  1到6个字节


ASCII

ASCII码使用指定的7位或8位二进制数组合来表示128或者256中可能的字符,标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0-9标点符号,以及在美式英语中使用的特殊控制字符.

其中:

  0-31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:

LF(换行),CR(回车),FF(换页),DEL(删除),BS(退格),BEL(响铃)等,通信专用字符:SOH(文头),EOT(文尾),ACK(确认)等ASCII值为8,9,10,13分别转换为退格,制表,换行,和回车字符.他们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响,

23~126(共95)个是字符(32 是空格),其中48~57是0到9十个阿拉伯数字

60~90为26个大写英文字母,97~122是26个小写英文字母,其余为一些标点符号,运算符号等


GBK

GBK向下与GB2312编码兼容,是中华人民共和国定义的汉字计算机编码规范,早期版本为GB2312


Unicode

unicode(统一码,万国码,单一码)unicode是国际组织规定的可以容纳世界上所有文字和符号的字符编码方案,可以满足跨语言,跨平台进行文本转换,处理的要求


UTF-8

是一种针对Unicode的可变长度字符编码,也是玩过吗,因为UNICODE比ASCII占用大一倍的空间而对ASCII来说高字节的0对他毫无用处,为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UFT(Universal Transformation Format)


实际工作中要使用的编码

gbk_chinese_ci   简体中文,不区分大小写

utf8_general_cl    unicode多语言,不区分大小写

注意:

mysal再写utf-8的时候写的是utf8,没有中横线


 

二.MySQL索引 

一、MySQL的索引类型

  普通索引:最基本的索引,它没有任何限制

  唯一索引:某一行启用了唯一索引则不准许这一列的行数据中有重复的值。针对这一列的每一行数据都要求是唯一的

  主键索引:它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引,常用于用户ID。类似于书中的页码

  全文索引:对于需要全局搜索的数据,进行全文索引


 

普通索引

基本语法 :alter table 表 add index(字段)

示例 alter table money ADD index(username);

为money表的username字段增加索引

唯一索引

语法: alter table 表 add unique(字段)

eg:   alter table money add unque (email);

ps:    为money表的email增加唯一索引

全文索引

语法:  alter table 表 add fulltext(字段)

eg: alter table  money add fulltext(content);

ps:   为money表的conten字段增加唯一索引

主键索引

语法:    alter table 表 add primary key(字段)

eg:    alter table money add primary key(id);

ps:    为money表的id字段增加主键索引

 

创建表时也可以声明索引,创建表时可以在创建表语句后面加上对应的类型即可声明索引:

primary key(字段)

index[索引名](字段)

fulltex[索引名](字段)

unique[索引名](字段)

注:中括号中的索引名,代表可选.

整体示例如下:

CREATE TABLE test (
     id INT NOT NULL , 
     username VARCHAR(20) NOT NULL , 
     password INT NOT NULL , 
     content VARCHAR(20) , 
     PRIMARY KEY (id), 
     INDEX pw (password), 
     UNIQUE (username),
     FULLTEXT (content)
 ) ENGINE = InnoDB;

posted @ 2020-09-27 14:43  阿澈  阅读(122)  评论(0)    收藏  举报