字符串 列属性:空 描述 默认值 主键 自增长 唯一键

中文乱码问题


设置服务器对客户端的字符集,可以使用快捷方式 set names 字符集


例如: setnames gbk


相当于同时设置了  character_set_client


character_set_results


character_set_connection


校对集问题


校对集:数据比较方式有三种


_bin:binary 二进制比较  就是取出二进制,一位一位的比较,区分大小写


_cs:case sensitive 大小写敏感,不区分大小写


查看数据库所支持的校对集 show collation


校对集应用


使用utf8 的_bin 和 _ci来验证不同校对集的效果


根据某个字段进行排序 order by 字段名【asc/desc】


数据类型


数据类型(列类型): 对数据进行头一的分类,从系统的角度出发 为了能够使用统一的方式进行管理,更好的利用有限的空间


SQL中将数据类型分为三类


数值类型


字符串类型


时间日期类型


数值型


整数型: 存放整型数据


tinyint 迷你整型 使用一个字节存储,表示的状态多为256种


smallint 小整型 使用两个字节存储,表示的状态最多有65536种


mediumint 中整型 使用三个字节存储


int 标准整型,使用四个字节存储


小数型: 带有小数点或者番位超出整型的数值类型


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


定点型:小数点固定,精度固定,不会丢失精度


时间日期类型


datatime : 时间日期 格式是YYYY-mm-dd


HH:ii:ss 表示的范围是从1000到9999年,有0 值(0000-00-00 00:00:00)


data:日期  就是datetime中的date部分


time时间(段)指定的莫哥区间之间,比如-时间到+时间,或者过去的莫哥时间到将来的某个时间


timestamp 时间戳 但并不是时间戳,只是从1970年开始的,YYYY-mm-dd HH:ii:ss格式与datetime完全一致


year 年份 有两种形式 year(2)和year(4)


字符串类型


分为 char varchar text blob enumset


    char (定长字符串):磁盘(二维表)在定义结构的时候就已经确定了最终数据的存储长度


char(L):L代表Length 可以存储的商都 单位为字符,只知道啊长度值可以为255


varchar(变长字符串) 在分配空间的时间,按照最大的空间分配 ,但是实际上最终用来多少,是根据具体的数据来确定


varchar(L): L表示自渎长度,理论长度是65536哥字符 但是会多出1到2 哥字节,来确定存储的实际长度


eg: 姓名 收获地址  邮箱  都是不固定长度 都使用变长


文本字符串:如果数据量非常大,通常超过255个字符就会使用文本字符串


文本字符串根据存储的数据的格式分为


text 存储文字,存储二进制数据的文件路径


blob 存储二进制数据(通常不用)


枚举字符串(enum)事先吧所有可能出现的结果都设计好,实际上存储的数据是规定好的数据中的一个


枚举的使用方式


enum(可能出现的元素列表)


例如  enum(男,女,不男不女,妖怪,保密)


集合字符串:跟枚举类似,实际存储的是数值,而不是字符串,但集合是多选


集合使用方式


set(元素列表)


可以使用元素列表中的多个元素,使用逗号分隔


MySQL记录长度


MySQL中规定:任何一条记录最长不超过65535个字节


varchar永远达不到理论值


utf8下carchar的实际顶配21844字符


GBK下varchar的实际顶配32766字符


列属性


列属性:真正约束字段的是数据类型,但是这种约束狠单一,需要有一些额外的约束,来更加保证数据的合法性,这就需要列属性


列属性包括 : NULL/NOT NULL , default , Primary key  , unique key , auto_increment , comment


空属性 包括两个值


NULL(默认)


NOT NULL (不为空)


列描述:


comment 描述,没有实际含义,是专门用来描述字段, 会根据表创建语句保存,用来给程序员(数据库管理员)来进行来解


默认值:


default,某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值


主键: primary key


定义:主要的键,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里的数据,不能重复,


增加主键:


方案一 在创建表时,直接在字段之后,跟primary key 关键字(主键本身不允许为空)


方案二 在创建表的时候,在所有的字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段座位主键,可以是符合主键


方案三 当表已经创建好之后,额外追加主键,可以通过修改表字段属性,也可以直接追加


alter tabel 表名 add primary key (字段列表)


主键约束


主键对应的字段中的数据不允许重复,一旦重复,数据操作(增和改)失败


更新主键&删除主键


alter table 表名 drop primary key


主键分类 分为业务主键  逻辑主键


create table my_student(


id int primary key auto_increment comment' 逻辑主键:自增长'


        number char(10)not null comment'学号'


        name varchar(10)not  null  )


自动增长:


auto_increment,当对应的字段,不给值,或给默认值、或给NULL值,会自动的被系统触发,系统会从当前字段中已有的最大值基础上,再进行+1操作,得到一个新的不同的数据


特点:


任何一个字段要做自增长,前提必须本身就是一个索引


自增长字段必须是数字,而且事情整型


一张表最多只能有一个自增长


修改自增长


alter table 表名 auto_increment = 值


查看自增长对应的变量:


show variables like


'auto_increnment%'


    删除自增长: alter tabel 表名 modify 字段  类型


唯一键(umique key)


默认允许自动为空 , 而且可以多个为空


增加唯一键


方案一  在创建表的时候,字段之后直接跟unique/unique key


方案二  在所有的字段之后增加 unique key(字段列表)


方案三  在创建表之后增加唯一键


更新唯一键&删除唯一键


alter table 表名 drop index 索引名字


索引: 系统根据某种算法,开奖已有的数据,或未来可能新增的数据,单独建立一个文件,文件能够实现快速的匹配数据,并且能够快速的找到对应表中的记录


索引的意义/好处:


提升查询数据的效率


约束数据的有效性 唯一性等


MySQL中提供了多种索引


主键索引 primary key


唯一索引 unique key


全文索引 fulltext index


普通索引 index


创建


create【unique】index 索引名on 表名(字段名(长度))


alter 表名 add 【unique】 index 【索引名】on(字段名(长度))


删除


drop index 【索引名】on 表名


查看  show indexfrom 表名\G


使用alter命名添加数据表的索引


alter table 表名 add primary key (字段列表)添加一个主键        ,意味着索引值必须是唯一且不为空


alter table 表名 add unique 索引名(字段列表)创建索引值必须是唯一的 允许NULL 且 NULL可能出现多次


alter table 表名 add fulltext 索引名 (字段列表) 添加全文索引


alter table 表名 add index 索引名 (字段列表) 添加普通索引,索引值可能出现多次

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容