概述
无需赘述,mysql是当前十分常见的数据库,如需了解mysql背景、用途等,请自行百度。至于本博文闲着无聊可以看看。
连接数据库
假如您已经安装好了mysql数据库,此时需要连结到mysql。
mysql -h host -P 3306 -u user -p
Enter password: ****** 可以连接到数据库,如果已经有了数据库,可以直接使用它,否哦则,就需要自己创建数据库。使用如下命令可以查看当前数据库中已有的数据库。
mysql> show databases;
mysql> USE test;
Database changed
数据库只需要创建一次,但是必须在每次启动mysql时候USE 数据库名字;也可以在调用mysql时,通过命令行选择数据库,如下:
shell> mysql -h host -u user -p test
上面命令中的test不是所谓的密码。如果想要在命令-p选项后提供密码,不能插入空格。(例如:如-pmypassword,不是-p mypassword),不建议在命令中直接输入密码。
获取数据库和表的信息
- 列出由数据库管理的数据库。
mysql> show databases;
- 找出当前选择了哪个数据库
mysql> SELECT DATABASE();
- 找出当前数据库包含什么表?
mysql> SHOW TABLES;
- 查看表结构
mysql> DESCRIBE 表名;
- 如果表索引相关的信息
SHOW INDEX FROM tbl_name
常用操作的场景
本章的举例场景的sql都是基于下表:
CREATE TABLE `user` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
场景1: 业务已经上线使用,但是迭代了新的版本需要为线上数据库的某一个表添加一个字段:
ALTER TABLE `user` ADD COLUMN `age` int(20) DEFAULT 0 COMMENT '年龄';
场景2:组里新来的实习生小王为某个表添加字段却把字段长度设置的太小了,leader让我修改一下:
# 年龄嘛,10就够了,leader沟通的时候上下文这么不清晰,领导?我上我也行,就这。
ALTER TABLE `user` MODIFY COLUMN `age` int(10) DEFAULT 0 COMMENT '年龄';
场景3:经过几代人的传承,项目的数据库越来越复杂,也不知道某个关键业务表的,个别字段是啥意思,经过慎重的检查评估,确认当初的的设计并没有落地,字段冗余了,领导让我去优化。
ALTER TABLE `user` DROP COLUMN `age`; #我上来就干掉了年龄字段(很潇洒)
官方参考文档
有其他不会的自行翻阅文档吧,毕竟我也不会: