搜索

mysql怎么使用数据库

发表于 2026-10-17 06:18:00 来源:烟消火灭网

装完 MySQL 后第一件事不是用数建表,是据库搞清楚你连的是哪个数据库。我见过太多人敲了半天 SQL 报错,用数结果发现压根没选库。据库

MySQL 的用数层级很简单:服务器里可以有多个数据库(database),每个数据库里有多张表(table)。据库你连上服务器之后,用数面对的据库不是一张白纸,而是用数一堆已经存在的库,比如 information_schema、据库mysql、用数performance_schema 这些系统库。据库别去动它们。用数

看有哪些库

SHOW DATABASES;

这条命令返回一个列表。据库如果你刚装好,用数大概率只有系统库。想用自己的,得先建一个。

建库和选库

CREATE DATABASE myapp DEFAULT CHARACTER SET utf8mb4; USE myapp;

utf8mb4 这个字符集值得说一下。MySQL 里的 utf8 其实是个残废,最多存三个字节,emoji 和某些生僻汉字存不进去。utf8mb4 才是真正的 UTF-8。这个坑十年前就有人踩,到现在还有人踩。

USE myapp; 执行后,你后续所有操作默认都在这个库里。如果你用命令行客户端,提示符会从 mysql> 变成 mysql> 后面跟库名——有些版本显示,有些不显示,别指望它提醒你。

建表

CREATE TABLE users ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(120) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

几个细节。INT UNSIGNED 让 id 从 0 开始且不能为负,范围翻倍。AUTO_INCREMENT 让 MySQL 自己管编号,你不用操心。PRIMARY KEY 是主键,唯一且非空。UNIQUE 约束 email 不重复,但允许多个 NULL——这是 SQL 标准,不是 MySQL 的 bug。DEFAULT CURRENT_TIMESTAMP 让插入时自动填时间,省得应用层再写代码。

增删改查

插入一行:

INSERT INTO users (name, email) VALUES ('老张', 'zhang@example.com');

查:

SELECT id, name FROM users WHERE name LIKE '老%';

LIKE 配合 % 是模糊匹配,但注意——以 % 开头的查询用不上索引,数据量大了会全表扫描。我之前有个项目,用户表才三万行,一个 LIKE '%关键词%' 查询跑了 1.2 秒。后来改成全文索引才压下去。

改:

UPDATE users SET email = 'new@example.com' WHERE id = 1;

忘了写 WHERE 你就把全表改了。MySQL 不会拦你,命令行客户端也不会二次确认。这是新手最常见的翻车现场。

删:

DELETE FROM users WHERE id = 1;

同样,没有 WHERE 就是清空全表。想清空更快可以用 TRUNCATE TABLE users;,它直接重建表,不走事务日志,但也不能回滚。

看看表结构

DESCRIBE users;

或者 SHOW CREATE TABLE users; 看完整的建表语句。后者更详细,连字符集和引擎都列出来。我习惯用后者,因为能直接复制去改。

删库

DROP DATABASE myapp;

执行完,库里所有表和数据瞬间消失,没有回收站。生产环境敲这条命令之前,最好先确认自己没连错服务器。我认识一个哥们,半夜加班手抖,在跳板机上把测试库当生产库删了——还好是测试库。但这种事,想一次就够后怕的。

日常操作基本就这些。剩下的 JOIN、索引、事务、权限,都是在这个骨架上长出来的。先把库选对,再动手写 SQL,能省掉一半莫名其妙的报错。

随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by mysql怎么使用数据库,烟消火灭网   sitemap

回顶部