Mysql基础知识之SQL语句——库表管理操作
👋 欢迎来到我的技术博客
大家好!我是一名深耕操作系统、云计算与人工智能领域的程序员。一直以来,我都坚信一个成长公式:清晰的逻辑 + 持续的积累 = 稳健的成长。
在这个博客里,我会定期分享三类核心内容:
- 体系化的学习笔记,帮你梳理技术脉络
- 接地气的实战经验,带你避开踩坑雷区
- 深度化的技术思考,助你突破认知边界
我始终追求用「简单易懂的表达」讲清楚「复杂抽象的技术」,让不同阶段的开发者都能有所收获。
而今天,我们的主题聚焦于MySQL。无论你是刚接触数据库的新手,还是正在优化性能的进阶开发者,都希望这篇内容能为你带来启发,或是成为可复用的实用参考。

目录
一、SQL类型----结构化查询语言
二、数据库管理操作
1、查看数据库
2、创建数据库
3、查看数据库创建信息
4、删除数据库
5、切换数据库
三、数据表的管理操作
1、创建表
2、查看表
3、查看表结构
4、删除表
四、MySQL存储引擎 storage engine
1、常用的存储引擎
1、查看表创建信息
2、查看支持的存储引擎
3、存储引擎介绍
InnoDB表
.frm 表结构文件
修改存储引擎 --- /etc/my.cnf
一、SQL类型----结构化查询语言
- DDL 数据定义语言
- 对库、表、用户定义的管理
- create, drop, alter
- DML 数据管理/操作语言
- 对表中的数据进行操作
- insert, delete、update、select
- DCL 数据控制语言
- 对数据库用户、权限进行管理
- grant, revoke
二、数据库管理操作
1、查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
MySQL首次启动初始化生成的数据库,作用说明 :
1、information_schema
保存数据库服务器上元数据信息(数据库名称、数据表名、字段名称、数据类型)
2、mysql
保存用户名、密码、权限
3、performance_schema
保存数据服务器性能相关的数据,例如连接数、进程、线程、
4、sys
对performance_schema数据库的简化,方便数据库管理员查看
2、创建数据库
> create databse <数据库名称>;mysql> create database caiwu;
3、查看数据库创建信息
mysql> create database testdb charset utf8;
Query OK, 1 row affected (0.00 sec)mysql> show create database testdb;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
修改mysql默认的字符集---/etc/my.cnf
collation-server = utf8_general_ci
character-set-server = utf8
4、删除数据库
mysql> drop database caiwu;
Query OK, 0 rows affected (0.00 sec)
5、切换数据库
mysql> select database();
+------------+
| database() |
+------------+
| testdb |
+------------+
1 row in set (0.00 sec)mysql> use game;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| game |
+------------+
1 row in set (0.00 sec)
三、数据表的管理操作
1、创建表
> create table 表名(字段名称 数据类型 [属性], 字段名称 数据类型 [属性], .........)mysql> use game;
Database changed
mysql>
mysql> create table account(-> id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,-> name CHAR(20) NOT NULL,-> password CHAR(30) NOT NULL,-> level INT UNSIGNED default 1);
Query OK, 0 rows affected (0.00 sec)
数据类型
- 数字
- int、smallint、tinyint、bigint、mediumint 整型
- int unsigned 无符号整型
- float(5,3) 单精度浮点数 4.178
- double(5,3) 双精度浮点数
- decimal(5,3) 财务
- int、smallint、tinyint、bigint、mediumint 整型
- 字符
- char(10) 定长字符
- varchar(20) 变长字符
- text
- enum("男", "女") 枚举 ENUM("yes", "no")
- 日期时间
- date YYYY-MM-DD
- datetime YYYY-MM-DD HH:MM:SS
- timestamp YYYY-MM-DD HH:MM:SS
在数据变化时,时间会自动更新
属性
- primary key 主键
- unique key 惟一键
- not null 不允许为空
- auto_increment 自动增长, 配合primary key使用
- default "数据" 设置字段的默认值
2、查看表
mysql> show tables;
+----------------+
| Tables_in_game |
+----------------+
| account |
| tb01 |
+----------------+
2 rows in set (0.00 sec)
3、查看表结构
mysql> desc account;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(20) | NO | | NULL | |
| password | char(30) | NO | | NULL | |
| level | int(10) unsigned | YES | | 1 | |
+----------+------------------+------+-----+---------+----------------+
4 rows in set (0.03 sec)
4、删除表
mysql> drop table tb01;
四、MySQL存储引擎 storage engine
1、常用的存储引擎
- InnoDB
- 支持事务、外键
- 适用于OLTP场景, 在线事务处理系统
- MyISAM
- 查询性能高
- 适用于OLAP场景, 在线事务分析系统
1、查看表创建信息
mysql> show create table account\G;
*************************** 1. row ***************************Table: account
Create Table: CREATE TABLE `account` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` char(20) NOT NULL,`password` char(30) NOT NULL,`level` int(10) unsigned DEFAULT '1',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
2、查看支持的存储引擎
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
3、存储引擎介绍
InnoDB表
.frm 表结构文件
.ibd 表数据文件(数据、索引信息)
MyISAM表
.frm 表结构文件
.MYD 表数据文件
.MYI 表索引文件
修改存储引擎 --- /etc/my.cnf
[mysqld]
default-storage-engine=InnoDB
