目录
4、mysql在Windows的服务名保持默认名MYSQL80
1)控制面板->系统和安全->系统->高级系统配置->环境变量->“系统变量”->path-->新建->输入MYSQL的安装目录
7、通过"运行"->services.msc也查看服务,也可以看到mysql服务在运行
3)拼接多个列:拼接函数concat,将多个字符串拼接为一个字符串,在一个列里面
8)order by:根据某个字段排序结果集,只能是order by 一个数字
三、常用函数:select类似输出函数,可select 任意值测试表结构
1、单行注释:#、--空格(必须是空格,在url中由于编码问题必须是--+,+会解析为空格)
一、mysql安装
1、MySQL官网下载
MySQL :: Download MySQL Installer
2、下载好拖到虚拟机2019中打开
3、设置root密码
4、mysql在Windows的服务名保持默认名MYSQL80
5、其他一直默认就好,最后finish安装完成
6、配置MYSQL环境变量
------------------------win10未配置环境变量的示例------------------------------------------
我理解的环境变量就是提供一个路径,可以在cmd中直接输入mysql相关命令就能执行,如果不配置,就需要找到进入mysql相关路径才能执行,例如此处演示一个win10的未配置环境变量的mysql服务
运行-->cmd--->输入mysql -u root -p
我们找到进入mysql的相关路径(cd命令)
再去执行mysql登录命令
----------------------------------------------------------------------------------------------------------------------------
1)控制面板->系统和安全->系统->高级系统配置->环境变量->“系统变量”->path-->新建->输入MYSQL的安装目录
2)打开cmd,输入命令进入mysql
show databases;
进入mysql数据库命令行界面
3)输入命令试试
show databases;
7、通过"运行"->services.msc也查看服务,也可以看到mysql服务在运行
使用kali nmap去扫描win2019,也能看到3306的mysql服务开启的
8、配置navicat连接mysql
1)查看用户信息
select host,user,plugin from mysql.user;
host为localhost表示只允许在本地登录,不允许远程
2)更改root的plugin字段
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
3)改host字段
update mysql.user set host='%' where user='root';
4)navicat连接
二、sql练习
(win2019打开“运行”-->“cmd”--->键入命令“mysql -u root -p”--->输入密码)
(伪前言)说明
1)navicat和mysql安装在win2019上面,win10安装phpstudy:一键安装wamp包括mysql
2)大部分练习都在win2019上操作命令行的,需要严格结尾分号才能执行
3)这里安装navicat是因为创建一些测试库和数据表很方便,命令行参数太多
4)因为win10上有phpstudy搭建的dedecms,所以我们在win10中的mysql配置了远程登录root,
navicat远程连接
命令行远程:
mysql -h 192.168.10.129 -u root -p
1、show语句
1)查询数据库
show databases;//查询所有数据库
2)查询表
show tables from 库名;
show tables; //可能版本原因,这里我的版本不可以这样用,必须得选择一个数据库
3)查询列
show columns from 表名 from 库名;
show columns from 库名.表名;
2、select语句
1)基础查询语句:查询所有库的所有字段(*)
select * from information_schema.schemata;
2)where条件查询:查询sys的表名字段
select table_name from information_schema.tables where table_schema='sys';
3)拼接多个列:拼接函数concat,将多个字符串拼接为一个字符串,在一个列里面
select concat(table_name,'&',column_name) from information_schema.columns where table_schema='sys' limit 0,5;
//limit 0,5表示从第0行开始的五条记录
4)常用拼接查询group_concat():拼接多个列
select group_concat(列名) from 库名.表名;
5)合并重复列distinct
select distinct(table_name) from information_schema.tables;
6)条件:and or
7)联合查询union
表结构如下
select *from test.test1 where id=1 union select * from test.test1 where id=2;
如果其中一条条件为假查询不到,只返回一条
select *from test.test1 where id=-1 union select * from test.test1 where id=2;
8)order by:根据某个字段排序结果集,只能是order by 一个数字
select * from 库名.表名 order by 字段数;
如果字段数不存在会报错
3、插入语句insert
这里利用navicat自己建一个库test和表test1进行练习(我怕mysql自带的被我改坏了
insert into test.test1 values(1,'77');
4、更新语句update
update test.test1 set id=2 where name='77';
5、删除语句
delete可删除表中的记录,drop删除整个结构
1)删除记录:delete
delete from test.test1 where id=2;
这时可以看看,虽然数据一条没有,但是表还在,show databases;
2)drop语句:删除表
drop table 库名.表名;
删除数据库
drop database 库名;
三、常用函数:select类似输出函数,可select 任意值测试表结构
1、user():用户名
2、@@datadir:数据库的安装路径
3、@@version_compile_os:操作系统
(这个应该是根据下载mysql选择的版本吧我们选的x64版本)
4、session_user():当前连接数据库的用户名
试试远程登录win10的看看,@后面就是主机名host,限定登录主机,之前查看host为localhost就是只允许本地登录,改了%就是任意登录了
5、database():数据库名
6、version():数据库版本
四、sql注释
1、单行注释:#、--空格(必须是空格,在url中由于编码问题必须是--+,+会解析为空格)
2、多行注释/* ...*/
五、mysql数据库自带库
-------------需要记住的库名+表名+列名---------------------------------------------
数据库:information_schema
该库中的三个表名:
schemata:该表存储所有数据库的库名:schema_name
tables:存储所有数据库的库名(table_schema)和表名(table_name)
columns:存储所有数据库的库名(table_schema)、表名(table_name)、列名(column_name)
----------------------------------------------------------------------------------------------------
mysql5.0以上和之前的最主要区别就是:mysql5.0以上自带information_schema数据库