9°

MySQL学习笔记(二)

MySQL学习笔记(二)

一.数据表

1.创建表

  • DREATE =TABLE [IF NOOT EXISTS] `tbl_name`(
    `字段名称` 字段类型 [完整性约束条件] [COMMENT '注释'],
    `字段名称` 字段类型 [完整性约束条件] [COMMENT '注释'],
    ...
    )ENGINE = 存储引擎 CHARSET = 编码方式;

2.查看数据表

  • SHOW TABLES;
  • SHOW [FULL] TABLES [{FROM|IN}db_name];

3.查看指定数据表的详细信息

  • SHOW CREATE TABLE tbl_name;

4.查看表结构

  • DESC tbl_name;
  • DESCRIBE tbl_name;
  • SHOW COLUMNS FROM tbl_name;

5.删除数据表

  • DROP TABLE [IF EXISTS] tbl_name;

6.向数据表中插入记录

  • INSERT [INTO] tbl_name(field1,field2,...) VALUES(value1,value2,...);

7.查询数据表中的记录

  • SELECT * FROM tbl_name;

8.添加字段

  • ALTER TABLE tbl_name
    ADD 字段名称 字段属性 [完整性约束条件] [FIRST|AFTER 字段名称];

9.删除字段

  • ALTER TABLE tbl_name
    DROP 字段名称;

10.添加默认值

  • ALTER TABLE tbl_name
    ALTER 字段名称 SET DEFAULT 默认值;

11.删除默认值

  • ALTER TABLE tbl_name
    ALTER 字段名称 DROP DEFAULT;

12.修改字段(名称、)类型、属性

  • ALTER TABLE tbl_name
    MODIFY 字段名称 字段类型 [字段属性] [FIRST|AFTER 字段名称];
  • ALTER TABLE tbl_name
    CHANGE 原字段名称 新字段名称 字段类型 字段属性 [FIRST | AFTER 字段名称];

13.添加主键

  • ALTER TABLE tbl_name
    ADD PRIMARY KEY(字段名称);

14.删除主键

  • ALTER TABLE tbl_name
    DROP PRIMARY KEY;

    如果有AUTO_INCREMENT,要先去掉才能删除主键

15.添加唯一

  • ALTER TABLE tbl_name
    ADD UNIQUE KEY|INDEX [index_name] (字段名称);

16.删除唯一

  • ALTER TABLE tbl_name
    DROP index_name;

17.修改数据表名称

  • ALTER TABLE tbl_name
    RENAME [TO|AS] new_tbl_name;
  • RENAME TABLE tbl_name TO|AS new_tbl_name;

18.修改AUTO_INCREMENT的值

  • RENAME TABLE tbl_name TO new_tbl_name;

二、数据类型

1.数值型

  • 整数型

    数据类型 有符号型存储范围 无符号型存储范围 字节
    TINYINT $-2^7$ ~ $2^7-1$ $0$ ~ $2^8-1$ 1
    SMALLINT $-2^{15}$ ~ $2^{15}-1$ $0$ ~ $2^{16}-1$ 2
    MEDIUMINT $-2^{23}$ ~ $2^{23}-1$ $0$ ~ $2^{24}-1$ 3
    INT $-2^{31}$ ~ $2^{31}-1$ $0$ ~ $2^{32}-1$ 4
    BIGINT $-2^{63}$ ~ $2^{63}-1$ $0$ ~ $2^{64}-1$ 8
    BOOL,BOOLEAN 0为false,其他为true 1

    超过指定长度要求时自动截断

  • 浮点数

    数据类型 存储范围 字节
    FLOAT[M,D] $-3.2010^{38}$ ~ $-1.1710^{-38}$ & $0$ & $1.17510^{-38}$ ~ $3.4010^{38}$ 4
    DOUBLE[M,D] $-1.7910^{308}$ ~ $-2.2210^{-308}$ & $0$ & $2.2210^{-308}$ ~ $1.7910^{308}$ 8

    其中,M表示总长度,D表示小数部分长度
    超过指定长度要求时自动四舍五入

  • 定点型

    数据类型 存储范围 字节
    DECIMAL[M,D] 和DOUBLE相同,以字符串形式存储 8

    超过指定长度要求时自动截断
    DECIMAL比FLOAT和DOUBLE精度高

2.字符串类型

  • 数据类型 存储需求
    CHAR(M) M个字节,$0 <=M<= 255$
    VARCHAR(M) L+1个字节,$L<=M,0 <=M<= 65535$
    TINYTEXT L+1个字节,$L<2^8$
    TEXT L+2个字节,$L<2^{16}$
    MIDUMTEXT L+3个字节,$L<2^{24}$
    LONGTEXT L+4个字节,$L<2^{32}$
    ENUM('value1','value2',...) 1或2个字节,取决于枚举值的个数,最多65535个值
    SET('value1','value2',...) 1、2、3、4或8个字节,取决于set成员的数目,最多64个

    CHAR一般比VARCHAR存储空间大,但查询速度更快
    在字符串长度达不到CHAR的要求时,会在后面自动填充空格,但查询时不会去掉空格;VARCHAR不会自动填充,尾部如有空格会保留
    TEXT列不能有默认值,检索时不存在大小写转换
    ENUM类型自动过滤空格,下标从1开始,下表越界时不能添加

3.日期时间类型

  • 数据类型 存储范围 存储需求
    TIME -838:59:59 ~ 838:59:59 3
    DATE 1000-01-01 ~ 9999-12-31 3
    DATETIME 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8
    TIMESTAMP 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 4
    YEAR 1901-2155 1

三、完整性约束条件

1.unsigned

  • 无符号,没有负数,从0开始

2.ZEROFILL

  • 零填充,显示长度不够时前补0填充,同时非负

3.NOT NULL

  • 非空

4.DEFAULT

  • 默认值,输入数据没有赋值时使用默认值

5.PRIMARY KEY

  • 主键,标识记录的唯一性,不能重复,一个表只能有一个主键,自动禁止为空

6.UNIQUE KEY

  • 唯一性,一个表可以有多个,除null外不能重复

7. AUTO_INCREMENT

  • 自动增长,智能用于数值列,配合索引使用,从1开始

8.FOREIGN KEY

  • 外键约束

本文转载自博客园,原文链接:https://www.cnblogs.com/lxy764139720/p/12190026.html

全部评论: 0

    我有话说: