MySQL创建数据表
数据库有了后,就可以在库里面建各种数据表了。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。后面也是通过SQL语句和Navicat两种方式进行数据表的创建。
【基本语法】
在MySQL中,可以使用CREATE TABLE语句创建表。其语法格式为:
其中,[表定义选项]的格式为:
<列名1> <类型1> [,…] <列名n> <类型n>
CREATE TABLE命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的。
主要语法及使用说明如下:
- CREATE TABLE:用于创建给定名称的表;
- <表名>:指定要创建表的名称,在CREATE TABLE之后给出,必须符合标识符命名规则。表名称被指定为db_name.tbl_name,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略db-name。
- <表定义选项>:表创建定义,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。
创建一个名字叫test_tb的表格,包括id、name、class、score四列,创建SQL语句如下↓
在MySQL中可以使用ALTER TABLE语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。
语法格式如下:
【修改表名】
语法规则如下:
TO为可选参数,使用与否均不影响结果。
使用ALTER TABLE将数据test_tb表改名为wangfalin,SQL 语句和运行结果如下所示。
【修改字段名称】
语法规则如下:
- 旧字段名:指修改前的字段名;
- 新字段名:指修改后的字段名;
- 新数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空。
将class字段名称改为banji,同时将数据类型变为CHAR(10),SQL语句和运行结果如下↓
【删除字段】
语法格式如下:
其中,“字段名”指需要从表中删除的字段的名称。
删除score字段,语句如下↓
【删除数据表】
删除表的时候,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份。
语法格式如下:
对语法格式的说明如下:
- 表名1, 表名2, 表名3 …表示要被删除的数据表的名称。DROP TABLE可以同时删除多个表,只要将表名依次写在后面,相互之间用逗号隔开即可。
- IF EXISTS用于在删除数据表之前判断该表是否存在。如果不加IF EXISTS,当数据表不存在时MySQL将提示错误,中断SQL语句的执行;加上IF EXISTS后,当数据表不存在时SQL语句可以顺利执行,但是会发出警告。
End
更多文章请关注微信公众号~
php手把手教你做网站(七)mysql创建数据库,建表
1、创建数据库
字符集我选择的utf8 — UTF-8 Unicode,也可以选择utf8mb4 — UTF-8 Unicode,
整理选择 utf8_general_ci或者utf8mb4_general_ci
2、建表,只需要记住几个常用的字段类型
int,varchar,text,tinyint,float(这个类型用到的相对多一点,也比较少用)
int 存放ID编号, 设置为主键、自增、不允许空、长度10、10进位0;
varchar存放字符串,比如新闻标题,不需要换行, 长度50到100均可,最大255,要是觉得新闻标题很长,可以把这里长度设置的大一些,十进位0,如果存放的图片路径,甚至多个图片的路径,可以直接设置255;
text存放新闻内容, 长度、十进位都是0;
tinyint 存放推荐、首页显示等等 长度1、十进位0;
日期以时间戳存放, 选int类型,同ID;
float存放价格, 十进位2,长度如果填写10,那么整数位长度最大就是10-2=8位;根据自己的需要填写;
如果是int、tinyint、smallint 这些默认值填写0;
图1 navicat的使用
选项,可以选择表的类型MyISAM或者InnoDB,如果是小的网站,没有很频繁的更新数据的表可以选用MyISAM,如果数据量比较大论坛之类的选择InnoDB。因为在安装mysql的时候已经在my.ini设置了默认的存储引擎,如果不选类型,会默认为InnoDB。
索引:
如果表中数据量比较大,除了表类型选择InnoDB,还应创建索引。以新闻表为例,会涉及到搜索检索新闻标题,如果标题没有重复索引类型选择Unique,反之选择Normal,栏位名选择新闻标题字段,索引名可以随便写为空也可以,以where也就是条件为准:只有一个条件,按照前边创建索引就好,如果有多个“and”我们要选择多个字段一起创建,“”or”为每个字段单独创建。
and理解为一起生效,or就是单个的,或者生效
图2 or 每个字段设置的索引
图3 or 字段组合设置了索引
使用like查询的时候,%只有在右边索引才是生效的,也就是查询以“测试”开头的才是生效的。
我们可以做一个通俗的比喻来了解为啥只有“测试”开头的才生效,当我们走一段路找东西,开头就找到了,那就不再走后边的了,反之2个%可能走完这条路,%开头的呢要走完这条路,也就是检索全文,这个时候索引已经没有任何意义。
or的含义,不管后边的cat是否设置了索引,都要进行全文检索,所以like只要使用了%% 或者%测试,索引都不会生效。
查询条件and会生效。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。