MySQL对表的操作以及数据类型

文章目录

创建

sql 复制代码
create table table_name (
field1 datatype,
field2 datatype,
field3 datatype
) charset 字符集 collate 校验规则 engine 存储引擎;

其中field 表示列名,datatype表示列的类型,字符集、校验规则、存储引擎不指明则默认为配置文件里写好的。

sql 复制代码
create table if not exists user1(
name varchar(20) comment '用户名',
password char(32) comment '密码',
birthday date comment '生日'
)charset=utf8 collate utf8_general_ci engine MyIsam;

comment 后面代表着这一列数据的说明

删除表

sql 复制代码
drop table table_name;

查看

sql 复制代码
show tables;

可以查看当前数据库里的所有表

sql 复制代码
desc table_name;

查看指定一张表的详细属性

Field:字段名

Type:字段类型

Null:是否可以为空

Key:索引类型

Default:默认值

Extra:扩充

修改

重命名表

sql 复制代码
alter table table_name rename to new_name;

新增列

sql 复制代码
alter table table_name add 字段名 字段类型 after 字段名

after 字段名 代表着在指定的列后面新增

修改列的属性

sql 复制代码
alter table table_name modify 字段名 字段属性

修改的本质是将新的属性直接覆盖旧的属性

删除列

sql 复制代码
alter table table_name drop 字段名;

修改列名

sql 复制代码
alter table table_name change 旧列名 新列名 列的属性;

注意:修改列名不仅要把新的列名输入,列的属性也一定要带上

插入数据

sql 复制代码
insert into table_name values(Field1, Field2...);

values后面带的是需要插入的数据,并且以逗号为分割按列插入

数据类型

分类 数据类型 说明
bit 位类型,显示时按照ASCLL码对应的值显示
tinyint --- [unsingd] 带符号范围:-128127,不带符号:0255,默认有符号
bool 0和1表示真假
smallint --- [unsingd] 带符号范围:-215~215-1,不带符号:0~2^16-1,默认有符号
int --- [unsingd] 带符号范围:-231~231-1,不带符号:0~2^32-1,默认有符号
bigint --- [unsingd] 带符号范围:-263~263-1,不带符号:0~2^64-1,默认有符号
float(M, D) --- [unsingd] M指定显示长度,D指定小数位数,占用4字节
double(M, D) --- [unsingd] 比float精度更大的小数,占用8字节
decimal(M, D) --- [unsingd] M指定显示长度,D指定小数位数
char(size) 固定长度字符串,最大255
varchar(size) 可变长度字符串,最大65535
blob 二进制数据
text 大文本,不支持全文索引,不支持默认值
date/datetime/timestamp 日期类(yyyy-mm-dd)/(yyyy-mm-dd hh:mm:ss)/timestamp表示时间戳
enum 枚举类型
set 可以有0或者多个值,其值来自表创建是规定的列值

enum和set

enum属性定义值必须要在创建表时定义enum里的字段中,例如上面的 男和女 ,因此如果想插入数据enum的值必须在男和女中。其中不仅可以直接定义为男和女,也可以根据下标。如上定义的表中,顺序是 男,女。所以对应男的下标为1,女的下标为2,注意下标是从1开始的。

插入数据的set同样也必须在定义的set集合中,但是set并没有下标,而是对应比特位。例如上面定义的 篮球,羽毛球,游泳。则当设置为1时,也就是001,所以对应的就是篮球,为2时,010对应的就是羽毛球。如果为3,011,则代表着篮球和羽毛球两个,set是一个集合可以设置多个

enum和set的查找

enum直接根据属性即可查询,也可以根据下标

set的循环是一个严谨匹配的,可能会有包含了两个set属性的数据,但是如果只是指明的去查询并不会查到。

因此想要查询set中包含了某个属性就要使用 find_in_set 这个函数

相关推荐
5***E6854 小时前
【SQL】写SQL查询时,常用到的日期函数
数据库·sql
遇见火星4 小时前
CentOS7 通过源码安装 Redis
数据库·redis·缓存
Mr.朱鹏4 小时前
RocketMQ安装与部署指南
java·数据库·spring·oracle·maven·rocketmq·seata
Coder-coco4 小时前
个人健康管理|基于springboot+vue+个人健康管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·mysql·论文
K哥11254 小时前
【9天Redis系列】基础+全局命令
数据库·redis·缓存
s***46984 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
f***R85 小时前
redis分页查询
数据库·redis·缓存
g***72705 小时前
【mysql】导出导入mysql表结构或者数据
数据库·mysql
煎蛋学姐5 小时前
SSM汽车租赁管理系统mfobv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·汽车·ssm 框架·汽车租赁管理系统
w***37515 小时前
Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
前端·数据库·spring