mysql

字符:

char(10)->定长、10个字符宽度。如果右侧不够,则空格补齐,取出来的时候删除空格。

varchar(10)->变长、最多10个字符

如:存姓名的时候,没必要为了那几个长度去使用varchar,使用定长去存储会提高效率!

日期时间:

Year->1字节->95||1995->【1901-2155】

Date->日期->1998-12-31->【1000-01-01->9999-12-31】

Time->时间->13:56:23->->【-838:59:59->838:59:59】

datetime->时间戳->1970-01-01 00:00:00到当前的秒数

Tip:Date  Date  datetime在insert的时候需要加上引号 、实际开发中,一般不是用这些,直接使用787657676类似于这个样子的整形来存储(其实就是以1970年0点为准,然后换算成秒数存储)。搞iOS开发的肯定遇到过

not null:

1、NULL查询不便、索引效率不高、所以实用中避免列的值为NULL

2、声明列的值为NOT NULL,并且default一个默认值

主键与自增:

主键primary key此列不重复,就能够区分每一行!

一个表中只能有一个auto_increment,而且这一列必须加上primary key索引

修改列:

alter table tableName add 列名 类型 属性... ->默认在table的最后

alter table tableName add 列名 类型 属性 after 制定列名->将增加到制定的列名后面

alter table tableName drop column 列名

alter table tableName change 列名 新名字 类型 属性...

alter table tableName modify 列名 新属性...

change可以修改列名,但是modify不能修改列明,只能修改列的属性

视图(View):

create view vgoods as select goods_name , goods_id from goods;

view又被称为虚拟表,view是sql语句的一个查询结果。

好处:

1、权限控制时可以用;如:某几个列允许用户查询,其他列不可以。

create view tmpview as select goods_name from goods;

select * from tmpview;

2、简化复杂的查询;

3、修改物理表,虚拟表一定会被修改;如果物理表完全 一 一对应着虚拟表,则修改虚拟表会映射到物理表。但是,比如虚拟表是求平均之类的,不是一一对应的,则不能修改虚拟表,因为没法确认到物理表的具体的某一个位置。

查询view有两种可能:

1、将创建view的语句和查询view的语句合并,然后直接查物理表。这种方式叫做merge

2、如果view的形成就比较复杂了,那首先查询物理表,在内存中形成一个view,然后再查询这个view。

使用merge方式:create algorithm-merge view view1 as select ... from goods;

使用temptable:create algorithm-temptable view view2 as select ... from goods;

自己搞不定就让数据库自动决定!

表\视图管理语句:

查看所有表:show tables;

查看结构:desc table/view-name;

查看建表/视图过程:show create  table/view  table/view-name;

删除表/视图:drop table table/view-name;

查看表的详细信息:show table status;加上\G会竖着显示

改表名:rename table old-name to new-name;

清空表数据:truncate;

delete和truncate的区别:

delete  from table-name where id = 2;(id是auto_increment的),下次再插入一个数据的时候,id会直接从3开始,而不会从2开始,即使id=2的已经被删掉。

truncate table-name;相当于执行了两步,首先drop掉这个table。然后又重新建立一次!

所以...自己体会

存储引擎:

Myisam:单纯的存取而已,没有什么检查之类的!

InnoDB:存取都有检查,有自己的日志!

以上两者参考燕十八的比喻!

eg:create....( ... ) engine-InnoDB default charset-utf8;

字符集乱码问题:

文本本来的字符集与展示的字符集不一致就导致了乱码!

我要存的类型是gbk/utf8:set character_set_client = gbk/utf8;

我要取数据,请返回给我gbk/utf8类型的数据:set character_set_result = gbk/utf8;

连接器不要设置比较小的字符集,不然会损失掉数据,而且是不可逆的!

如果client、result、connect都设置为同一样字符集,比如utf8,那就可以直接简写为set names utf8;

乱码的话检查四个地方:php文件类型、php mate类型(meta charset='utf-8')、创建的table的类型、有没有执行set names utf8;

校对集就是一种排序规则。

索引:

作用:

1、索引就相当于数据的目录,能快速定位数据的位置。

2、索引是有代价的,它提高了查询的速度,但是损耗了增删改的效率。

3、一般在查询比较频繁的列上加索引,而且重复率低的的列上效果更好。比如:性别,只有男、女(shit,其他的不考虑),所有就没必要加上索引。

类型:

普通索引key、唯一索引unique key、主键索引primary key、全文索引(在中文环境下无效,一般用第三方的解决方案)

索引在所有的列设置完了之后设置!


设置索引


设置索引长度


多列索引

冗余索引:

就是在某个列上存在多个索引。

索引操作:

show index from table-name \G;

alter table table-name drop index index-name;/drop index index-name on table-name;  (删除索引)

alter table table-name add index unique index-name(line-name);(增加索引)

alter table table-name add primary key (line-name);(增加主键索引,不需要索引名)

alter table table-name drop primary key;(删除主键索引)

事务:(myisam不支持事务)

特性:隔离性、原子性、一致性、持久性(一旦commit之后,就没法rollback)。

start transaction;启用事务

commit;确认

rollback;回滚

我算是知道什么是事务什么事回滚了!!

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

推荐阅读更多精彩内容

  • 正确认识数据库 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。 在2008年1月16...
    小白文_Vincent阅读 588评论 0 0
  • 第1章 初涉MySQL 1.1 MySQL文件 (1)MySQL目录结构 (2)MySQL配置向导文件(安装后配置...
    凛0_0阅读 764评论 1 0
  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 629评论 0 1
  • 数据库基础知识 数据库客户端MySQL作为数据库服务器来运行,任何满足mysql通信规范的软件都可以作为客户端来连...
    littlexjing阅读 888评论 0 2
  • ”人们很难喜欢自己做不好的事情“,因为自己做不好一件事,所以很难去喜欢它。 我对此有无比心酸的领悟,并将此事和正在...
    陈贵祥阅读 248评论 1 2