MySQL数据库常安装及常用sql命令

1数据库简介

1.1数据库概念及作用

数据库(Database)时按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口来创建,访问,管理,搜索和复制所保存的数据。
我们可以将数据存储在文件中,但是文件中读写数据速度相对较慢,所以我们使用关系型数据库管理系统(RDMS)来存储和管理大数据量
所有的关系型数据库,是建立在关系模型型基础上的数据库,借助集合代数等舒徐概念和方法和方法来处理数据库中的数据
注:裸设备——没有安装文件系统的硬件(有些数据库安装,需要求是裸设备的环境),

1.2数据库类型

关系型数据库: MySQL、Oracle、DB2、Microsoft SQL Server、Microsoft Access、
在这里插入图片描述
Sqlite:主要应用于移动设备中轻量级数据库(例如Android)
acess:单机软件数据库(个人使用的数据库)
非关系型数据库(对象型数据库): Readis、MongoDB(支持多人访问,支持大数据访问,大用户量的访问)

1.3关系型数据库特点

RDBMS即关系型数据库管理系统(Relational Database Management System)的特点:

  1. 数据以表格的形式出现
  2. 每行为各种记录的名称
  3. 每列为记录名称所对应的数据域
  4. 许多的行和列组成一张表单
  5. 若干的表单组成Database

1.4mysql简介

mysql是最流行的关系型数据库管理系统,在web应用方面Mysql是最好的关系型数据库应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是素有数据放在一个大仓库内,这样增加了速度并提高了灵活性
Mysql数据库特点:

  • Mysql是开源的,免费的。
  • 支持大型的数据库,可以处理拥有上千万条记录的大型数据
  • 使用标准的SQL数据语言形式
  • 可以安装多个系统上,并且支持多种语言,包括C C++ Python,Java,Prel ,PHP
  • 支持大型数据库,支持5000万条记录的数据仓库,32为系统表文件可支持4G,64为系统支持最大表文件8TB
  • 可以定制,采用GPU协议,你可以修改源代码来开发自己的MySQL

1.5数据库常用数据类型

整型数: Tinyint(0-255之间的整数)、int、smallint、mediumint、bigint
浮点数: Decimal(十进制小数)、Float、Double、real——位数是整数和小鼠位数的和,不包括小数点。
日期和时间类型: DateTime(2020-03-03 16:34:15)、TimeStamp、date、time、year
字符串类型:
Varchar(可变长的字符串——存储时,按照实际长度存储)、Char(固定长度的字符串——存储时按照指定的长度存储)、text(文本)
文本:tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等):tinyblob、blob、mediumblob、longblob

2、数据库安装

2.1数据库安装

下载地址:https://dev.mysql.com/downloads/installer/
安装中只选择Only Server既可以,
设置过程中需要设置超级用户密码:
也可以同时添加一些用户,并设置密码。

安装完成后打开
在这里插入图片描述
然后输入安装时所设置的超级用户的密码(例如:mysql123456)出现如下信息,代表已经安装成功
说明:MySQLX.X Command Line Client是ASCII格式,MySQLX.X Command Line Client -Unicode,是Unicode格式
在这里插入图片描述

2.2环境配置

添加mysql的安装路径到环境变量中:
在这里插入图片描述

2.3Navicat安装(数据库的客户端)

因为mysql默认控制台使用不是很方便,因此建议用Nabvicat代替mysql默认控制台。根据个人习惯。
安装好后连接mysql
在这里插入图片描述
在这里插入图片描述

  • 链接名自定义
  • 主机名或ip地址,如果时本机作为服务器,为localhost或127.0.0.1
  • 端口号:mysql默认端口号为3306
  • 用户名:填写安装数据库时建立的账号或填写超级管理用户(默认为root)
  • 密码:建立用户时设置的密码。

2.3.1 新建数据库
右击连接名,选择新建数据库
在这里插入图片描述
在这里插入图片描述
字符集:是指使用的编码方式;

Navicat 使用中常见错误

  • navicat连接MySQL8+时出现2059错误解决方法

问题:
在这里插入图片描述
原因:
这是由于新版本的MySQL使用的是caching_sha2_password验证方式,但此时的navicat还没有支持这种验证方式。

解决方法:
在命令行中登录数据库,执行下面的命令。
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
‘root’可以改为你自己定义的用户名,‘localhost’指的是该用户开放的IP,可以是’localhost’(仅本机访问,相当于127.0.0.1),可以是具体的’...‘(具体某一IP),也可以是’%'(所有IP均可访问)。'password’是你想使用的验证密码。
例如:ALTER USER ‘test’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘test123456’;
在这里插入图片描述

  • 使用MySQL 8.0 Command Line Client连接数据库,出现闪退

问题描述
打开MySQL 8.0 Command Line Client输入密码后,出现闪退的现象
原因
可能是您输入的密码不正确,输入正确密码后即可正常。

  • Navicate 出现闪退

原因分析
主要原因是开启有道词典,在鼠标悬停在Navicate上取词翻译时,Navicate会出现闪退的现象。
解决方案
关闭有道词典的取词功能

问题描述
显示不能连接数据库,
在这里插入图片描述
原因:
可能是服务器端3306端口未开放或客户端3306端口被占用
解决办法
开放服务器端3306端口,停止3306端口的程序,后修改占用3306端口的程序默认端口

2.4 SQLyog安装(与Navicat一样同属客户端,二选一即可)

下载地址及安装参考:https://yq.aliyun.com/articles/710422

2.5 设置utf-8编码方式

查看编码方式: show variables like ‘%char%’
在这里插入图片描述
使用mysql命令修改编码方式
使用mysql命令设置:
set character_set_client = utf8;
set character_set_server = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set collation_connection = utf8_general_ci;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;
在这里插入图片描述

3 mysql命令行操作注意事宜

  • (进入MySQLX.X Command Line Client)
  • 在mysql查询窗口中执行相关命令时,每个语句后面不要忘记加“;”分号
  • 在dos命令下,每一个语句都要输入“;”
  • 分号是一条语句的结束标志,当一条语句较长时,可以回车换行在最后加分号

在这里插入图片描述
在这里插入图片描述

4 修改密码

set Password for 用户名@Localhost=password(‘新密码’)
例如:
set Password for root@Localhost=password(‘123456’)

5 查看端口号:

进入mysql后,输入命令:show global variables like ‘port’

注:计算机端口号范围:0~66535,计算机保留的端口号:1——1023

6 本地登录

6.1 查看服务器有没有开启

ps -ef | grep mysql

6.1用户名登录和密码登录

在dos命令窗口登录
命令:mysql -u root -p
其中root时用户名,输入命令按回车键后系统会提示您输入密码, 根据提示输入正确的密码,再次回车键就可以登录mySql数据库了。

6.2指定端口号登录MySQL数据库

命令: mysql -u root -p -P 3306
注意指定端口号的字母p为大写,而表示密码的p为小写。Mysql默认端口号为3306

6.3 指定IP地址和端口号登录MySql数据库

命令: mysql -h ip -u root -p -P 3306
例如:mysql -h 127.0.0.1 -u root -p -P 3306

7 数据库常用监控指标

7.1QPS(每秒Query量)

反应数据库繁忙程度
每秒查询率(QPS,Queries-per-second)是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
mysql>show /50000 global/ status like ‘Question’;

7.2 TPS(每秒事务量)**

mysql>show status like ‘Com_commit’;
mysql>show status like ‘Com_rollback’;
以上获得的两个数据相加,再除以持续时间,就是每秒事务数

7.3 Query Cache 命中率**

查询缓存,当有缓存时会很快
mysql>show status like ‘Qcache%’;
关注结果中的Qcache_hits值(执行了多少此查询,命中率是多少)

8 数据库操作

创建数据库::create database dbname;
使用数据库: use 库名,——选择或进入数据库
删除数据库: drop database 数据库名
查看数据库 show databases;——查看当前所有的数据库

9 表相关操作

  • 表的操作主要是增删改查,及添加数据,修改数据,删除数据和查询数据;
  • 添加、修改、删除这3个操作只用于单表;
  • 多表级联删除,多表的级联更新有时会出现;
    注意:注意对于表的操作,需要转到相应的数据库,使用“user 库名”命令,类似dos命令中的cd 切换路径的作用

9.1 创建表

create table 表名(字段1名 字段类型(字段长度),字段2名 字段类型(字段长度));
例如:create table student(name varchar(15),gender char(8));
注意:创建表过程中,最后一个字段不需要加“,”逗号
mysql 建表语句 及完整案例
MySQL建表(create table)命令详解
mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci
mysql创建表

在mysql中设置表字段中COLLATE、CHARSET详解
COLLATE 含义 核对、校对

 CREATE TABLE `tb_user` (
       `id` bigint(20) NOT NULL AUTO_INCREMENT,
       `username` varchar(50) NOT NULL COMMENT '用户名',
       `password` varchar(32) NOT NULL COMMENT '密码,加密存储',
       `phone` varchar(20) DEFAULT NULL COMMENT '注册手机号',
       `email` varchar(50) DEFAULT NULL COMMENT '注册邮箱',
       `created` datetime NOT NULL,
       `updated` datetime NOT NULL,
       PRIMARY KEY (`id`),
       UNIQUE KEY `username` (`username`) USING BTREE,
       UNIQUE KEY `phone` (`phone`) USING BTREE,
       UNIQUE KEY `email` (`email`) USING BTREE
     ) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='用户表'

9.2 显示当前数据库所有的表

show tables;

9.3 查看某个表的字段结构

desc 表名
例如:desc student
在这里插入图片描述

9.4 删除表

drop table 表名;
例如:drop table student2

9.5 修改表

MySQL ALTER语句用法详解与示例
MySQL 中 ALTER 命令

10 添加语句——insert

10.1 全部字段插入

insert into 表名 values("字段1对应的值","字段2对应的值");

例如:insert into student values(“daryl”,“male”);
注意:添加数据的顺序必须和表结构一致

10.2 指定字段插入

insert into student(name)values(’felx‘)
注意:
插入数据后,会产生一条新的记录。无论此记录是否于原有记录重复
添加数据的顺序和指定字段一致

10.3 插入系统时间

insert into student(name,birthday)values(’felx‘,now())
insert into student(name,birthday)values(’felx‘,sysdate())

10.2 向表中添加字段——扩充表的字段

10.2.1 默认情况下加载表的最后面
alter table 表名 add (字段 字段类型) [ default ‘输入默认值’] [null/not null] ;
例如:alter table student add age int(10) not null default 20 ;
10.2.2 加在指定列的后面
alter table 表名 add 字段 字段类型(字段长度) 修饰 after 某列
例如:
alter table student add class varchar(255) not null default 20 after name;

10.3 向表中添加关键字段,并实现自动增加功能

alter table 表名 add 字段名 字段类型(字段长度) auto——increment primary key
alter table student add No2 int(10) auto_increment primary key;
补充:关键字的作用是确保记录的唯一性,不可重复。自动增加

10.4 向已经存在的表中一次性插入多行数据

insert into 表名 列名 select from 源表名
例如: insert into student2(name2,class2,age2) select name,class,age from student;

10.5 将现有表中的数据添加到新表中

select 列名 into 表名 from 源表名;

11 修改语句

注意:修改语句通常指定条件,否则会对所有数据进行修改

11.1 修改一个字段

update 表名 set 字段名=“修改的内容” where 字段名=“限定的条件”
例如:
update student set age=40 where name=“daryl”;

11.2 同时修改多个字段

update 表名 set 字段1名=“修改的内容”, 字段2名=“修改内容” where 字段名=“限定的条件”
update student set age=40,gender=“femal” where name=“daryl”;

11.3 修改字段名

ALTER TABLE 表名 RENAME COLUMN 原字段名 TO 新字段名;
ALTER TABLE user RENAME COLUMN name TO username;

12 删除语句

删除记录(行)

注意:删除语句通常指定条件,否则会删除所有数据
delete from student where No2=5;

删除列

alter table 表名 drop 列名称;
例如:alter table student drop no

13 数据库查询操作(select)

查询分单表查询和多表查询
多表查询又分多表连查,和子查询(嵌套查询)

13.1完整语句:

select 去重选项 字段列表 [as 字段别名] from 数据源 [where子句] [group by 子句] [having子句] [order by 子句] [limit子句]

13.2 数据来源——需要在哪里筛选数据(from)

数据源可以是单表数据源,多表数据源,以及查询语句
1) 单表 select * from 表名——全表查询
例如:select * from auth_permission;
注:专业术语投影操作
2) 多表查询: select 字段列表 from 表名1,表名2,…
例如:select * from student2,student;
3)在查询结果中查询——见14多表联查和15子查询

13.3 给字段或表取别名(as或空格)

注意:字段别名只会在当次查询结果中生效。
1)给字段取别名 ——查询后的结果以别名的方式显示
select 字段1名 as ‘字段1别名’ ,字段2名 as ”字段2别名“ from 表名
例如:

select name as '名称',content_type_id as '内容类型' from  auth_permission;
select name   '名称',content_type_id   '内容类型' from  auth_permission;

2) 给表取别名
as也可以给表设置别名,
例如:

select * from auth_permission as auth;
select * from auth_permission  auth;

3)表别名引用
表取别名后,对于表的引用可以用别名。
例如:

select auth.name ,antuh.content_type_id  from  auth_permission as auth

13.4 条件查询(where)

在这里插入图片描述
1)语法结构
select * from 表名 where 字段名 like ‘查询内容
2)比较运算符:
select * from 表名 where 字段名 条件
例如:

select * from student where name='lilei';
select * from student where age<20;
select * from student where age<=20;
select * from student where age>20;
select * from student where age>=20;
select * from student where name !='lilei';

3) 逻辑运算符:

  • or : where 条件1 or 条件2… ; 查找出符合条件1或符合条件2的记录。
  • and: where 条件1 and 条件2… ; 查找出符合条件1并且符合条件2的记录。
  • not : where not 条件1 ;查找出不符合条件的所有记录。
  • &&的功能与and相同;||与or功能类似,!与not 功能类似。
    例如:
select * from student where name ='lilei' and age=20;

4)数字区间运算符(between):

  • between x and y :where 字段 between x and y;
    查找出对应字段的值在闭区间[x,y]范围的记录。例如:where age between 18 and 20。
    例如:
select * from student where age between 15 and 20;
select * from student where age not between 15 and 20;

5) 集合运算符

  • in: where 字段 in 范围;
    查找出集合中对应条件的记录,例如:where age in (18,19,20)
  • not in : where 字段 not in 范围;
    查找出不包含在集合中的记录。例如:where age not in (18,19,20)
    6) 模糊查询运算符
    匹配符:
    “_”:匹配一个任意字符
    “%”:匹配0个或多个任意字符
  • like:where 字段 like 值 ;
    例如:
select * from student where name like 'daryl';
select * from student where name like 'd%';
select * from student where name like '%l';
select * from student where name like '%daryl%';
select * from student where name like 'd_ryl';

7) 空运算符 null——不是0,也不是空字符串
select * from 表名 where 字段名 is null
select * from 表名 where 字段名 is not null
注意:判断空必须使用is 或 is not来进行判断

13.5 分组过滤的条件语句(having)

select 字段列表 from 表名 having 条件;
where和having都是条件语句,where的条件语法having都可以使用

区别:

  • where是每一条记录进行过滤筛选‘
  • having是对进行过滤筛选。分组之后才能使用having

区别解释:

  • having功能与where类似,不过having的条件判断发生在数据在内存中时,所以可以使用在内存中才发生的数据,如“分组”,“字段别名”等
  • where是从磁盘中获取数据的时候就进行筛选的。所以某些在内存是才有的东西where无法使用。
  • 字段别名什么的不是“磁盘中的数据”(是在内存运行时才定义的),所以where无法使用,一般都依靠having来筛选

例如:

select name, count(*) from student group by name having count(*)>2

13.6 分组查询(group by)

select 字段 fun_name from 表名 [where 条件] [group by field1,field2…] [with rollup] [having 条件];
**分组理解:**相同的是一组。按照组来显示记录
**分组的注意:**分组的时候,select显示的字段有约束条件,一是分组的组名,二是一个聚合函数。

  select gender from student group by gender;
  select gender, max(age) from student  group by gender;
  select gender, min(age) from student  group by gender;
  select gender, count(*) from student  group by gender;
  select gender, sum(age) from student  group by gender;
  select gender, avg(age) from student  group by gender;

group by 可以将查询结果依据字段来将结果分组。
例如:select name,gender,count(name) as “组员” from student as d group by name;
再如:select name,gender,count(name) as “组员” from student as d group by name,gender;

在这里插入图片描述
补充说明:
fun_name 表示要做的聚合操作,也就是说聚合函数。实际上,group by 的作用主要是统计(使用情景很多,比如说统计某人的总分数,学生中女性的数量。。),所以一般会配合一些统计函数(聚合函数)来使用,常用的有 : sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。

  • count(x):统计每组的记录数,x是*时代表记录数,为字段名时代表统计字段数据数(除去NULL)
  • max(x):统计最大值,x是字段名
  • min(x):统计最小值,x是字段名
  • avg(x):统计平均值,x是字段名
  • sum(x):统计总和,x是字段名
  • group by关键字 表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在group by 后面。后面还可以跟上asc或desc,代表分组后是否根据字段排序。
  • with rollup 是可选语法,表明是否对分类聚合后的结果进行再汇总
  • having 关键字:表示对分类后的结果再进行条件过滤。

13.7 排序(order)

select 字段列表 from 表名 order by 字段 [asc|desc]—— 可以使查询结果按照某个字段来排序排序(desc降序,asc升序)**
例如:

select * from student order by name asc,gender desc;

说明:

  • 字段可以有多个,从左到右,后面的排序基于前面的,(比如:先按name排序,再按gender排序,后面的gender排序是针对前面name排序时name相同的数据)
  • 也可以指定某个字段的排序方法,比如第一个字段递增,第二个递减。只需要在每个字段后面加asc或desc即可(虽然默认不加是递增,但还是加上更清晰明确)。

13.8 去重查询

select distinct 字段名/ from 表名 ——去重查询(去除表格中的重复数据)**
例如:

select distinct * from student;——查询student表中数据,并去掉重复的;
select distinct name from student——查询student表中的name数据并去掉name值重复的内容

注意:

  • 去重针对的是查询出来的记录,而不是存储在表中的记录。如果说仅仅查询的是某些字段,那么去重针对的是这些字段。
  • distinct只能使用需要去重的字段进行操作。 ----也就是说我distinct了name,age两个字段,我后面想根据id进行排序,是不可以的,因为只能name,age两个字段进行操作.
  • distinct去重多个字段时,含义是:几个字段 同时重复 时才会被 过滤。

13.8 计数

select count(关键字) from car——计数,查询表中记录数量
例如:select count(age) from student;

13.9 最大值和最小值

select max/min(price)from car——查询最大值和最小值**
例如:select max(age) from student;查询最大年龄‘

13.10 select语句中进行运算

select 字段列表 (字段1+字段2+字段3) as “总成绩” from student_sore
例如:select id, name, (chinese+english+math) from student_sore;
select id, name, (chinese+english+math) as “总成绩” from student_sore;

注意 null值与任意值相加都是null,如果某列存在null,可以使用下列方式查询
select id, name, chinese+ifnull(english,0)+math as “总成绩” from student_sore;
在这里插入图片描述
在这里插入图片描述

14多表查询——多表连接查询

多表连接查询(多表联查):同时查询多张表

14.1 不指定公共列——笛卡尔积(没有意义)

笛卡尔积:A表有m条记录,B条有n条记录,结果是m*n条记录
select 表.字段名 from 表1名,表2名
例如: select * from company, member;
注:

  • 多表查询的策略有两种:多表联查、子查询
  • 当多表查询的时候,字段使用,“表名.字段名”的形式这样会增加效率,否则系统会每个表中查询一边,并且当多张表中有同名字段时还会报错。如果使用“表名.字段名”只在指定的表中查找字段

14.2 指定公共列(正确用法)——用where 只能查询到满足条件的数据,

如果查询n张报,必须指定n-1个公共列的条件,否则会产生笛卡尔积;
select 表.字段名 from 表1名,表2名 where 表1.字段名=表2.字段名;
例如:SELECT c.name 公司名, m.name ‘员工名’, m.salary FROM company c, member m where c.id=m.comid;

14.3 左连接查询(left join…on)——目的:查询不满足条件的数据)

左表是主表,即左表中满足条件的记录会查询出来,左表中不满足条件的也会查询出来
select * from 表1名 表1别名 left join 表2名 表2别名 on 表1.字段=表2.字段
此语句中表1为主表, on后面的代表公共列(不再是where);

## 14.4 右连接查询(right join…on)

右表是主表,即右表中满足条件的记录会查询出来,右表中不满足条件的也会查询出来
select * from 表1名 表1别名 right join 表2名 表2别名 on 表1.字段=表2.字段
注明:左连接和右连接又统称为外连接

14.4 内连接(inner join…on)——查询的是满足条件的记录

select * from 表1名 表1别名 inner join 表2名 表2别名 on 表1.字段=表2.字段

15 多表查询——子查询

注意:

  • 子查询的写法更符合人的思维方式
  • 子查询可以对查询效率进行优化——提高查询速度

15.1 select 子查询

select (select语句)from 表名 where 字段名=字段值;
例如:

SELECT (SELECT name from company where id = comid ) 公司名  from member  WHERE name = '小刘';
解释:整条语句的目的是查询小刘所属公司,主语句是查询小刘公司的id,再以公司id作为限制条件查询对应的名称
SELECT (SELECT name from company where id = comid )  公司名 from member WHERE name = '小刘' or name='小王';

15.2 where 子查询

select 字段名 from 表名 where 字段名=select语句;
例如:

select name 公司名 from company where id = (select comid from member where name='小刘');
select name 公司名 from company where id = (select comid from member where name='小刘') or id = (select comid from member where name='小王');
select name 公司名 from company where id in (select comid from member where name='小刘' or name = '小王') ;  与上一句作用相同,但更为简洁

15.3 from子查询

from自查寻主要用于3张表以上的连接查询
注意:select子查询和where子查询是把子查询的结果当成数据。而from子查询是把查询的结果当成
例如:有A、B、C三张表,先查询A和B两张表,再用查询结果和C表连接查询

select c.name 公司名 from (select name a, comid ci from member where name = '小刘') t1, company c where t1.ci = c.id;

16 、limit 关键字

16.1 limit关键字总体概述

select 字段列表 from 表名 limit [offset,] count;
例如:

select * from student limit 1;
select * from student limit 3,1;
select * from student where name ="lilei" limit 1;
select * from student where name ="lilei" limit 3,1;

说明:

  • limit是用来限制结果数量的。与where\having等配合使用时,可以限制匹配出的结果。但凡是涉及数量的时候都可以使用limit(这里只是强调limit的作用,不要过度理解)
  • count是数量
  • offset是起始位置,offset从0开始,可以说是每条记录的索引号
  • limit 也通常和order by一起使用
  • 如果limit使用一个参数,表示实现前几条记录
  • 如果limit使用两个参数,参数1代表起始位置,从零开始计数,参数2表示返回的记录条数

16.2 top-n分析

select * from student order by age desc limit 3;

16.3用于分页功能

第一页
select * from student limit 0,10;
第二页
select * from student limit 10,10;
第三页
select * from student limit 20,10;
第n页
select * from student limit (n-1*10,10;

17合并查询(union)

17.1 合并查询的特点

  • 将两个表中的行合并到一个表中显示,且对行不做任何修改
    select …from 表名1 union select …from 表名2

特点:

  • 合并的表中的列的个数、数据类型必须相同或兼容;
  • 列的名称由第一列的关键字段决定
  • union默认去掉重复值,如果允许有重复值需要使用union all
  • 执行顺序从左向右(可通过列的顺序或空格改变结果集的排列顺序)
  • 可以与select into一起使用,但是into必须放在第一个select 语句中
  • 可以对合并的结果进行排序,但排序的order by必须放在最后个select后面

18、导入sql文件(??)

source 路径/要导入的sql文件.sql (路径“\”注意为转移符改为“\”避免转移)

将一下内容编辑为sql文件(用记事本编辑保存为sql文件)

OLD_CHARACTRE_SET_CLIENT /😕!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTRE_SET_CLIENT /😕!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION*/;

19、常用内置函数(注入漏洞常用函数)

select database() ; 当前数据库名称
select current_user 打印当前用户
select load_file(“文件路径”); 返回文件内容
在这里插入图片描述
version()数据库版本
into+outfile 写入文件

常用字符串函数

在这里插入图片描述
参考网站:http://v.qq.com/vplus/f226b3fa97a01ce6def1e7c7ee68744c?page=video

https://blog.csdn.net/JasonPF/article/details/89646832

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值