【MySQL基础】数据库及表基本操作

发布于:2025-03-29 ⋅ 阅读:(28) ⋅ 点赞:(0)
作为运维工程师,掌握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 选择数据库

-- 切换到指定数据库 
use db_name;

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;