上一篇: docker安装和登陆mysql发现用docker安装mysql非常简洁方便快速,继续学习。
1.查看当前数据库排行榜
可以通过当前数据库使用排行榜:db-engines.com The most popular database management systems September 2022 Score 1. Oracle 1238 2. MySQL 1212 3. Microsoft SQL Server 926 4. PostgreSQL 620 5. MongoDB 490
2.进入mysql
查看容器 docker ps -a //查看存在的所有容器,包括停止的 docker ps //查看正在运行的 docker start 容器id //启动停止的容器 docker exec -it sqlinjectmysql /bin/bash //打开进入容器 mysql -uroot -p123 //进入数据库 select user,host from myslql.user;//查看mysql支持的用户 +---------------+-----------+ | user | host | +---------------+-----------+ | root | % | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+-----------+ 4 rows in set (0.00 sec) 第一个用户是可以远程连接的,上一篇介绍是如何创建的用户即: docker run --name sqlinjectmysql -d -p 4001:3306 -e MYSQL_ROOT_PASSWORD=123 mysql镜像id //要进行网络访问就必须端口映射
3.查看数据库中的系统库
show databases; //查看系统库 | Database +-------------------- | information_schema | mysql | performance_schema | sys information_schema:信息数据库,存放所有库的信息,库名,表名,字段以及权限,也称之为元数据。渗透作用很大。 schemata,tables,colums等. 比如: show databases; 等价于: SELECT schema_name FROM information_schema.schemata; mysql:用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息。 比如:select user,host from mysql.user; performance_schema:数据库服务器运行过程中的一些状态信息,是对 MySQL 服务器的一个性能监控。 包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等等信息。 sys:通过视图的形式把 information_schema 和 performance_schema 结合起来,可以更方便的了解 MySQL 服务器的一些性能信息。
4.两种注释:
1.-- (杠杠空格)这是注释标记 2.#(井号)这是注释标记
5.常用sql语句
--查看所有库 show databases; --进入某个库查看所有表 use mysql ; show tables; --等同 show tables from mysql;
6.select语句
--常见函数 select now(); --当前时间 select database(); --当前所在库 根据use调整。 select version(); --版本 select user(); --当前登陆用户 --属性 select @@datadir; //查看数据存放位置 select @@basedir; //查看数据库位置 select @@version_compile_os; //查看宿主系统 --information_schema库,一些特定表内容提取为特定的语句 show databases;等同: mysql> select schema_name from information_schema.schemata; +--------------------+ | schema_name | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | -- 创建test库 create database test charset utf8mb4; use test; create table t1(id int); drop table t1; show tables; -- 等于:show tables from test; alter table t1 add name varchar(32); desc t1; -- 显示表字段 insert into t1 values(1,"job"),(2,"jack"),(3,"bob"); select * from information_schema.tables where table_schema="test"; -- 查询库里有什么表 select * from information_schema.columns where table_schema="test"; -- 查询库里有字段 -- 库名称的获取可以使用函数然后作为参数传递: show database(); -- union 联合两个以上select语句(追加显示), 注意:前后记录必须列数一样多,否则报错)。(利用这个确认字段数量) mysql> select * from t1 union select 1,2; +------+------+ | id | name | +------+------+ | 1 | job | | 2 | jack | | 3 | bob | | 1 | 2 | +------+------+ select user,host from mysql.user union select * from test.t1; | user | host | +---------------+-----------+ | root | % | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | | 1 | job | | 2 | jack | | 3 | bob |