黑马程序员技术交流社区
标题: 【济南中心】PHP课程同步笔记day16:表定义语句 [打印本页]
作者: 小鲁哥哥 时间: 2017-6-14 10:33
标题: 【济南中心】PHP课程同步笔记day16:表定义语句
本帖最后由 小鲁哥哥 于 2017-6-14 10:37 编辑
【济南中心】PHP课程同步笔记day16:表定义语句
表定义语句
创建表:
基本形式:
Create table [if not exists] 表名(列定义列表,[索引或约束列表])[表选项列表];
说明:
1.上述列表都是指”多项并列项”,每一项之间用(,)分开
2.其中中括号部分是可以省略的
列定义:
每一个列定义的基本形式:
列名 列类型 [列属性列表]
说明:
1.列类型,就是数据类型,其中还可能会需要跟类型有关的相应设定。
2.列属性有6个,相互之间用空格隔开就可以:
a) Auto_increment:表示自增长,用于整数类型。一旦设定了此属性,则也同时要求设定一个”key”属性,就是后面那2个:primary key或 unique key
b) Primary key:表示主键,用于唯一确定一行的数据
c) Unique key :表示唯一键,用于设定某个字段的值在所有行中是唯一的(不可重复的)
d) Not null :表示不能为空(非空属性)
e) Default XX值:设定默认值,当该字段没有赋值或赋值为NULL时,自动获得该值
f) Comment ‘字段说明文字’:表示一种可以解释该字段含义,但又不属于”注释”的内容。
索引:
索引是一种数据库内部为了加快数据查找(搜索)速度的内部机制,其设定某个字段”有索引”,则该字段作为条件(比如where age=22)进行查找就会极大提高其速度。
索引设定形式:
通用形式:索引类别(字段名1,[字段名2],[字段名3]....);//至少一个字段
索引类别有:
普通索引:key [索引名](字段列表) 就只有索引的作用
唯一索引:unique key [索引名] (字段列表) 具有索引作用,而且具有唯一性
主键索引:primary key(字段列表) 具有索引作用,而且具有主键特性
外键索引:foreign key[索引名](字段列表) reference 其他表(对应字段列表)
具有索引作用,而且具有对应其他表的字段值的作用(外键作用)
全文索引:fulltext key [索引名](字段列表) 具有索引作用,但mysql对中文无法正常发挥作用
索引的弊端:
降低(减慢)增删改数据的效率(速度)
约束:
约束是指数据库中预先设定的对数据的”规定”,”要求”,”条件”等等
约束,是指在”建表”的时候,预先设定好的,以期对”后续写入数据”进行”检查”来决定是否满足设定的约束条件,结果有两种可能:满足写入成功,不满足写入失败。
有以下几种约束:
唯一约束 : unique key(字段列表)
主键约束 :primary key(字段列表)
外键约束 :foreign key(字段列表) references 其他表(对应字段列表)
非空约束 :not null
默认约束 :default XX值
检查约束 :check(某字段的条件)
说明:
1.前3个约束,其实同时也是索引,无需额外设定
2.非空约束和默认约束是”字段属性” ,无需额外设定
3.检查约束mysql不支持该功能。。。
表选项:
表选项是对一个表的额外属性的设定,多个设定之间用逗号(,)隔开
如下几个选项可设定:
Auto_increment = 自增长数字的起始值 //可以不设定,默认为1
Charset = 字符编码名 //可以不设定,就是使用数据库级别的设定
Collate = 排序规则名 //可以不设定,使用数据库级别的设定
Comment = ‘表说明文字’
Engine = 存储引擎名 //可以不设定,默认是”InnoDB”
存储引擎
存储引擎其实就是将”成千上万”的数据,存入到硬盘(文件)的内部机制(方式).
不同的存储引擎在性能(速度),功能,资源消耗方面有所不同。
一个重要的观念:没有一个性能最好,功能最全,资源消耗最小的存储引擎。
主要存储引擎如下:
修改表:
总体思想:
1.修改表是一个表建立之后的补救工作,不应该当做一个”常规工作”.
2.建表能完成的事情,修改表几乎都能完成
3.语法:
Alter table 表名 修改项1,修改项2.....;
其中,修改项可以包括:
字段:可以增删改
索引(约束):可以增删;
表选项:只能修改(从新设定)
删除表:
drop table 【if exists】 表名;
其他相关语句:
显示所有表: show tables;
显示某表的结构: desc 表名; 或:describe 表名;
显示某表的创建语句:show create table 表名;
重命名表:rename table 旧表名 to 新表名;
删除索引:drop index 索引名 on 表名。
作者: qq87438004 时间: 2017-6-22 17:17
6666666666666666
作者: 13414309233F 时间: 2017-6-26 09:28
666666666666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |