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】

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

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

    MySQL创建数据表(中) 三.数据字段属性 1.unsigned[无符号] 可以让空间增加一倍 比如可以让-128-127增加到0-255 注意:只能用在数值型字段 2.zerofill[前导零] ...

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

    MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...

  3. MySQL学习(三): 初识数据表

    打开数据库: USE db_name : 打开数据库. 创建数据表: 查看数据表: 查看数据表结构: 数据简单的插入与查找: 插入:INSERT [INTO] tbl_name [(col_name) ...

  4. mysql学习(八)数据表类型-字符集

    数据存储引擎: MyISAM:强化快速读取操作. 也有缺点.一些功能不支持 InnoDB:支持一些MyIASM一些不支持的功能                 缺点:占用空间大 对比          ...

  5. MySQL学习(一) 数据表基本操作

    创建数据库:create database db_name 查看数据库结构:show create database db_name 删除数据库:drop database db_name 查看数据库 ...

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

    MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构 insert into t2 ...

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

    02_1 操作数据库 (1)创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specifica ...

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

    数据导入 1.mysqlimport命令行导入数据 在使用mysqlimport命令导入数据时,数据来源文件名要和目标表一致,不想改文件名的话,可以复制一份创建临时文件,示例如下. 建立一个文本use ...

  9. MySQL学习笔记2(多表操作)

    外键:使两张表之间存在关联 特点: 1.从表外键的值是对主表主键的引用 2.从表外键类型,必须与主表主键类型一致 示例: 创建两个表并准备数据: USE mybase; CREATE TABLE ca ...

随机推荐

  1. 【leetcode❤python】206. Reverse Linked List

    # Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         s ...

  2. UVA 10534 三 Wavio Sequence

    Wavio Sequence Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Sta ...

  3. SQL函数学习(十九):CAST()函数和CONVERT()函数

    19.CAST()函数和CONVERT()函数 CAST()函数可以将某种数据类型的表达式转化为另一种数据类型 CONVERT()函数 也 可以将指定的数据类型转换为另一种数据类型 19.1 CAST ...

  4. POJ 2431 Expedition(探险)

    POJ 2431 Expedition(探险) Time Limit: 1000MS   Memory Limit: 65536K [Description] [题目描述] A group of co ...

  5. 细心看完这篇文章,刷新对Javascript Prototype的理解

    var person={name:'ninja'}; person.prototype.sayName=function(){ return this.name; } 分析上面这段代码,看看有没有问题 ...

  6. ASP.Net MVC4中封装CSS和js冗余代码(不让其大篇的显示在前台上)

    (1)封装CSS和JS代码,使用调用的方式在前台进行调用.是开发看起来简洁和易于管理,可达到重用.   由于asp.netMVC4 框架 ,在封装js和CSS的时候,有如下规范: using Syst ...

  7. iOS 开发之照片框架详解(1)

    http://kayosite.com/ios-development-and-detail-of-photo-framework.html/comment-page-1 一. 概要 在 iOS 设备 ...

  8. laravel 开启sql查询日志

    \DB::enableQueryLog(); dd(\DB::getQueryLog());

  9. PHP的UTF-8中文转拼音处理类(性能已优化至极致)

    <?php /** * PHP 汉字转拼音 * @author Jerryli(hzjerry@gmail.com) * @version V0.20140715 * @package SPFW ...

  10. 基于 php-redis 的redis操作

    基于 php-redis 的redis操作 林涛 发表于:2016-5-13 12:12 分类:PHP 标签:php,php-redis,redis 203次 redis的操作很多的,下面的例子都是基 ...