Python基础之数据库:5、创建表的完整语法、MySQL数据类型
一、创建表的完整语法
1、创建表的语法
create table 表名(
字段名1 字段类型(数字) 约束条件,
字段名2 字段类型(数字) 约束条件,
字段名3 字段类型(数字) 约束条件,...)

2、创建表的条件
- 字段名和字段类型必须填写
- 数字和约束条件是可选的,可以不填
- 约束条件也可以写多个,空格隔开就可以
3、数字的含义
在创建表的时候,字段名后会加上数据的类型,而数据类型的后面又会加上数字,数字在很多地方都是用来限制储存数据的长度,但是在整型中数字是用来控制展示的长度,因此在写整型时,通常不用加数字
create table t12(id int(3)); 不是用来限制长度
insert into t12 values(12345);
create table t13(id int(5) zerofill); 而是用来控制展示的长度
insert into t13 values(123),(123456789);
create table t14(id int);
二、MySQL数据类型
1、字段类型之整型
整型的种类:
tinyint
- 特点:最大可以储存1个bytes(正负号占一个bit)
smallint
- 特点:最大可以储存2个biyts(正负号占一个bit)
int
- 特点:最大可以储存4个biyts(正负号占一个bit)
bigint
- 特点:最大可以储存8个biyts(正负号占一个bit)

MysSQL中整型默认自带正负号,正负号会占用一个bit,也就是说整型的最大值会受正负号影响,下面可以通过添加数据的方式验证正负号的存在
取消正负号:
在创建表的阶段,在整型类型后添加关键词,就可以取消正负号
create table 表名(字段名 整型的类型 unsigned);

2、字段类型之浮点型
浮点型的种类:
- float(m,d)
- 特点:单精度浮点型 8位精度(4字节) m总个数,d小数位
- double(m,d)
- 特点:双精度浮点型 16位精度(8字节) m总个数,d小数位
- decimal(m,d)
- 特点:DECIMAL是一种定点类型,即所有值都有一个固定的小数位数。这 一点的重要性在于DECIMAL值不会像浮点数那样存在四舍五入的问题
- M的取值范围是1〜65,D的取值范围是0〜30,且不超过M

3、字段类型之字符类型
字符类型的种类:
- char(n)
- 特点:固定长度,最多255个字符
- carchar(n)
- 特点:可变长度,最多65535个字符
区别:
char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。

4、字段类型之枚举与集合
- 枚举(多选一)
- 枚举指在创建表的时候,指定的字段名后可以填入枚举类型,在关键词后方括号内,填入多个数据值,后期在往该字段名下添加数据时,只能添加枚举后括号内多个数据值的其中一个,否则将会报错
- 关键词:enum(数据值1, 数据值2,...)
枚举:
多选一
create table t15(
id int,
name varchar(32),
gender enum('male','female','others')
);
insert into t15 values(1,'tony','猛男');
insert into t15 values(2,'jason','male');
insert into t15 values(3,'kevin','others');
- 集合(多选多/多选一)
- 集合和枚举的功能相似,也是在定义字段名阶段,在字段名后方添加集合关键词,在括号内填入多个数据值,在后期添加该字段名的数据的时候,可以填入指定的一个或多个数据值,指定外的数据值无法添加
- 关键词:set(数据值1, 数据值2,...)
集合
多选多/多选一
create table t16(
id int,
name varchar(16),
hobbies set('basketabll','football','doublecolorball')
);
insert into t16 values(1,'jason','study');
insert into t16 values(2,'tony','doublecolorball');
insert into t16 values(3,'kevin','doublecolorball,football');
5、字段类型之日期类型
类型的种类:
datetime 年月日时分秒
date 年月日
time 时分秒
year 年
代码用法:
create table t17(
id int,
name varchar(32),
register_time datetime,
birthday date,
study_time time,
work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
涉及到时间类型的一般无需我们手动添加,系统都会自动进行添加
Python基础之数据库:5、创建表的完整语法、MySQL数据类型的更多相关文章
- python 之 数据库(创建表的完整语法、基本数据类型)
10.4 创建表的完整语法 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); #类型:使用限 ...
- PHP连接数据库、创建数据库、创建表的三种方式
这篇博客主要介绍了三种方式来连接MySQL数据库以及创建数据库.创建表.(代码是我在原来的基础上改的) MySQLi - 面向对象 MySQLi - 面向过程 PDO MySQLi 面向对象 < ...
- 第三百零六节,Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置
Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...
- 四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置
Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...
- Oracle数据库之创建表结构
Oracle数据库之创建表结构 主键与外键 主键:关系型数据库中的一条记录中有若干个属性,若其中的某一个属性组(可以是一个属性,也可以是多个)能唯一标识一条记录,那么该属性组就是主键. 外键:关系型数 ...
- Oracle数据库之创建表空间与用户
Oracle数据库之创建表空间与用户 一.创建表空间 基本语法表述: CREATE TABLESPACE tablespace_name [DATAFILE datafile_spec1 [,data ...
- Laravel 6.X 数据库迁移 创建表 与 修改表
数据库迁移创建表 本篇文章中使用的是mysql数据库,其他数据库需要修改env文件和app配置,请其他地方搜索一下就会找到. 创建示例 1.创建users表: 命令行键入 php artisan ma ...
- 传智 Python基础班+就业班+课件 【最新完整无加密视频课程】
点击了解更多Python课程>>> 传智 Python基础班+就业班+课件 [最新完整无加密视频课程] 直接课程目录 python基础 linux操作系统基础) 1-Linux以及命 ...
- django-连接数据库及创建表,已存字段的增删
连接数据库 配置文件settings DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 你的数据库引擎 'HOST' ...
- 跟我学Windows Azure 二 使用SQL Azure创建数据库服务器,创建数据库,创建表
登陆Windows Azure门户 输入我们上一节课所注册的帐号及密码,点击登陆. 选择SQL 数据库,选择服务器 选择创建数据库服务器 设置访问数据库服务器的登陆帐号及密码 点击确定完成数据库服务器 ...
随机推荐
- 1.关于433MHz按键单片机解码
近段时间做项目要用到单片机接收433MHz按键发过来的码值,涉及短按.连按.长按,由于之前没有做过这方面一开始有点蒙,找遍网上都没有案例,现在项目完成了整理自己的一些心得和大家分享分享!!!直入主题. ...
- js 对象的深复制 解决不能复制undefined (递归)
用普通的拷贝 JSON.parse和 JSON.stringify 进行对象拷贝是不会拷贝undefined //普通的拷贝 const obj = { a: { ...
- 使用kuboard界面管理k8s集群时使用ConfigMap挂载挂载到pod容器中,映射成一个文件夹
将 ConfigMap 作为一个数据卷(在挂载时不指定数据卷内子路径,需要指定ConfigMap的子路径)挂载到容器,此时 ConfigMap 将映射成一个文件夹,每一个 KEY 是文件夹下的文件名, ...
- 2. 在 Kubernetes 上安装 Gitlab
总结: 所需要的三个yaml文件的下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/k8s-gitlab.zip Gitlab官方提供了 Helm 的 ...
- 1_requests基础用法
requests模块的基本使用 什么是requests模块? Python中封装好的一个基于网络请求的模块 requests模块的作用? 用来模拟浏览器发请求 requests模块的环境安装: pip ...
- HCIP-OSPF域间路由
链路类型: P2P:描述了对端链路信息和本端链路信息. (描述了从一台路由器到另外一台路由器之间点到点的链路信息,用来描述拓扑信息,P2P.P2MP) TransNET:描述了从一台路由器需要经过一个 ...
- Python中dataclass库
目录 dataclass语法 一. 简介 二. 装饰器参数 三. 数据属性 1. 参数 2. 使用示例 3. 注意事项 四. 其他 1. 常用函数 2. 继承 3. 总结 dataclass语法 一. ...
- SpringBoot常用场景
SpringBoot-常见场景 1.热部署 SpringBoot为我们提供了一个方便我们开发测试的工具dev-tools.使用后可以实现热部署的效果.当我们运行了程序后对程序进行了修改,程序会自动 ...
- PTA2022 520钻石争霸赛题解
7-1 520表白 不用说 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int max ...
- POJ3280 Cheapest Palindrome (区间DP)
dp[i][j]表示将字符串子区间[i,j]转化为回文字符串的最小成本. 1 #include<cstdio> 2 #include<algorithm> 3 #include ...