MySQL学习笔记_2_MySQL创建数据表(上)

MySQL创建数据表(上)

一、创建数据表的SQL语句模型【弱类型】

CREATETABLE [IF NOT EXISTS]
表名称(

字段名1列的类型[属性][索引],

字段名2
列的类型[属性][索引],

字段名n列的类型[属性][索引],

)[表属性][表字符集];

【表名称,字段名需要自己来命名】

【SQL语句并不区分大小写,但是一个文件名:在Windows下不区分大小写,但是在
Linux/UNIX下是区分大小写的】

【命名规则: 1、有意义(英文,英文组合或英文缩写)

2、自己定的名称最好小写。

3、SQL语句最好大写。】

1、 CREATETABLE users(

idINT,

nameCHAR(32)

);

2、 SHOWTABLES;

3、 DESCusers;

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字节
【定点数,以字符串形式存储数据, 更精确的保存数据,但是效率会有所折扣。】【四舍五入】

【浮点数会存在误差,因此在对数字敏感的时候,需要用定点数来存储!】

3、字符型

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类型会截取尾部的空格;

示例: CREATETABLE IF NOT EXISTS tab(v varchar(4),c char(4));

INSERTINTO tab(v,c) VALUES(“ab ”,”ab ”);

SELECTCONCAT(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

一次可以有多个值,用“,”隔开。

4、日期型

DATE YYYY-MM-DD //如果位数充足,可以不用加‘-’

TIME hh:mm:ss //位数充足,可以忽略‘:’,位数不足,从后面截取

DATETIME YYYY-MM-DDhh:mm:ss

TIMESTAMP YYYYMMDDhhmmss //位数不足时,不可忽略前导0

YEAR YYYY

【创建数据表时,最好不要使用这些时间值,最好使用C++/Java等编程语言中的整数来保存
时间,这样更方便计算,如C++中的int,PHP中时间戳1970-1-10:0:0】

转载   http://blog.csdn.net/zjf280441589/article/details/18660509

如有版权问题,请联系QQ:858668791



时间: 2024-10-13 15:12:42

MySQL学习笔记_2_MySQL创建数据表(上)的相关文章

MySQL学习笔记_3_MySQL创建数据表(中)

 MySQL创建数据表(中) 三.数据字段属性 1.unsigned[无符号] 可以让空间增加一倍 比如可以让-128-127增加到0-255 注意:只能用在数值型字段 2.zerofill[前导零] e.g. createtable if not exists t2(num int(5) zerofill,price float(7,2)zerofill,name varchar(10)); 注意:只能用在数值型字段,自动加上无符号属性 3.auto_increment[自增] #auto

MySQL学习笔记_4_MySQL创建数据表(下)

 MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines; #查看MySQL所支持的存储引擎storageengine 3. showvariables like 'table_type'; #查看默认数据表类型 MyISAM和InnoDB最常用的存储引擎[表类型] 4.指定表类型[使用哪一个存储引擎]: createtable ...() eng

MySQL学习笔记之五 有关数据表操作

MySQL在创建表的时候,创建一个.frm文件保存表和列定义.索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中.   一.用SHOW/ DESCRIBE语句显示数据表的信息 语法: SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM

MySQL学习笔记-数据类型与操作数据表

MySQL学习笔记-数据类型与操作数据表 数据类型:  1.字符型  2.整型  3.浮点型  4.日期时间型 数据表操作:  1.插入记录  2.查找记录 记录操作:  1.创建数据表  2.约束的使用 1.数据类型 [1]整型: 数据类型 存储范围 字节 TINYINT 有符号型:-128~127(-2^7~2^7 -1),无符号型0~255(0~2^8 -1) 1 SMALLINT 有符号型:-2^15~2^15 -1,无符号型0~2^16 -1 2 MEDIUMINT 有符号型:-2^2

MySQL学习笔记_9_MySQL高级操作(上)

 MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构 insert into t2 select * from t1;    #复制表数据,但是这样还是会有缺陷,因为没有考虑到列的对应,因为t1与t2的表结构完全一致,所以此次操作才不会出错! 建议: insert into t3(name) select name from t1; #指定复制的列 二.MySQL索引 1.

MySQL学习笔记02_数据库和表的基本操作

02_1 操作数据库 (1)创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specification]...] 解释: [IF NOT EXISTS]创建时提前检查一下是否存在数据库 create_specification:(创建条件) [DEFAULT] CHARACTER SET charset_name | [DEFAULT] COLLATE collation_name CHAR

MySQL学习11:修改数据表(一)

修改数据表包括添加列.删除列.添加约束.删除约束,修改列定义和修改数据表名称,后面的两个我们使用时 一定要谨慎,尽量不使用. 下面就来一个一个单独介绍怎么修改数据表: 一添加数据表中的列 (1)添加单列 MySQL数据库的数据表中添加单列的语法格式为: ALTER TABLE table_name ADD [COLUMN] col_name columns_definition [FIRST | AFTER col_name]; 例子: SHOW COLUMNS FROM users1; ALT

MySQL学习笔记十一:数据导入与导出

数据导入 1.mysqlimport命令行导入数据 在使用mysqlimport命令导入数据时,数据来源文件名要和目标表一致,不想改文件名的话,可以复制一份创建临时文件,示例如下. 建立一个文本users.txt,内容如下: 1001,张三,zhangsan@163.com 1002,李四,zhangsan@126.com 1003,王五,zhangsan@qq.com 1004,李白,zhangsan@hotmail.com 创建一个表users mysql> create table if

mysql学习笔记之六(数据定义语言DDL)

SQL语言包括四类种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)还有事务控制语言(TCL). ※  数据定义语言(DDL),例如:CREATE.DROP.ALTER等语句. ※  数据操作语言(DML),例如:INSERT(插入).UPDATE(修改).DELETE(删除)语句. ※  数据查询语言(DQL),例如:SELECT语句.(一般不会单独归于一类,因为只有一个语句). ※  数据控制语言(DCL),例如:GRANT.REVOKE等语