mysql入门 — (2)

创建表

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.全文索引

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏西安-晁州

mybatis学习之高级映射

一对一映射查询 1、数据库执行脚本: /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.11-log : Datab...

29300
来自专栏栗霖积跬步之旅

第十章:创建计算字段

创建在数据库表中的数据一般不是应用程序所需要的格式。  我们需要从数据库中检索出转换、计算或格式化过的数据。  计算字段并不实际存在于数据库表中,计算字段是运行...

18050
来自专栏LanceToBigData

MySQL(四)之MySQL数据类型

一、数据类型概述  MySQL的数据类型有大概可以分为5种,分别是 整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型。现在可以来看看你对...

260100
来自专栏PHP在线

MySQL字段类型的详细解释

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。 概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例...

39490
来自专栏峰会SaaS大佬云集

Oracle 数据库入门之----------------------单行函数

SQL> select lower('Hello World') 转小写,upper('Hello World') 转大写,initcap('hello wor...

8200
来自专栏十月梦想

mysql数据类型

mysql数据的数据类型,指定了字段的类型,不符合指定的字段类型,传入的值则会提示错误;

9740
来自专栏数据库

MySQL数据库应用总结(六)—MySQL数据库的数据类型和运算符(上)

SQL语法预览: 创建表字段数据类型:【createtable 表名(字段名称 数据类型); 】 插入字段值:【insert into表名 values(值1,...

21850
来自专栏乐沙弥的世界

PL/SQL 联合数组与嵌套表

      通常情况下,在PL/SQL中,处理单行单列的数据可以使用标量变量,而处理单行多列的数据则使用PL/SQL记录是不错的选择。单列多行数据 则由联合数组...

12930
来自专栏GreenLeaves

oracle 中关于null的操作

空值     空值一般用NULL表示     一般表示未知的、不确定的值,也不是空格     一般运算符与其进行运算时,都会为空     空不与任何值相等   ...

19580
来自专栏木子昭的博客

<导图>Mysql常用查询语法

普通查询 查看整个表 格式: select * from 表名; 示例: select * from students; 查询指定字段 格式 ...

34170

扫码关注云+社区

领取腾讯云代金券