一、linux命令行进入数据库
1. linux进入登录mysql
#mysql -u用户名 -p #u指定用户名,-p之后回车,提示输入数据库密码进行登录 示例里用户名为root
mysql -uroot -p
二、数据库命令行操作
2. 显示所有库
show databases;
3. 创建数据库
-- 创建名为test_db的数据库,字符集设置为utf8mb4,字符集排序规则为utf8mb4_croatian_ci
create database test_db default charset utf8mb4 collate utf8mb4_croatian_ci;
4. 进入并使用某个库 #进入名为test_db的库
use test_db;
5. 导入数据库文件
-- 导入/root/test/目录下的test_db.sql文件
source /root/test/test_db.sql;
6 . 显示test_db库中所有表名
show tables;
7. 显示当前库中所有表的基本信息(所在库、表名、使用的引擎、数据行数、数据大小、表备注等)
select * from information_schema.`TABLES` t WHERE t.TABLE_SCHEMA = (select database())
8. 创建表(建议去看看 MySQL 创建数据库 | 菜鸟教程)
-- 删除test_tb表
DROP TABLE IF EXISTS `test_tb`;
-- 创建test_tb表以及表中各字段
CREATE TABLE `test_tb` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`articleTitle` varchar(500) DEFAULT NULL COMMENT '文章标题',
`createTime` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
9. 索引创建
-- 1.为test_tb表的column_1字段添加PRIMARY KEY(主键索引)
ALTER TABLE `test_tb` ADD PRIMARY KEY (`column_1`) ;
-- 2.为test_tb表的column_2字段添加UNIQUE(唯一索引)
ALTER TABLE `test_tb` ADD UNIQUE (`column_2`);
-- 3.为test_tb表的column_3字段添加INDEX(普通索引) 索引名为index_name
ALTER TABLE `test_tb` ADD INDEX index_name (`column_3`);
-- 4.为test_tb表的column_4字段添加FULLTEXT(全文索引)
ALTER TABLE `test_tb` ADD FULLTEXT (`column_4`);
-- 5.为test_tb表的column_1、column_2、column_3字段添加多列索引 索引名为index_name
ALTER TABLE `test_tb` ADD INDEX index_name (`column_1`, `column_2`, `column_3`);
10. 新增、修改、删除 字段
-- 在test_tb 表的 valid_status 字段之后 新增一个字段,设置对应的类型,长度,是否为null,默认值,注释
ALTER TABLE test_tb ADD COLUMN `is_staff` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否是从业人员 0否 1是' AFTER `valid_status`;
-- 修改字段column1的类型
ALTER TABLE test_tb MODIFY column1 VARCHAR(10) NOT NULL DEFAULT '' COMMENT '字段注释';
-- 修改字段column_old 的名称为 column_new,此时要重新指定该字段的类型
ALTER TABLE test_tb CHANGE column_old column_new VARCHAR(10) NOT NULL DEFAULT '' COMMENT '字段注释';
-- 删除test_tb表的 column1字段
ALTER TABLE test_tb DROP COLUMN column1;
11. 查询表、字段信息
-- 查询表的结构(所有字段、索引 等)
DESC 表名;
-- 第一种: 表中所有字段信息
select COLUMN_NAME,COLUMN_COMMENT from information_schema.columns where table_name='表名'
-- 第二种: 查询指定字段信息
select COLUMN_NAME,COLUMN_COMMENT from information_schema.columns WHERE column_name='字段名' and table_name = '表名'
-- 第三种: 查询表信息与字段信息
SELECT * FROM information_schema.columns WHERE COLUMN_NAME='字段' and table_name = '表名';
SELECT * FROM information_schema.columns WHERE table_name = '表名';
12. 退出mysql命令行窗口
-- 退出mysql命令模式
exit;
二、linux命令导出数据库
13. linux命令导出数据库.sql文件
# 导出名为test_db的数据库,到/root/目录下,文件名为test_db.sql
mysqldump -uroot -p test_db > /root/test_db.sql# 使用 --no-data 表示仅备份库结构
mysqldump -u 用户名 -p --no-data 数据库名 > /data/文件名.sql
# 使用 --no-data 表示仅备份表结构
mysqldump -u 用户名 -p --no-data 数据库名 表名 >/data/文件名.sql