作为运维工程师,掌握MySQL的基础操作是日常工作的重要技能之一。本文将介绍MySQL中数据库和表的基本操作,帮助您快速上手或复习这些核心概念。
1 数据库基本操作
1.1 创建数据库
create database db_name;
-- 指定字符集和排序规则
create database db_name character set utf8mb4 collate utf8mb4_unicode_ci;
1.2 查看数据库
-- 列出所有数据库
show databases;
-- 查看特定数据库的创建语句
show create database db_name;
1.3 选择数据库
1.4 修改数据库
-- 修改字符集和排序规则
alter database db_name character set utf8 collate utf8_general_ci;
1.5 删除数据库
-- 慎用,会删除数据库中的所有数据
drop database db_name;
2 表的基本操作
2.1 创建表
create table table_name (id int auto_increment primary key,name varchar(50) not null,age int,email varchar(100),created_at timestamp default current_timestamp
) engine=innodb default charset=utf8mb4;
常见字段类型:
- int: 整数
- varchar(n): 可变长度字符串,最大n个字符
- char(n): 固定长度字符串
- text: 长文本
- date/datetime/timestamp: 日期时间类型
- decimal(m,n): 精确小数,m总位数,n小数位
2.2 查看表
-- 列出当前数据库中的所有表
show tables;-- 查看表结构
describe table_name;
desc table_nbame;-- 查看表的创建语句
show create table table_name;-- 查看表的详细信息
show table status like 'table_name';
2.3 修改表结构
-- 添加列
alter table table_name add column column_name varchar(100) after existing_column;-- 修改列
alter table table_name modify column column_name varchar(150);
alter table table_name change column old_name new_name varchar(100);-- 删除列
alter table table_name drop column column_name;-- 重命名表
alter table old_name rename to new_name;
rename table old_name to new_name;
2.4 删除表
-- 慎用,会删除表及其所有数据
drop table table_name;
3 数据操作基础
3.1 插入数据
-- 插入单行
insert into table_name (column1, column2) values (value1, value2);-- 插入多行
insert into table_name (column1, column2) values
(value1, value2),
(value3, value4),
(value5, value6);-- 从其他表插入数据
insert into table_name (column1, column2)
select column1, column2 from source_table where condition;
3.2 查询数据
-- 基本查询
select * from table_name;
select column1, column2 from table_name;-- 条件查询
select * from table_name where condition;
select * from table_name where column1 = 'value' and column2 > 100;-- 排序
select * from table_name order by column1 asc, column2 desc;-- 分组
select column1, count(*) from table_name group by column1;-- 分页
select * from table_name limit 10 offset 20;
select * from table_name limit 20, 10;
3.3 更新数据
update table_name set column1 = value1, column2 = value2 where condition;
3.4 删除数据
-- 删除符合条件的行
delete from table_name where condition;
-- 删除表中所有数据
truncate table table_name;