为了安全起见,经常使用命令行进行sql操作
在此解决下小白的痛处:(也为了备份资料),注意命令之间是否有空格
1、mysql登录:
mysql -h127.0.0.1 -pXXXXX demo 默认使用root账户进行登录;
格式:-h主机地址, -u用户名, -p用户密码, “demo“指的是 使用的数据库
-h 是访问域名,127.0.0.1 是访问本服务器,可指定对应服务器ip地址,-u是用户,-p是密码,demo 是使用"demo"数据库
use XX,使用XX数据库,也可用来切换数据库;
docker容器访问:
- docker ps //查看运行中的docker容器
- docker exec -it esl_mysql_own bash //进入mysql容器,这里的"esl_mysql_own" 指的是NAMES,“bash”指的是执行路径;
- 之后再使用mysql -h -u -pXX命令,即可访问MySQL数据库
2、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
use Database:进入"Database"数据库,这里的"Database"指的是数据库名称
3、 显示所选库中的数据表:
show tables;
4、 显示数据表的结构:
describe 表名;
5、 建库与删库:
create database 库名;
drop database 库名;
6、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
7、 清空表中记录:
delete from 表名;
8、 显示表中的记录:
select * from 表名 limit 0,1000 \G;
查询某表的前1000条数据,数据显示以纵向展示;
“;”和“\g”没啥区别,作用完全一样,运行的结果都是以表格的形式横向表现出来,纯命令行下 查看多条数据不方便;
“\G”数据纵向显示;
当然,三者运行后的结果内容都是一样的,大家如果查询的时候结果比较多,建议用“\G”,这样看起来顺眼一点且方便读取。
9、更新数据库操作:
update 表名1 set 列名1='参数1' where 列名2='参数2';
修改表1,列名2='参数2'的这条数据,把这条数据的列名1的参数修改为参数1.
10、SQL函数
MAX(expression) | 返回字段 expression 中的最大值 |
ROUND(X,D) | D表示小数点后的位数,结果进行四舍五入 X可填写字段名称/数字/其他sql函数等 |
AVG(expression) | 返回一个表达式的平均值,expression 是一个字段,结果可能为多位小数 |
例子:
SELECT MAX(userCount) AS '最大人数', MIN(userCount) AS '最小人数',ROUND(AVG(userCount),2) AS '平均人数' FROM User Person where user_id='XXX';
11、查看表注释
查看指定数据库所有表及表注释(查看demo库的所有表的注释信息):
select TABLE_NAME,TABLE_COMMENT from INFORMATION_SCHEMA.Tables where table_schema = 'demo';
查看数据库某张表注释(查看demo库 user表的注释信息):
select COLUMN_NAME,COLUMN_COMMENT from INFORMATION_SCHEMA.Columns where table_name = 'user' and table_schema='demo';
12、好用的清屏命令
linux系统清屏命令:
system clear
windows系统MySQL8.0以上版本支持清屏命令:
system cls;