来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] MySQL创建数据表(上)一、创建数据表的SQL语句模型【弱类型】CREATE TABLE [IF NOT EXISTS] 表名称(字段名1 列的类型 [属性][索引],字段名2 列的类型 [属性][索引],字段名n 列的类型...
MySQL创建数据表(上)一、创建数据表的SQL语句模型【弱类型】 CREATE TABLE [IF NOT EXISTS] 表名称( 字段名1 列的类型 [属性][索引], 字段名2 列的类型 [属性][索引], … 字段名n 列的类型 [属性][索引], )[表属性][表字符集]; 【表名称,字段名需要自己来命名】 【SQL语句并不区分大小写,但是一个文件名:在Windows下不区分大小写,但是在 Linux/UNIX下是区分大小写的】 【命名规则: 1、有意义(英文,英文组合或英文缩写) 2、自己定的名称最好小写。 3、SQL语句最好大写。】 1、 CREATE TABLE users( id INT, name CHAR(32) ); 2、 SHOW TABLES; 3、 DESC users; 4、 SELECT * FROM users; 二、数据值与列类型 都以空间大小来细分,能够存下即可! 1、数值型 整型(整数): 非常小整数型 1字节 -128~127 0~255(无符号) TINYINIT 较小整数型 2字节 -32768~32767 SMALLINIT 中等大小整数型 3字节 0~16777215 MEDIUMIINT 标准整数型 4字节 -2147483648~2147483647 INT 大整数型 8字节 BIGINT 【可以添加属性:UNSIGNED】 浮点型(小数): FLOAT(M,N) 4字节 【长度M,保留小数点后N位】 DOUBLE(M,N) 8字节 DECIMAL(M,N) M+2字节 【定点数,以字符串形式存储数据, 更精确的保存数据,但是效率会有所折扣。】 【浮点数会存在误差,因此在对数字敏感的时候,需要用定点数来存储!】 2、字符型 MySQL支持以单引号与双引号表示字符串类型。 如 “MySQL” 与 'MySQL' 相同 char(M) 最大255 固定长度字符串 varchar(M) 最大255 可变长度字符串 char(4) varchar(4) // 永远比字符多一个字节 '' 4 '' 1字节 'a' 4 'a' 2字节 'abcd' 4 'abcd' 5字节 'abcdefg' 4 'abcdefgh' 5字节 char 类型会截取尾部的空格; 示例: CREATE TABLE IF NOT EXISTS tab(v varchar(4),c char(4)); INSERT INTO tab(v,c) VALUES(“ab ”,”ab ”); SELECT CONCAT(v,”#”),CONCAT(c,”#”) FROM tab; 最佳实践: 固定长度,推荐使用char类型(可能会浪费一定空间)。 可变长度,推荐使用varchar类型(可能会付出一些性能损耗) text 文本数据:文章,日志 长度:2^16 -1 MEDIUMTEXT LONGTEXT blob 二进制数据:照片,电影 长度:2^16 -1 MEDIUMBLOB LONGBLOB 【虽然没法通过SQL语句将照片,电影,压缩包等二进制文件插入到数据库中, 但是我们可以通过C++/Java等编程语言将二进制文件读成二进制数据流,然 后保存到数据库中】 ENUM 枚举 1~2字节 ENUM(“one”,”two”,”three”,”four”)~65535 一次只能有一个值 SET 集合 1,2,3,4,8字节 SET(“one”,”two”,”three”,”four”)~64 一次可以有多个值,用“,”隔开。 3、日期型 DATE YYYY-MM-DD //如果位数充足,可以不用加‘-’ TIME hh:mm:ss //位数充足,可以忽略‘:’,位数不足,从后面截取 DATETIME YYYY-MM-DD hh:mm:ss TIMESTAMP YYYYMMDDhhmmss //位数不足时,不可忽略前导0 YEAR YYYY 【创建数据表时,最好不要使用这些时间值,最好使用C++/Java等编程语言中的整数来保存 时间,这样更方便计算,如C++中的int,PHP中时间戳 1970-1-1 0:0:0】 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com