MySQL核心技术基础篇

一、数据库相关概念

1、DB:数据库,保存一组有组织的数据的容器
2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
3、SQL:结构化查询语言,用于和DBMS通信的语言

二、数据库存储数据的特点

1、将数据放到表中,表再放到库中
2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
4、表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
5、表中的数据是按行存储的,每一行类似于java中的“对象”。

三、初始化MySQL

MySQL产品的介绍和安装

熟稔于心,不再赘述

MySQL服务的启动和停止

1.方式一:计算机——右击管理——服务
2.方式二:通过管理员身份运行

    net start 服务名(启动服务)net stop 服务名(停止服务)

MySQL服务的登录和退出

1.方式一:通过mysql自带的客户端,只限于root用户。
2.方式二:通过windows自带的客户端

    登录:mysql 【-h主机名 -P端口号 】-u用户名 -p密码 。简写:mysql -uroot -proot退出:exit或ctrl+C

MySQL的常见命令 (ps:命令结尾用分号)

1.查看当前所有的数据库:show databases;
2.打开指定的库:use 库名
3.查看当前库的所有表:show tables;
4.查看其它库的所有表:show tables from 库名;
5.创建表

create table 表名(列名 列类型,列名 列类型,。。。);

6.查看表结构:desc 表名
7.查看服务器的版本

方式一:登录到mysql服务端:select version();
方式二:没有登录到mysql服务端:mysql --version 或 mysql --V

MySQL的语法规范

1.不区分大小写,但建议关键字大写,表名、列名小写
2.每条命令最好用分号结尾
3.每条命令根据需要,可以进行缩进 或换行
4.注释

    单行注释:#注释文字单行注释:-- 注释文字多行注释:/* 注释文字  */

SQL的语言分类

1.DQL(Data Query Language):数据查询语言 select
2.DML(Data Manipulate Language):数据操作语言 insert 、update、delete
3.DDL(Data Define Languge):数据定义语言 create、drop、alter
4.TCL(Transaction Control Language):事务控制语言 commit、rollback

SQL的常见命令

1.show databases; 查看所有的数据库
2.use 库名; 打开指定 的库
3.show tables ; 显示库中的所有表
4.show tables from 库名;显示指定库中的所有表
5.create table 表名( 字段名 字段类型, 字段名 字段类型 ); 创建表
6.desc 表名; 查看指定表的结构
7.select * from 表名;显示表中的所有数据

DQL语言的学习

进阶1:基础查询

1.语法:SELECT 要查询的东西【FROM 表名】; 类似于Java中 :System.out.println(要打印的东西);
2.特点:
    ①通过select查询完的结果 ,是一个虚拟的表格,不是真实存在
    ② 要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数

进阶2:条件查询

1.条件查询:根据条件过滤原始表的数据,查询到想要的数据
2.语法:select 要查询的字段|表达式|常量值|函数 from 表 where 条件 ;
3.分类:

  • 一、条件表达式 示例:salary>10000 条件运算符:> < >= <= = != <>
  • 二、逻辑表达式 示例:salary>10000 && salary<20000 逻辑运算符:
            and(&&):两个条件如果同时成立,结果为true,否则为false
            or(||):两个条件只要有一个成立,结果为true,否则为false
            not(!):如果条件成立,则not后为false,否则为true
  • 三、模糊查询 示例:last_name like 'a%'

进阶3:排序查询 ( DESC降序;ASC升序;默认升序)

1.语法:select 要查询的东西 from 表 where 条件 order by 排序的字段|表达式|函数|别名 【asc|desc】

  • 如:SELECT * FROM employees ORDER BY salary DESC;

进阶4:常见函数

一、单行函数
1、字符函数concat拼接:SELECT CONCAT(first_name,last_name) AS 姓名 FROM employees;substr截取子串:SELECT SUBSTR('哈哈,我是平凡之路',4);upper转换成大写:SELECT UPPER('guet');lower转换成小写:SELECT LOWER('GUET');trim去前后指定的空格和字符:SELECT TRIM('  哈哈  123 ');ltrim去左边空格:SELECT LTRIM('  guet   ');rtrim去右边空格:SELECT LTRIM('  guet   ');replace替换:SELECT REPLACE('abc','a','x');lpad左填充:SELECT LPAD('abc',5,'xx');rpad右填充:SELECT RPAD('abc',5,'xx');instr返回子串第一次出现的索引length 获取字节个数:SELECT  LENGTH('guet');
2、数学函数round 四舍五入:SELECT   LENGTH('guet');rand 随机数:SELECT RAND();floor向下取整:SELECT FLOOR(1.5);ceil向上取整:SELECT CEIL(1.5);mod取余:SELECT MOD(5,2);truncate截断:SELECT TRUNCATE(1.23456,3);
3、日期函数now当前系统日期+时间:SELECT NOW();curdate当前系统日期:SELECT CURDATE();curtime当前系统时间:SELECT CURTIME();str_to_date 将字符转换成日期:SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");date_format将日期转换成字符:SELECT TIME_FORMAT('11:11:11','%r');
4、流程控制函数if 处理双分支case语句 处理多分支情况1:处理等值判断情况2:处理条件判断
5、其他函数version版本database当前库user当前连接用户

二、分组函数

        sum 求和max 最大值min 最小值avg 平均值count 计数特点:1、以上五个分组函数都忽略null值,除了count(*)2、sum和avg一般用于处理数值型;max、min、count可以处理任何数据类型3、都可以搭配distinct使用,用于统计去重后的结果4、count的参数可以支持:字段、*、常量值,一般放1 ; 建议使用 count(*)

进阶5:分组查询

1.语法:select 查询的字段,分组函数 from 表 group by 分组的字段

  • 如:查询每个工种的最高工资:SELECT MAX(salary),job_id FROM employees GROUP BY job_id;
  • 如:查询每个位置上的部门个数:SELECT COUNT(*) ,location_id FROM departments GROUP BY location_id;

2.特点:

  • 可以按单个字段分组
  • 和分组函数一同查询的字段最好是分组后的字段
  • 分组筛选
    针对的表 位置 关键字
    分组前筛选: 原始表 group by的前面 where
    分组后筛选: 分组后的结果集 group by的后面 having
  • 可以按多个字段分组,字段之间用逗号隔开
  • 可以支持排序
  • having后可以支持别名
#添加筛选条件 (根据原始表筛选,用 WHERE )
#案例1:查询邮箱中包含a字符的,每个部门的平均工资
SELECT AVG(salary) ,department_id FROM employees WHERE email LIKE '%a%' GROUP BY department_id;
#案例2:查询有奖金的每个领导手下员工的最高工资
SELECT MAX(salary) ,manager_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY manager_id;
#添加复杂的筛选条件 (根据新的结果集筛选,用 HAVING)
#案例1:查询那个部门的员工个数>2
SELECT COUNT(*),department_id FROM employees GROUP BY department_id HAVING COUNT(*)>2;
#案例2:查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资
#①查询每个工种有奖金的员工的最高工资
SELECT MAX(salary),job_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY job_id;
#②根据①的结果继续筛选,最高工资大于12000
SELECT MAX(salary),job_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY job_id
HAVING MAX(salary)>12000
#案例3:查询领导编号>102的每个领导手下的最低工资>5000的领导编号是哪个,以及最低工资
#①查询领导编号>102的每个领导手下的最低工资
SELECT MIN(salary),manager_id FROM  employees WHERE manager_id>102   GROUP BY manager_id;
#②最低工资>5000
SELECT MIN(salary),manager_id FROM  employees WHERE manager_id>102   GROUP BY manager_id HAVING MIN(salary)>5000; 
#按表达式分组
#案例1:按员工姓名的长度分组,查询每一组的员工个数>5的有哪些
#①查询每个长度的员工个数
SELECT COUNT(*),LENGTH(last_name) len_name FROM employees GROUP BY LENGTH(last_name);
#②添加筛选条件
SELECT COUNT(*) ,LENGTH(last_name) len_name FROM employees GROUP BY LENGTH(last_name) HAVING COUNT(*)>5;

进阶6:多表连接查询

1.笛卡尔乘积:如果连接条件省略或无效则会出现
2.解决办法:添加上连接条件

一、sql92 传统模式下的连接 :等值连接——非等值连接 (推荐使用sql99)

1.等值连接的结果 = 多个表的交集
2.n表连接,至少需要n-1个连接条件
3.多个表不分主次,没有顺序要求
4.一般为表起别名,提高阅读性和性能

#案例1:查询员工名和对应的部门名
SELECT last_name,department_name FROM employees,departments WHERE employees.`department_id` = departments.`department_id`
#2.为表起别名(如果为表起了别名,则不能用表名起限定)
#案例2:查询员工名、工种号、工种名
SELECT last_name,job_title,e.`job_id` FROM employees AS e,jobs WHERE e.`job_id` = jobs.`job_id`
#3.可以加筛选吗?
#案例3:查询有奖金的员工名、部门名
SELECT last_name,department_name,commission_pct FROM employees e,departments d WHERE e.`department_id` = d.`department_id`
AND e.`commission_pct` IS NOT NULL
#案例4:查询城市名中第二个字符为O的部门名和城市名
SELECT department_name,city FROM departments d,locations l WHERE d.location_id = l.location_id AND l.city LIKE '%_o%'
#5.可以加分组吗?
#案例5:查询每个城市的部门个数
SELECT COUNT(*) 个数,city FROM departments d,locations l WHERE d.location_id = l.location_id GROUP BY city
#案例6:查询有奖金的每个部门的部门名和部门的领导编号和该部门的最低工资
#①查询每个部门的部门名和部门的领导编号
SELECT department_name,d.manager_id,d.department_id FROM departments d,employees e
WHERE d.`department_id` = e.`department_id` GROUP BY d.department_id
#②有奖金
SELECT department_name,d.manager_id,MIN(e.`salary`)FROM departments d,employees e
WHERE d.`department_id` = e.`department_id` AND e.`commission_pct` IS NOT NULL GROUP BY department_name
#7.可以实现三表连续?
#案例:查询员工名、部门名和所在城市
SELECT last_name,department_name,city FROM employees e,departments d,locations l WHERE e.`department_id` = d.`department_id`
AND d.`location_id` = l.`location_id`;

非等值连接

#案例1:查询员工的工资和工资级别
SELECT salary,grade_level FROM employees e,job_grades g WHERE salary BETWEEN g.`lowest_sal` AND g.`highest_sal`;

自连接

#案例:查询 员工名和上级的名称SELECT e.employee_id,e.last_name ,m.employee_id ,m.last_name FROM employees e,employees m WHERE e.`manager_id` = m.`employee_id`;

二、sql99语法:通过join关键字实现连接

  1. 含义:1999年推出的sql语法
  2. 支持:等值连接、非等值连接 (内连接) 外连接 交叉连接

  3. 语法:select 字段,...from 表1
    【inner 内连接|left outer  左外连接|right outer  右外连接|cross  交叉连接】join 表2 on  连接条件【inner|left outer|right outer|cross】join 表3 on  连接条件【where 筛选条件】【group by 分组字段】【having 分组后的筛选条件】【order by 排序的字段或表达式】
  1. 好处:语句上,连接条件和筛选条件实现了分离,简洁明了!

(一) 内连接

  • 1.等值连接
#1.等值连接
#案例1:查询员工名、部门名
SELECT last_name,department_name
FROM employees e
INNER JOIN departments d
ON e.`department_id` = d.`department_id`
#案例2:查询名字中包含e的员工名和工种名(筛选)
SELECT last_name,job_title FROM employees e INNER JOIN jobs j ON e.`job_id` = j.`job_id` WHERE last_name LIKE '%a%';
#案例3:查询部门个数>3的城市名和部门个数。(分组+筛选)
#①查询每个城市的部门个数
SELECT COUNT(*) 部门个数 FROM departments d INNER JOIN locations l ON d.`location_id` = l.`location_id` GROUP BY l.`city`
#②再①的基础上部门个数>3
SELECT COUNT(*) 部门个数 FROM departments d INNER JOIN locations l ON d.`location_id` = l.`location_id` GROUP BY l.`city` HAVING COUNT(*)>3
#案例4:查询那个部门的部门员工个数>3的部门名和员工个数,并按个数降序
#①查询部门名和员工个数
SELECT department_name ,COUNT(*) 员工个数 FROM departments d INNER JOIN employees e ON d.`department_id` = e.`department_id` GROUP BY department_name;
#②在①的结果集上  部门的部门员工个数>3 降序
SELECT department_name ,COUNT(*) 员工个数 FROM departments d INNER JOIN employees e ON d.`department_id` = e.`department_id` GROUP BY department_name
HAVING COUNT(*)>3 ORDER BY COUNT(*) DESC;
#案例5:查询员工名、部门名、工种名,并按部门名降序(三表连接)
SELECT last_name,department_name,job_title FROM employees e INNER JOIN departments d  ON e.`department_id` = d.`department_id`
INNER JOIN jobs j ON j.`job_id` = e.`job_id` ORDER BY d.department_id DESC;
  • 2.非等值连接
#案例1:查询员工的工资级别
SELECT last_name,salary,grade_level FROM employees e INNER JOIN job_grades  j ON e.`salary` BETWEEN j.`lowest_sal` AND j.`highest_sal`
#案例2:查询每个工资级别的个数,并且按工资级别降序
SELECT COUNT(*),j.`grade_level` FROM employees e INNER JOIN job_grades j ON e.`salary` BETWEEN j.`lowest_sal` AND j.`highest_sal` GROUP BY j.`grade_level`
ORDER BY j.`grade_level` DESC;
  • 3.自连接
#案例1:查询员工的名字,上级的名字
SELECT e.last_name ,m.last_name FROM employees e INNER JOIN employees m ON e.`manager_id` = m.`employee_id`;

(二) 外连接

  • 应用场景:用于查询一个表中有,另一个表没有的记录
  • 特点:
    • 外连接查询结果为主表中的所有记录。如果从表中有和他匹配的,显示匹配的值。没有匹配的,则显示null 。外连接的查询结果=内连接结果+主表中有而从表中没有的记录。
    • 左外连接,left左边的是主表。右外连接,right join 右边的是主表
    • 左外和右外交换两个表的顺序,可以实现同样的效果
#引入:查询没有男朋友的女神名 (左外连接)
SELECT  b.name FROM beauty b  LEFT  OUTER JOIN boys bo  ON  b.`boyfriend_id` = bo.`id` WHERE bo.id IS  NULL
#案例:查询那个部门没有员工
#左外 主表部门
SELECT d.* ,e.employee_id FROM departments d LEFT OUTER JOIN employees e ON d.department_id = e.employee_id WHERE e.employee_id IS NULL;
#右外
SELECT d.*,e.employee_id FROM employees e RIGHT OUTER JOIN departments d ON d.`department_id` = e.`department_id`
WHERE e.`employee_id` IS NULL;

进阶7:子查询

1.含义:一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询在外面的查询语句,称为主查询或外查询
2.特点:

  • 子查询都放在小括号内
  • 子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
  • 子查询优先于主查询执行,主查询使用了子查询的执行结果
  • 子查询根据查询结果的行数不同分为以下两类:
    • 单行子查询,结果集只有一行,一般搭配单行操作符使用:> < = <> >= <=
      非法使用子查询的情况:
      a、子查询的结果为一组值
      b、子查询的结果为空
    • 多行子查询
      结果集有多行,一般搭配多行操作符使用:any、all、in、not in。in: 属于子查询结果中的任意一个就行。any和all往往可以用其他查询代替

(一) where 或 having 后面 ※

  • 标量子查询(单行子查询)
#标量子查询(单行子查询)
#案例一:查询工资大于Abel的员工
#①查询Abel工资
SELECT salary FROM employees WHERE last_name = 'Abel'
#②查询员工的信息,满足salary>①结果
SELECT *
FROM employees
WHERE salary > (SELECT salary FROM employees WHERE last_name = 'Abel'
);
#案例2:查询job_id 与141号员工相同,salary 比 143号员工多的员工姓名,job_id和工资
#①查询141号员工的job_id
SELECT job_id FROM employees WHERE employee_id = 141
#②查询143号员工的salary
SELECT salary FROM employees WHERE employee_id = 143
#③查询员工的姓名,job_id 和工资,要求job_id=①并且salary>②
SELECT last_name,job_id,salary
FROM employees
WHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 141
)
AND salary > (SELECT salary FROM employees WHERE employee_id = 143
)
#案例3:返回公司工资最少的员工的last_name,job_id和salary
#①查询最小工资
SELECT MIN(salary) FROM employees
#②查询last_name,job_id和salary
SELECT last_name,job_id,salary
FROM  employees
WHERE salary = (SELECT MIN(salary) FROM employees
)
#案例4:查询最低工资大于50号部门最低工资的部门id和其最低工资
#① 查询10号部门的最低工资
SELECT MIN(salary) FROM employees WHERE department_id = 50
#②查询每个部门的最低工资
SELECT MIN(salary),department_id FROM employees GROUP BY department_id
#③筛选②满足min(salary)> ①
SELECT MIN(salary),department_id
FROM employees
GROUP BY department_id
HAVING MIN(salary) > (SELECT MIN(salary) FROM employees WHERE department_id = 50
)
  • 列子查询(多行子查询)
#2.列子查询(多行子查询)
#案例1:返回location_id 是 1400 或 1700的部门中的所有员工姓名
#①查询location_id是1400或1700的部门编号
SELECT DISTINCT department_id
FROM departments
WHERE location_id
IN (1400,1700)
#②查询员工姓名,部门id是①
SELECT  last_name
FROM employees
WHERE department_id
IN (SELECT  DISTINCT department_idFROM departmentsWHERE location_id IN (1400,1700)
)
#案例2:返回其他工种中job_id为'IT_PROG'部门任一工资低的员工的员工号、姓名、job_id 以及 salary
#①查询job_id为'IT_PROG'部门任一工资
SELECT DISTINCT salary
FROM employees e
WHERE  e.`job_id` = 'IT_PROG'
#②查询员工号、姓名、job_id 以及 salary,salary < ①中任意一个
SELECT last_name,employee_id,salary
FROM employees
WHERE salary < ANY(SELECT DISTINCT salary FROM employees e WHERE  e.`job_id` = 'IT_PROG'
) AND job_id <> 'IT_PROG'
#案例2:返回其他部门中比job_id为'IT_PROG'部门所有工资都低的员工 的员工号、姓名、job_id 以及salary
SELECT last_name,employee_id,salary
FROM employees
WHERE salary < ALL(SELECT DISTINCT salary FROM employees e WHERE  e.`job_id` = 'IT_PROG'
) AND job_id <> 'IT_PROG'
  • 行子查询(多行多列 用的较少 操作符一样)
#案例1:查询员工编号最小并且工资最多的员工信息
SELECT *
FROM employees
WHERE (employee_id,salary) = (SELECT  MIN(employee_id),MAX(salary)FROM employees
)

(二) select 后面的子查询 [可以用其他方式代替]

  • 仅仅支持标量子查询
#二、select 后面
#案例1:查询每个部门的员工个数
SELECT d.*,(SELECT COUNT(*)FROM employees eWHERE d.`department_id` = e.`department_id`
) 个数
FROM departments d#案例2:查询员工号=102的部门名
SELECT(SELECT department_name FROM departments dINNER JOIN employees eON d.`department_id` = e.`department_id`WHERE e.employee_id = 102
) 部门名

(三) from 后面的子查询

  • 将子查询结果充当一张表,要求必须起别名
#案例1:查询每个部门的平均工资的工资等级
#①查询每个部门的平均工资
SELECT AVG(salary),department_id
FROM employees
GROUP BY department_id
#②链接1的结果集和job_gredes表,筛选条件平均工资正在。。中间
SELECT ag_dep.*,g.grade_level
FROM (SELECT AVG(salary) ag,department_idFROM employeesGROUP BY department_id
) ag_dep
INNER JOIN job_grades g
ON ag_dep.ag BETWEEN lowest_sal AND highest_sal 

(四) exists后面的子查询使用

  • 语法:EXISTS(完整的查询语句);结果:0或1
#四、 exists后面的子查询使用(相关子查询)
SELECT EXISTS(SELECT employee_id FROM employees WHERE salary = 300000
)

进阶8:分页查询

  • 应用场景:实际的web项目中需要根据用户的需求提交对应的分页查询的sql语句
  • 语法:
    select 字段|表达式,...from 表【where 条件】【group by 分组字段】【having 条件】【order by 排序的字段】limit 【起始的条目索引,】条目数;
  • 特点:

    • 1.起始条目索引从0开始
    • 2.limit子句放在查询语句的最后
    • 3.公式:select * from 表 limit (page-1)*sizePerPage,sizePerPage
      假如:
      每页显示条目数sizePerPage
      要显示的页数 page
#案例1:查询前5条员工信息
SELECT * FROM employees LIMIT 0,5;
#案例2:查询11-25条
SELECT * FROM employees LIMIT 10,15
#案例3:有奖金的员工信息,并且工资较高的前10名
SELECT*
FROMemployees
WHERE commission_pct IS NOT NULL
ORDER BY salary DESC
LIMIT 10

进阶9:联合查询

  • 引入:union 联合、合并
  • 语法:
    select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】select 字段|常量|表达式|函数 【from 表】 【where 条件】 union  【all】.....select 字段|常量|表达式|函数 【from 表】 【where 条件】
  • 特点:

    • 1、多条查询语句的查询的列数必须是一致的
    • 2、多条查询语句的查询的列的类型几乎相同
    • 3、union代表去重,union all代表不去重

转载于:https://www.cnblogs.com/xpz-python/p/10935138.html

MySQL Basic Learning (一)相关推荐

  1. mysql basic_MySQL Basic Learning (二)

    DML语言 插入 1.语法: insert into 表名(字段名,...) values(值1,...); 2.特点: 1.字段类型和值类型一致或兼容,而且一一对应 2.可以为空的字段,可以不用插入 ...

  2. MySQL Basic

    文章目录 **数据类型:** **基本操作命令:** **存储引擎**: **Alias** **匹配模式** **正则表达式:REGEXP** **多表查询** 数据类型: 字符串: CHAR(n) ...

  3. MySQL吉连_Learn Jdbc : Java, Jdbc, Odbc

    Learn Jdbc : Java, Jdbc, Odbc 介绍 Learn Jdbc : Java, Jdbc, Odbc Learn JDBC we precisely name what we ...

  4. mysql 5.7.21-linux_MySQL 5.7.21 Linux平台安装 Part 2

    从今天开始MySQL相关方面的东西 今天是关于MySQL的安装 系统为 redhat 6.10 数据库为MySQL 5.7.21 PS:目前最新版本为MySQL 5.7.25 1. 目录规划 2. M ...

  5. 2018-12 文献阅读:Boosting for Transfer Learning(2007)--迁移学习

    2018-12 文献阅读:Boosting for Transfer Learning(2007) 2018-12 文章的作者Wenyuan Dai&Qiang yang&Gui_Ro ...

  6. sqlmap工具命令行的含义

    SQLMAP参数介绍 sqlmap的使用方式:python sqlmap.py [options]: sqlmap中一共有以下十六个选项卡: 帮助选项卡: Target(目标选项卡): Request ...

  7. 24个很赞的 Node.js 免费教程和在线指南

    JavaScript 最初是用来创建动态网站效果的的前端语言.而如今,这门脚本语言也可以用作后端开发,用于搭建 Web 服务器,开发接口,甚至创建博客.在下面这个列表中包括24个 Node.js 教程 ...

  8. SQLMap用户手册【超详细】

    SQLMap用户手册[超详细] 文章来源:http://www.cnblogs.com/hongfei/p/3872156.html ps:直接copy http://192.168.136.131/ ...

  9. info testing mysql_SQLMASQLMAP中文说明(linux版本)

    这个东西,是mickey整理的,不多说了,尊重一下原作者,转载注明mickey整理就好了 更新 svn checkout https://svn.sqlmap.org/sqlmap/trunk/sql ...

最新文章

  1. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程
  2. Php-SPL库中的迭代器类详解(转)
  3. 忘掉什么鬼并发,先听完这个故事!
  4. Codeforces Beta Round #9 (Div. 2 Only)【未完结】
  5. linux下编辑aacc.sh脚本命令,Shell命令实战详解
  6. redirect通过url_for传递参数_Excel VBA解读 | 进阶篇(127):Sub过程的参数传递技术...
  7. react遍历对象的值_React 原理之实现 createElement 和 render 方法
  8. 两个月拿到N个offer,看看我是如何做到的
  9. The literal of int xxxxx is out of range
  10. PHP 字符串匹配算法 Sunday算法
  11. Maven 项目添加jetty 插件
  12. 直接插入排序-java
  13. WireShark抓包分析
  14. Leetcode题解(更新中……)
  15. python判断中文近义词_近义词查询工具easySynonyms
  16. spring boot学习2,日志框架
  17. 【无标题】2023速卖通开店教程,入驻图文讲解!
  18. thinkpad t440安装os小记
  19. 计算机大一基础知识,大一计算机基础知识论文
  20. 视觉平台Visionpro脚本神器

热门文章

  1. 理解 QEMU/KVM 和 Ceph(2):QEMU 的 RBD 块驱动(block driver)
  2. 批量导出表数据到CSV文件
  3. 【转】如何在github上fork一个项目来贡献代码以及同步原作者的修改 -- 不错
  4. ORA-12919: Can not drop the default permanent tablespace
  5. Dsure-HTML5网站前端开发框架,网页设计师福利
  6. Java中对象的销毁
  7. 与Brian Goetz聊Java的数据类
  8. C++ Primer 第九章 顺序容器
  9. Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level...
  10. AlertDialog具体解释