A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 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 表名。

2 个回复

正序浏览
666666666666
回复 使用道具 举报
6666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马