存储引擎

  表就是文件,表的存储引擎就是文件的存储格式,即数据的组织存储方式。

字段类型

1.整数类型

  • 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT
  • 作用:存储年龄,等级,id,各种号码等
  • 表示范围:BIGINT(8字节) > INT(4字节) > MEDIUMINT(3字节) > SMALLINT(2字节) > TINYINT(1字节)
  • 符号:默认整型是有符号的,使用unsigned就表示无符号
  • 注意:创建表时指定的字段宽度,对整型数据无效,表示的是数据的显示宽度

2.浮点型

浮点类型:FLOAT DOUBLE

定点数类型:DEC等同于DECIMAL

作用:存储薪资、身高、体重、体质参数等

符号:默认浮点型是有符号的,使用unsigned就表示无符号

精度:DOUBLE > FLOAT

3.日期类型

  • 日期类型:DATE TIME DATETIME TIMESTAMP YEAR
  • 作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等
year
YYYY(1901/2155) date
YYYY-MM-DD(1000-01-01/9999-12-31) time
HH:MM:SS('-838:59:59'/'838:59:59') datetime
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y) timestamp
YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

 

4.字符串类型

  • 字符串类型:char varchar
  • char类型:定长,简单粗暴,浪费空间,存取速度快
  • varchar类型:变长,精准,节省空间,存取速度慢

5.枚举和集合类型

  • 说明:字段的值只能在给定范围中选择,如性别,单位
  • 枚举:enum 单选 只能在给定的范围内选一个值,如性别sex: 男male / 女female
  • 集合:et 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)

字段约束类型

说明:约束条件与数据类型的宽度一样,都是可选参数

作用:用于保证数据的完整性和一致性

PRIMARY KEY (PK)    标识该字段为该表的主键,可以唯一的标识记录
FOREIGN KEY (FK) 标识该字段为该表的外键
NOT NULL 标识该字段不能为空
UNIQUE KEY (UK) 标识该字段的值是唯一的
AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT 为该字段设置默认值 UNSIGNED 无符号
ZEROFILL 使用0填充 
  • primary key:主键,具有唯一性,如果一张表中没有组件,数据库会创建一个默认的组件
  • foreign key:外键,用于描述两张表之间的关系
  • not null:表示不能为空
  • null:表示可以为空
  • unique key:唯一键,不能重复
  • auto_increment:自动增加,插入时无须插入该类型字段
  • default:默认值,插入数据时,如果没有指定就使用默认值
  • unsigned:表示无符号数
  • zerofill:显示宽度不足时,使用0填充

表的操作

1.创建表

#语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
); #注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的

例子

create table db1 (
id int primary key,
name char(10) not null,
age int(4),
sex enum('female', 'male')
);

2.查看表

show tables; #查看当前数据库下所有的表

describe t1; #查看表结构,可简写为desc 表名

3.修改表

语法:
1. 修改表名
ALTER TABLE 表名 RENAME 新表名; 2. 增加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] FIRST;
ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名; 3. 删除字段
ALTER TABLE 表名 DROP 字段名; 4. 修改字段
ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

  

4.复制表

  • LIKE 方法:LIKE方法是专门复制表结构的方法,他只复制表结构和相关属性,并不复制里面的数据
  • SELECT 方法:严格来讲 SELECT 方法不能理解成复制表结构的方法,其实他只是执行了一个SELECT查询语句。其实复制的结果只包含了 SELECT 的字段和数据,其他表属性包括存储引擎默认字符集等都由系统的配置文件决定
1.复制表结构和数据(key不会复制: 主键、外键和索引)
create table db2 select * from db1; 2.复制表结构
create table db2 select * from db1 where 1=2; 3.复制表结构(包括key)
create table db2 like db1;

  

5.删除表

DROP TABLE 表名;

drop table db2

最新文章

  1. JAVA EE的十三种技术
  2. HDU 1007Quoit Design(最近点问题)
  3. oracle初次使用连接不上
  4. centos6.7下编译安装lamp环境
  5. rest介绍
  6. 对于HttpContext.Current的一点理解
  7. 【PAT】1041. Be Unique (20)
  8. 在mac安装numpy matplotlib scipy
  9. win8上cmder文字重叠问题
  10. Javaweb向服务器上传文件以及从服务器下载文件的方法
  11. CMake根据平台移植检查设置文件编译选项
  12. dubbo系列一:dubbo介绍、dubbo架构、dubbo的官网入门使用demo
  13. SVN服务器搭建实录
  14. python有序字典
  15. Foxmail邮箱最新应用指南二
  16. MapRedece(多表关联)
  17. tensorflow读取训练数据方法
  18. Gym 101246H ``North-East''(LIS)
  19. Elastic-Job源码分析之JobScheduler类分析
  20. 131. Palindrome Partitioning(回文子串划分 深度优先)

热门文章

  1. git 的使用:
  2. DataOutputStream是用来处理什么类型数据的
  3. spring Gateway 和注册中心整合环境搭建1
  4. Java并发编程:Callable、Future和FutureTask 实现龟兔赛跑
  5. 常用电子邮件协议服务POP3/IMAP/SMTP/Exchange
  6. MySQL 合并查询,以map或对象的形式返回
  7. cv2 exposureFusion (曝光融合)
  8. Nginx 从入门到放弃(三)
  9. Flutter vs React Native vs Native:深度性能比较
  10. bash默认组合按键