[TOC]

Mysql学习—数据库与数据表的创建与修改

Mysql E-R模型

一、构成

1.实体

  • 区别于其他对象的“事件”或“物体”

如购物系统的“顾客”、“商品”、“订单”等

2.属性

  • 每个实体固有的特征

如”顾客“的姓名、性别等

3.主键

  • 能唯一区分这些实体的属性

4.联系

  • 两实体之间的关系,有1:1,1:N,M:N三种

Mysql数据库技术

数据库(简称DB)

是按照一定的数据结构来组织、存储和管理数据的仓库

英文 中文 英文 中文
CREATE 创建 DATABASE 数据库
SHOW 查看 SCHEMA 数据库
DROP 删除 IF 假如
EXISTS 存在 USE 使用

创建数据库的语句

1
CREATE {DATABASE|SCHEMA}[IF NOT EXISTS] database_name;
  • 说明:

1.IF NOT EXISTS:在创建数据库前加上一个判断,只有该数据库目前尚不存在时才执行CREATA DATABASE操作(可以不写)

2.database_name:创建数据库的名称

  • 注意:

1.Mysql对大小写不敏感,SQL语句中出现大小写表示Mysql的保留字,小写字母需要自己定义

2.所有SQL语句符号一定是英文状态

查看数据库

1
SHOW DATABASES;

选择数据库

1
USE database_name;

删除数据库

1
DROP DATABASE database_name;

Mysql数据类型

一、数值类型

1.整数类型

  1. 微整型TINYINT,字节:1
  2. 小整型SMALLINT,字节:2
  3. 中整型MEDIUMINT,字节:3
  4. INT或INTEGER,字节:4
  5. 大整型,字节:8
MySQL数据类型 含义(有符号)
tinyint(m) 1个字节 范围(-128~127)
smallint(m) 2个字节 范围(-32768~32767)
mediumint(m) 3个字节 范围(-8388608~8388607)
int(m) 4个字节 范围(-2147483648~2147483647)
bigint(m) 8个字节 范围(+-9.22*10的18次方)

2.小数类型

  1. 浮点数类型

    • FLOAT,单精度浮点数,字节:4
    • DOUBLE,双精度浮点数,字节:8

    | MySQL数据类型 | 含义 |
    | ————————- | ——————————————————————- |
    | float(m,d) | 单精度浮点型 8位精度(4字节) m总个数,d小数位 |
    | double(m,d) | 双精度浮点型 16位精度(8字节) m总个数,d小数位 |

  2. 定点数类型

    • DEC(M,D)或DECIMAL(M,D),

      M代表最大位数

      D代表最小位数

      浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。

二、字符串类型

1.CHAR类型

字段编码固定,如地址,时间

2.VACHAR类型

字符串长度经常变化,如身份证号等

3.TEXT类型

存储大量字符串

  • TIINYTEXT,微文本
  • TEXT,文本
  • MEDIUMTEXT,中文本
  • LONGTEXT,长文本
MySQL数据类型 含义
char(n) 固定长度,最多255个字符
varchar(n) 固定长度,最多65535个字符
tinytext 可变长度,最多255个字符
text 可变长度,最多65535个字符
mediumtext 可变长度,最多2的24次方-1个字符
longtext 可变长度,最多2的32次方-1个字符

三、日期、时间类型

1.日期型

  1. DATA(日期型)

    YYYY-MM-DD

  2. DATATIME(日期时间型)

    YYYY-MM-DD HH:MM:SS

2.时间型

  1. TIMESTAMP(时间戳型)

    YYYY-MM-DD HH:DD:SS

  2. TIME(时间型)

    HH:MM:SS

  3. YEAR(年)

    YYYY

MySQL数据类型 含义
date 日期 ‘2008-12-2’
time 时间 ‘12:25:36’
datetime 日期时间 ‘2008-12-2 22:06:44’
timestamp 自动存储记录修改时间

四、二进制类型

1.BINARY类型

  • 存储少量二进制数据

  1. BINARY(M),定长二进制
  2. VARBIINARY,不定长二进制
  3. BIN,位类型

2.BLOB类型

  • 存储大量二进制数据

  1. TINYBLOB,微二进制
  2. BLOB,二进制
  3. MEDIUMBLOB,中二进制
  4. LONGBLOB,长二进制

五、复合类型

1.SET类型

2.ENUM类型

数据表的创建与修改

一、创建数据库

英文 中文
CREATE 创建
SHOW 查看
DROP 删除
TABLE 数据表
DESCRIBE 描述
创建数据表语法:
1
2
3
4
5
6
7
8
9
CREATE TABLE table_name(
col_name 1 data_type 1,

col_name 2 data_type 2,

……
col_name n data_type n,

);
  • 说明:

1.table_name为创建数据表名称

2.col_name为创建的字段名

3.data_type为要创建的字段的数据类型

1、查看数据表结构:

1
DESCRIBE table_name;

2、查看所有数据表:

1
SHOW TABLES;

3、复制表结构:

1
CREATE TABLE table_name1 like table_name2;

含义:创建一个新表table_name1,与已知的数据表table_name2结构一致

  • 说明:

  1. 如果是复制其他数据表结构,在table_name2前加上数据库的名称

    此时:

    1
    CREATE TABLE table_name1 like db.table_name2;

4、删除表

1
DROP TABLE table_name;

二、数据表的修改

修改表都是ALTER TABLE

1.修改表名

1
ALTER TABLE old_name_name RENAME new_table_name;

2.添加字段

1
ALTER TABLE table_name ADD col_name1_ data_type [First|AFTER colname_2]
  • 添加字段默认放在最后,如果想放在表中第一个,加first

  • 放在某一个字段后面,则用after

3.删除字段

1
ALTER TABLE table_name DROP col_name;

4.修改字段

1.修改字段的数据类型
1
ALTER TABLE table_name MODIFY col_name1 data_type;
2.修改字段名称
1
ALTER TABLE table_name CHANGE old_col_name new_data_type;
3.调整字段顺序
1
ALTER TABLE table_name MODIFY col_name1 data_type FIRST|AFTER colname_2