创建表

  CREATE TABLE 表名称 [IF NOT EXISTS](

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

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

            ...

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

             )[表类型] [表字符集];

            表名称和字段名需要自己定义名称

SQL是不区分大小写的,但是表就是一个文件名,windows不区分大小写,linux区分大小写。

1.名称和字段名要有意义,比如说用英文或英文的组合;

2.自己定义的名称最好都小写;

3.SQL语句需要大写。

数据值和列类型

  数据库是按照空间大小区分的

  1.数值型

    整型(整数)

      小的整型       1字节  -128-127          0-255                         TINYINT

      较小的整型    2字节  -32768-32767  0-65535                     SMALLINT

      中等的整型    3字节                                                             MEDIUMINT

      标准的整型    4字节  -2147483648-2147483647                INT

      大整数型       8字节                                                             BIGINT

  指定了表中的数据的类型为tinyint,那么数值的范围为(-128-127),当存储的数据范围超过这个范围的话,会提示错误。

  指定了数据类型为无符号数以后,如果数值为负,或者超出了范围,都会报错。

    浮点型(小数)

      float(M,D)            4字节

      double(M,D)         8字节

      定点数

      decimal(M,D)       M+2字节

  数据总长度为M,小数点后面保留D位。如果超出了长度范围,会报错,如果长度不够,会自动补全到指定的长度。

  浮点数是存在误差的,在小数点后边会存在四舍五入的情况。

  如果位数够的话,会存在四舍五入的情况,如果位数不够的话,不会进行四舍五入的进位。

   由于浮点数存在误差,所以在存储金额的时候,需要使用定点数来存储,定点数的存储精度高,但是因为是以字符串的形式存储的,所以比较耗时。 

  2.字符型

      可以使用“”和''来存储。

      char、varchar的长度都是255。

  如果超出了指定的长度,就会保存失败。

  char属于固定长度的字符串,varchar属于可变长度字符串。

        char(4)                                      varchar(4)

          ''           (4字节)                ''               (1字节)

          'ab'        (4字节)             'ab'             (3字节)

          'abcd'   (4字节)       'abcd'           (5字节)

          'abcdefg'  (4字节)     'abcdefg'     (5字节)

  如果是固定的数据长度,建议使用char,因为速度比varchar更快。但是缺点是浪费存储空间。

  对于长度不大、对查询速度有较高要求可以考虑使用char类型数据,对于变化较大的可以考虑使用varchar类型的数据。

        text  文本数据(文章)

            MEDIUMTEXT

            LONGTEXT

        blob  二进制数据(相片)

            MEDIUMBLOB 

            LONGBOLB  

        

        ENUM    枚举   1或2字节

      

        SET        集合      1,2,3,4,8字节

  指定了值的范围,因为插入的值为'w'和'w'的时候,不是在指定的范围中,所以有警告。

  枚举ENUM一次只能插入一个数据,而集合SET一次可以插入多个数据值

  如果值是固定的,比如说:性别、星期几、月份......

  3.日期型  

      DATE                       YYYY-MM-DD

      TIME                        hh:mm:ss

      DATETIME       YYYY-MM-DD hh:mm:ss

      TIMESTAMP           YYYYMMDDhhmmss

      YEAR

  创建表的时候,最好不要使用这些中的时间格式。建议使用int保存时间,这样子方便进行计算。

数据字段属性

  1.unsigned可以让空间增加一倍, -128-127, 0-255,只能用在数值型字段;

  2.zerofill 零填充,前导0,自动用0填充。

  加入zerofill会自动使用0在前边进行填充。

  3.AUTO_INCREMENT

    只能是整数,数据每增加一条,就会自动加1,而且这个字段上的值不允许重复。

    NULL 0 留空都会再次字段上加上1。

  

  每个表最好都有一个id字段设置为AUTO_INCREMENT。

  4.NULL 和NOT NULL

  如果不指定,则默认允许插入NULL。

  在创建表的时候,每个字段都不要插入空值,可能后续不好处理,所以设置为NOT NULL。

  5.缺省值

  CREATE TABLE user(

           id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

           name VARCHAR(20) NOT NULL DEFAULT '',

           height DOUBLE(10,2) NOT NULL DEFAULT '0.0',

           age INT NOT NULL DEFAULT 0,

           sex CHAR(4) NOT NULL DEFAULT '男'

            )

创建索引

  1.主键索引

    最常见的索引,主要作用是确定数据库表中一条特定数据记录的位置。

    两条id为1的记录。

  2.唯一索引

    

  3.常规索引

    

  4.全文索引

     

mysql入门 — (2)的更多相关文章

  1. 21分钟 MySQL 入门教程(转载!!!)

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...

  2. MySQL入门02-MySQL二进制版本快速部署

    在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...

  3. MYSQL入门全套(第三部)

    MYSQL入门全套(第一部) MYSQL入门全套(第二部) 索引简介 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构.如果想按特定职员的姓来查找 ...

  4. MySQL入门(三)

    写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...

  5. MySQL入门笔记

    MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: ·          rpm包形式 ·          通用二进制 ...

  6. MySQL入门转载

    21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...

  7. mysql 入门 基本命令

    MYSQL入门学习之一:基本操作  1.登录数据库    www.2cto.com     命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码)   ...

  8. MySQL入门笔记(一)

    一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...

  9. MySQL入门(上)

    1 课程回顾 自定义标签&编码实战 1)自定义标签步骤: 1.1 编写标签处理器类,继承SimpleTagSupport类,覆盖doTag方法 1.2 在WEB-INF目录下建立tld文件,在 ...

  10. 第二章 MySQL入门篇

    第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...

随机推荐

  1. Spring : Spring Security

    ==========================================================================spring-security-过滤器: 顶级Fil ...

  2. php 将富文本编辑后的内容取出

    背景:项目中用了富文本编辑器,讲写完的内容存入了数据库,但是取出的时候因为有些展示地方并不需要样式,只想获取到内容,所以需要将带了html编码的信息解析出来. 原始信息如下 [task_desc] = ...

  3. ElasticSearch5插件安装

    http://blog.csdn.net/napoay/article/details/53896348 #更新 sudo yum update -y sudo rpm -ivh http://dl. ...

  4. 嵌入式C语言自我修养 01:Linux 内核中的GNU C语言语法扩展

    1.1 Linux 内核驱动中的奇怪语法 大家在看一些 GNU 开源软件,或者阅读 Linux 内核.驱动源码时会发现,在 Linux 内核源码中,有大量的 C 程序看起来“怪怪的”.说它是C语言吧, ...

  5. 浅析BFC布局的概念以及作用

    BFC的概念以及作用 BFC的定义: (Block formatting context)直译为"块级格式化上下文".它是一个独立的渲染区域,只有Block-level box参与 ...

  6. Gitlab 自动构建心得

    上面是简单接受一下gitlab ci的工作原理 GitLab-CI 这个是一套配合GitLab使用的持续集成系统,是GitLab自带的,也就是你装GitLab的那台服务器上就带有的.无需多考虑..gi ...

  7. 『Linux基础 - 3』 Linux文件目录介绍

    Windows 和 Linux 文件系统区别 -- 结构 Windows 下的文件系统 - 在 Windows 下,打开 "计算机",我们看到的是一个个的驱动器盘符: - 每个驱动 ...

  8. axios请求封装和异常统一处理

    前端网络请求封装前端采用了axios来处理网络请求,为了避免在每次请求时都去判断各种各样的网络情况,比如连接超时.服务器内部错误.权限不足等等不一而足,我对axios进行了简单的封装,这里主要使用了a ...

  9. break和continue使用

    前面讲的循环,这里就是控制循环的东西 break其实在我们学习switch判断的时候就是用到了 break:代表跳出整个循环 continue和break的用法差不多 continue:代表只跳出当前 ...

  10. mybatis入门(二):增删改查

    mybatis的原理: 1.mybatis是一个持久层框架,是apache下的顶级项目 mybatis托管到googlecode下,目前托管到了github下面 2.mybatis可以将向prepar ...