作為運維工程師,掌握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;