今日内容

1.存储引擎表类型

2.数据类型

3.完整性约束

1.存储引擎表类型

指令:

1、show engines;#查看MySQL所有的引擎,

2、show variables like "storage_engine%";查看当前正在使用的引擎

储存引擎的使用

1.创建表时指定引擎

create table innodb_t2(id int) engine=innodb;

2.在配置文件中指定默认的存储引擎

linux:vim /etc/my.cnf   windows:my.ini文件
[mysqld]
default-storage-engine=INNODB #配置默认引擎,现在用的mysql默认基本都是InnoDB,所以其实都可以不用配置了
innodb_file_per_table=1 #表示独立表空间存储,可以不写

3.不同引擎在创建表的时候生成文件的不同

  创建四个表,分别使用innodb ,myisam ,memory ,balckhole 存储引擎,进行插入数据

#下面是使用四个不同的引擎来创建的表
create table t1(id int)engine=innodb;
create table t2(id int)engine=myisam;
create table t3(id int)engine=memory;
create table t4(id int)engine=blackhole;

2.数据类型

数字类型:

  整数:tinyint(极小),smallint(小),mediumint(中等), int ,bigint(大的)

        tinyint[(m)] [unsigned] [zerofill]

            小整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-128 ~ 127
无符号:
0 ~ 255 PS: MySQL中无布尔值,使用tinyint(1)构造。 int[(m)][unsigned][zerofill] 整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-2147483648 ~ 2147483647
无符号:
0 ~ 4294967295 bigint[(m)][unsigned][zerofill]
大整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-9223372036854775808 ~ 9223372036854775807
无符号:
0 ~ 18446744073709551615

  小数:

  float: 在位数比较短的情况下不准确

  double: 在位数比较长的情况下不准确  

  decimal: (如果用小数,推荐使用decimal)

    精准  内部原理是以字符串形式去存

字符串类型:

  char(10) : 定长,简单粗暴,浪费空间,存储速度快

  字符长度范围 : 0-255(一个中文是一个字符,是utf8编码的三个字节)

    比如: root 存储为root000000

  varchar(10) : 变长,精准,节省空间,存储速度慢

  字符长度范围: 0-65535

  注: varchar数据会储存真实的数据,例如' ab ',前后的空格也是会被储存起来

  sql优化 : 创建表时,定长的类型往前放(比如性别),变长的往后放(比如地址或者描述信息)

  

时间类型:

  类型:date ,time ,datetime ,imestamp,year

  最常用的 : datatime (年月日 时分秒)

枚举类型和集合类型 :(简单的数枚举类型是单选,集合类型是多选)

枚举类型 (enum)

create table t1(
name varchar(10),
size enum('x_small','small','mediun')
); size 结果为从三个中选择一个

集合类型(set或myset)

create table myset (col set('a', 'b', 'c', 'd'));
insert into myset (col) values ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

3.约束

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

约束条件的分类

primary key (PK)    标识该字段为该表的主键,可以唯一的标识记录
foreign key (FK) 标识该字段为该表的外键(一对一,一对多,多对多)
not null 标识该字段不能为空
null 标识该字段可以为空
unique key (UK) 标识该字段的值是唯一的
auto_increment 标识该字段的值自动增长(整数类型,而且为主键)
default 为该字段设置默认值 unsigned 无符号
zreofill 使用0填充

  

day36 数据库表操作 数据类型 完整性约束的更多相关文章

  1. Database学习 - mysql 数据库 表操作

    mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...

  2. 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作

    不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...

  3. MySQL数据库(2)_MySQL数据库和数据库表操作语句

    一.关于数据库操作的sql语句 -- .创建数据库(在磁盘上创建一个对应的文件夹) create database [if not exists] db_name [character set xxx ...

  4. MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  5. Mysql 数据库表操作

    ☞ 创建表CREATE TABLE `数据库`.`表` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT COMMENT '注释',`type_name` VARCHA ...

  6. MySQL数据库——表操作

    I.表操作 一.创建表 基本语法如下: create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8: ...

  7. Day36 数据库的操作

    视图操作: 1.左连接查询 select * from person left join dept on person.dept_id = dept.did 2. 右连接 3. 内连接  inner ...

  8. 数据库-->表操作

    一.MySQL存储引擎 # InnoDB MySql 5.6 版本默认的存储引擎.InnoDB 是一个事务安全的存储引擎,它具备提交.回滚以及崩溃恢复的功能以保护用户数据.InnoDB 的行级别锁定以 ...

  9. MySQL数据库-表操作-SQL语句(二)

    1. MySQL多表查询 1.1 外键约束 为了消除多张表查询出现的笛卡尔积的现象,MySQL在建表并进行多表之间的关键查询可以使用外键关联查询. 外键:从表1(sub)的某列引用(ref)另外一个表 ...

随机推荐

  1. SQL左右连接中的on and和on where的区别

    SQL左右连接中的on and和on where的区别 左联时,ON后面的对左边表的条件对左边表数据无影响(因为左连接符合左边所有条件),但对右边表数据有影响,只有符合左边表条件时,右边表数据才会查出 ...

  2. Asp.net core 学习笔记 ( Azure key-vault )

    参考 : https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-2 ...

  3. django-simple-captcha 验证码插件介绍 django-simple-captcha 使用 以及添加动态ajax刷新验证

    django-simple-captcha作为一款django的验证码插件,使用方法非常简单,能够快速应用到web应用中. 文档官网地址:django-simple-captcha 参考博客:http ...

  4. Servlet JDBC Example

    Develop a web application that should have following features. User can register and then login to t ...

  5. boke练习: springboot整合springSecurity出现的问题,post,delete,put无法使用

    springboot 与 SpringSecurity整合后,为了防御csrf攻击,只有GET|OPTIONS|HEAD|TRACE|CONNECTION可以通过. 其他方法请求时,需要有token ...

  6. English trip M1 - AC9 Nosey people 爱管闲事的人 Teacher:Solo

    In this lesson you will learn to talk about what happened. 在本课中,您将学习如何谈论发生的事情. 课上内容(Lesson) # four “ ...

  7. caffe---mnist数据集训练与测试

    1.数据.mnist_test_lmdb和mnist_train_lmdb数据 2.路径. (1)修改lenet_train_test.prototxt文件,训练和测试两处 source: " ...

  8. grid 用于同一用例在不同测试环境下的测试结果

    步骤: 1.http://www.seleniumhp.org/download   下载selenium standalone server 2.配置java环境 3.运行selenium serv ...

  9. SEND EMAIL SO_DOCUMENT_SEND_API1

    FUNCTION zcrm_send_email_and_attach . *"------------------------------------------------------- ...

  10. InnoDB存储引擎介绍-(1)InnoDB存储引擎结构

    首先以一张图简单展示 InnoDB 的存储引擎的体系架构. 从图中可见, InnoDB 存储引擎有多个内存块,这些内存块组成了一个大的内存池,主要负责如下工作: 维护所有进程/线程需要访问的多个内部数 ...