玩转算法面试-- Leetcode真题分门别类讲解

187 阅读3分钟

**

download:玩转算法面试-- Leetcode真题分门别类讲解


相信这是一门非常及时的课程,送给面试在即的你,学完这门课程,对于面试中遇到的大多数算法问题,你都会迎刃而解,但课程绝不止于面试,同样适合即将参加各类算法竞赛的同学,重要的是提升你的算法思维,这将是贯穿你编程生涯的核心内功!

**

**适合人群及技术储备要求

适合具备基本编程思想,了解C++基本语法,最好你已经学习过另一门实战课程《算法与数据结构》,或者对基础数据结构已经有了解,在此基础上,想提升算法设计能力的同学,那这门课程非常适合你

SQL注入

> SQL注入是效勞器端未嚴厲校驗客戶端發送的數據,而招致效勞端SQL语句被歹意修正並勝利執行的行爲。
>
> 實質:把用戶輸入的數據當作代码執行。任何和數據庫產生交互的中央便有可能存在注入.

SQL注入類型

數據傳輸: GET POST COOKIE

數據類型: 整型 字符型

注入形式: 結合查询 報錯 佈爾盲注 時間盲注 推查询

SQL注入的普通步骤

  1. 判別能否有注入
    1. 可控參數的改動能否影響頁面的結果。
    2. 輸入的SQL语句能否能報錯.---->經過數據庫報錯,看到數據庫的语句痕跡。
    3. 輸入的SQL语句能否不報錯.---->语句可以勝利閉合。
  2. 判別注入類型
  3. 语句能否可以被歹意修正
  4. 能否可以執行
  5. 獲取我們想要的數據

SQL注入的根底學問

數據庫構造

數據庫---->表---->字段---->值

SQL5.0版本之後MySQL默許在數據庫中寄存一個“information_schema”的數據庫,在該庫中有三個重要的表名schemata,tables,columns

schemata表存儲該用戶創立的一切數據庫的庫名,字段名爲schema_name

tables表存儲該用戶創立的一切數據庫的庫名和表名,數據庫庫名和表名字段分別爲table_schema,table_name

columns表存儲一切的庫名,表名,字段名,它們的字段名分別爲table_schema,table_name,column_name

查询语句

select 要查询的字段名 from 庫名.表名
select 要查询的字段名 from 庫名.表名 where 已知條件的字段名 = '已知條件的值'
select 要查询的字段名 from 庫名.表名 where 已知的條件字段名1 = '已知條件的值1' and 已知條件2的字段名 = '已知條件2的值'

limit用法

limit m,n

m表示記载開端的位置,從0開端表示第一條記载;n指取n條記载。

重要的函數

database()      當前網站運用的數據庫。
version()       當前的MySQL版本。
user()          當前MySQL的用戶。
@@datadir       數據庫途径。
@@version_compile_os    操作係統版本


concat(str1,str2,...)                   沒有分隔符地衔接字符串
concat_ws(separator,str1,str2,...)      含有分隔符地衔接字符串
group_concat(str1,str2,...)             衔接一個組的一切字符串,並以逗號分隔每一條數據

注释符

常見的注释表達方式爲:#    --空格    /**/
在url中表示爲:     %23   --+**