day36 数据库表操作 数据类型 完整性约束
今日内容
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 数据库表操作 数据类型 完整性约束的更多相关文章
- Database学习 - mysql 数据库 表操作
mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...
- 传智播客JavaWeb day09-mysql入门、数据库操作、数据库表操作、数据行操作
不知不觉已到了第九天了,今天主要讲了关系数据库的基本概述.安装.数据库.表和数据行的操作 1. 基本概述 1.1 数据库就是用来存储数据的.早期是存在文件里面的操作起来效率低而且不是很安全. 1.2 ...
- MySQL数据库(2)_MySQL数据库和数据库表操作语句
一.关于数据库操作的sql语句 -- .创建数据库(在磁盘上创建一个对应的文件夹) create database [if not exists] db_name [character set xxx ...
- MySQL数据库-表操作-SQL语句(一)
1. 数据库操作与存储引擎 1.1 数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...
- Mysql 数据库表操作
☞ 创建表CREATE TABLE `数据库`.`表` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT COMMENT '注释',`type_name` VARCHA ...
- MySQL数据库——表操作
I.表操作 一.创建表 基本语法如下: create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8: ...
- Day36 数据库的操作
视图操作: 1.左连接查询 select * from person left join dept on person.dept_id = dept.did 2. 右连接 3. 内连接 inner ...
- 数据库-->表操作
一.MySQL存储引擎 # InnoDB MySql 5.6 版本默认的存储引擎.InnoDB 是一个事务安全的存储引擎,它具备提交.回滚以及崩溃恢复的功能以保护用户数据.InnoDB 的行级别锁定以 ...
- MySQL数据库-表操作-SQL语句(二)
1. MySQL多表查询 1.1 外键约束 为了消除多张表查询出现的笛卡尔积的现象,MySQL在建表并进行多表之间的关键查询可以使用外键关联查询. 外键:从表1(sub)的某列引用(ref)另外一个表 ...
随机推荐
- Linux下计划任务以及crontab权限问题
在Linux工作环境下,我们有时可能会需要在未来某个时间执行某个命令或脚本,但是我们又不可能定个闹钟,然后到点了再去执行吧,这多麻烦.还好我们的Linux系统这么强大,提供了任务计划这个功能,我们就不 ...
- Java定时器的三种实现方式
一.普通thread /** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果.这样可以快速简单的实现, ...
- Java创建多线程和线程安全集合Vector
public class Test { public static Vector<String> data = new Vector<String>(); public sta ...
- PHP数组排序函数有哪些
PHP数组排序函数有哪些 一.总结 一句话总结:其实也就是是否保持索引,对键排序还是对值排序,除了sort,rsort.shuffle,usort外,都是保持索引的 是否保持索引 键排序 值排序 除了 ...
- <山月记>:中岛敦 -选段
因为害怕自己并非明珠而不敢刻苦琢磨,又因为有几分相信自己是明珠,而不能与瓦砾碌碌为伍,遂逐渐远离世间,疏避人群,结果在内心不断地用愤懑和羞怒饲育着自己懦弱的自尊心.世上每个人都是驯兽师,而那匹猛兽,就 ...
- wpf 使用DocumentViewer打印
https://blog.csdn.net/duanzi_peng/article/details/14118937?locationNum=15 https://www.cnblogs.com/zl ...
- Lab 6-2
Analyze the malware found in the file Lab06-02.exe. Questions and Short Answers What operation does ...
- pycharm安装步骤
python环境配置教程 https://jingyan.baidu.com/article/c45ad29c05c208051653e270.html 由于安装Pycharm时忘记截图了,所以详细安 ...
- Linear Kingdom Races CodeForces - 115E (线段树优化dp)
大意: n条赛道, 初始全坏, 修复第$i$条花费$a_i$, m场比赛, 第$i$场比赛需要占用$[l_i,r_i]$的所有赛道, 收益为$w_i$, 求一个比赛方案使得收益最大. 设$dp[i]$ ...
- 『MXNet』第一弹_基础架构及API
MXNet是基础,Gluon是封装,两者犹如TensorFlow和Keras,不过得益于动态图机制,两者交互比TensorFlow和Keras要方便得多,其基础操作和pytorch极为相似,但是方便不 ...