MySql数据库从0到1学习-第一天DDL学习

DDL

数据库(查询/创建/修改/删除)

查询数据库

以下语句的database 可以替换为schema,效果一样

//展示所有的数据库
show database; 

//显示当前选择的数据库
select database(); 
创建数据库
//创建一个数据库叫db_name
create database db_name;

//如果不存在就创建db_name
create database if not exists db_name; 
删除数据库
//删除数据库叫db_name
drop database db_name;

//删除数据库叫db_name,如果有才删除
drop database if exists db_name;
使用数据库
//使用数据库名为db_name
use db_name;

表(创建/删除/修改)

创建表
//字段约束为可选,可以不添加
create table 表名(
    字段1 字段类型 字段约束 comment 字段注释,
    字段2 字段类型 字段约束 comment 字段注释,
    字段3 字段类型 字段约束 comment 字段注释,
    ....
)[comment 表注释];
查询表
//查询数据库下所有的表
show tables;

//查询表的表结构
desc 表名;

//查询建表语句
show create table 表名;
修改表
//添加字段
alter table 表名  add 字段名 类型 约束 comment 注释;

//修改字段类型
alter table 表名 modify 字段名 新数据类型

//修改字段名和字段类型
alter table 表名 change 旧字段名  新字段名 类型 约束 comment 注释;

//删除字段
alter table 表名 drop column 字段名;

//修改表名
rename table 表名 to 新表名;
表字段约束
约束 描述 关键字
非空约束 限制该字段不可为null not null
唯一约束 保证该字段的所欲数据都是唯一,不重复的 unique
主键约束 主键是一行数据的唯一标识,要求非空且唯一 primary key
默认约束 保存数据时,如果没有指定值,则使用默认值 default
外键约束 让两张表的数据建立联系,保证数据的一致性和完整行 foreign key

表字段的数据类型

主要分为三类,数值类型/字符串类型/日期时间类型

数值类型
类型 大小(byte) 有符号(SIGNED)范围 无符号(UNSIGNED范围 描述 备注
tinyint 1 (-128,127) (0,255) 小整数值
smallint 2 (-32768,32767) (0,65535) 大整数值
mediumint 3 (-8388608,8388607) (0,16777215) 大整数值
int 4 (-2147483648,2147483647) (0,4294967295) 大整数值
bitint 8 (-2^63,2~63-1) (0,2^64-1) 极大整数值
float 4 (-3.402823466 E+38,3.402823466351 E+38) 0 和(1.175494351 E-38,3.402823466 E+38) 单精度浮点数值 float(5.2):5表示整个数字长度,2表示小数位个数
double 8 (-1.7976931348623157 E+308,1.7976931348623157 E+308) 0和(2.2250738585072014 E-308,1.7976931348623157 E+308) 双精度浮点数值 double(5.2):5表示整个数字长度,2表示小数位个数
decimal 小数值(精度更高) decimal(5.2):5表示整个数字长度,2表示小数位个数
日期类型
类型 大小 范围 格式 描述
date 3 1000-01-01 至 9999-12-31 YYYY-MM-DD 日期值
time 3 -838:59:59 至 838:59:59 HH:MM:SS 时间值或持续时间
year 1 1911-2155 YYYY 年份值
datetime 8 1000-01-01 00:00:00 至 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
timestamp 4 1970-01-01 00:00:01 至2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

字符串类型

类型 大小 描述
char 0-255bytes 定长字符串-->例如(char(10),无论是三个还是四个字符都是占用10个字符空间)性能高,但是浪费空间
varchar 0-65535bytes 变长字符串-->例如(varchar(10),最多10个字符,不足10个按实际长度存储)性能低,节省空间
tinyblob 0-255bytes 不超过255个字符的二进制数据
tinytext 0-255bytes 短文本字符串
blob 0-65535bytes 二进制的长文本数据
text 0-65535bytes 长文本数据
mediumblob 0-16777215bytes 二进制形式的中等长度文本数据
mediumtext 0-16777215bytes 中等长度文本数据
longblob 0-4294967295bytes 二进制形式的极大文本数据
longtext 0-4294967295bytes 极大文本数据
相关推荐
缘友一世37 分钟前
macos安装mongodb
数据库·mongodb·macos
limengshi13839242 分钟前
通信工程学习:什么是RIP路由信息协议
网络·网络协议·学习·智能路由器·信息与通信
xiaobuding_QAQ2 小时前
自用Proteus(8.15)常用元器件图示和功能介绍(持续更新...)
单片机·嵌入式硬件·学习·proteus
万事大吉CC2 小时前
mysql单表查询·3
数据库·mysql
wei_shuo2 小时前
偏标记学习+图像分类(论文复现)
学习·分类·数据挖掘
bin91533 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha3 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐4 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
加油,旭杏5 小时前
【中间件学习】fastCG介绍和使用
学习·nginx·fastcgi
limengshi1383925 小时前
通信工程学习:什么是TFTP简单文件传输协议
网络·网络协议·学习·信息与通信