maridb数据库表及字段增删改
mariadb数据类型
mariadb数据类型分为数字、日期、时间以及字符串值。
适用类型原则:够用就行,尽量使用范围小的,而不用大的
常用数据类型:
1、整数 int,bit #例如 年纪 适用于必须是整数的
2、小数 decimal # 例如 身高、收入 #decimal(5,2) 5位数保留小数点后两位 decimal(7,1)7位数保留小数点后两位
3、字符串 char,varchar (可定义字符) #例如 姓名 、班级、籍贯等等,也可以整数、小数等数据类型 但是不能函数运算
4、日期时间 date,time,datetime
5、枚举类型 enum #可指定的类型 例如 性别
约束:
主键primary key:物理上存储的顺序
非空not null:此字段不能为空
唯一unique:此字段不允许重复
默认default:当不填写此值时会使用默认值,如果填写则已填写为准
外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
创建一张class表 (id,name,age)
1 2 | MariaDB [testdb]> create table class( id int primary key not null auto_increment,name varchar(20), age tinyint unsigned); Query OK, 0 rows affected (0.00 sec) |
在class表中插入数据 insert into
1 2 | MariaDB [testdb]> insert into class(name,age) values( '李志锋' ,29); Query OK, 1 row affected (0.00 sec) |
查看class表 select
1 2 3 4 5 6 7 | MariaDB [testdb]> select * from class; +----+-----------+------+ | id | name | age | +----+-----------+------+ | 1 | 李志锋 | 29 | +----+-----------+------+ 1 row in set (0.00 sec) |
查看表结构 desc
1 2 3 4 5 6 7 8 9 | MariaDB [testdb]> desc class; +-------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | +-------+---------------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec) |
修改表-添加字段 --alter table 表名 add 列名 类型;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | MariaDB [testdb]> alter table class add gender enum ( '男' , '女' , '保密' ); Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [testdb]> desc class; +--------+----------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+----------------------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | gender | enum( '男' , '女' , '保密' ) | YES | | NULL | | +--------+----------------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) |
修改表-修改表字段类型不重名版本 --alter table 表名 modify 列名 类型及约束;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | MariaDB [testdb]> alter table class modify gender enum( '男' , '女' , '保密' ) default '保密' ; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [testdb]> desc class; +----------+----------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | gender | enum( '男' , '女' , '保密' ) | YES | | 保密 | | | birthday | datetime | YES | | NULL | | +----------+----------------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) |
修改表-修改表字段名称、类型 --alter table 表名 change 原名 新名 类型及约束;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | MariaDB [testdb]> alter table class change birthday birth date ; Query OK, 1 row affected (0.02 sec) Records: 1 Duplicates: 0 Warnings: 0 MariaDB [testdb]> desc class; +--------+----------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+----------------------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | gender | enum( '男' , '女' , '保密' ) | YES | | 保密 | | | birth | date | YES | | NULL | | +--------+----------------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) |
修改表-删除字段 -- alter table 表名 drop 列名;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | MariaDB [testdb]> alter table class drop gender; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [testdb]> desc class; +-------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | birth | date | YES | | NULL | | +-------+---------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) |
修改表内容
--update 表名 set 列1=值1, 列2=值2... where 条件;
例: 将class表中的绿帽子改成红帽
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | MariaDB [testdb]> select * from class; +----+-----------+------+-------+------+ | id | name | age | birth | high | +----+-----------+------+-------+------+ | 1 | 李志锋 | 29 | NULL | NULL | | 2 | 绿帽子 | 19 | NULL | NULL | | 3 | 王晶 | 29 | NULL | NULL | +----+-----------+------+-------+------+ 3 rows in set (0.00 sec) MariaDB [testdb]> update class set name=( '红帽' ) where id =2; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [testdb]> select * from class; +----+-----------+------+-------+------+ | id | name | age | birth | high | +----+-----------+------+-------+------+ | 1 | 李志锋 | 29 | NULL | NULL | | 2 | 红帽 | 19 | NULL | NULL | | 3 | 王晶 | 29 | NULL | NULL | +----+-----------+------+-------+------+ 3 rows in set (0.00 sec) |
删除表内容
delete from 表名 where 条件
例:将class表中的红帽删除
1 2 3 4 5 6 7 8 9 10 11 | MariaDB [testdb]> delete from class where name=( '红帽' ); Query OK, 1 row affected (0.00 sec) MariaDB [testdb]> select * from class; +----+-----------+------+-------+------+ | id | name | age | birth | high | +----+-----------+------+-------+------+ | 1 | 李志锋 | 29 | NULL | NULL | | 3 | 王晶 | 29 | NULL | NULL | +----+-----------+------+-------+------+ 2 rows in set (0.00 sec) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」