mysql 二階精度 MySQL複習 (二)高階篇

2021-10-18 12:38:46 字數 2267 閱讀 4570

sql 函式一些函式

left(str,len)

right(str,len)

locate(substr,str)

substr(str from pos for len)

一、sql 函式

left(str,len)

left:從左提取所要字元

用法:left(字串對應列名,從左數擷取所需字元位置)

ringht:與用法與left一致

right(str,len)

用法:left(所需的對應列名,從右數擷取所需字元位置)

//從左擷取第一位字元

select left(salary,1),salary from dataanalyst_sql;

//從右擷取第一位字元

select right(salary,1),salary from dataanalyst_sql;

//從左擷取4個字元

select left(salary,4),salary from dataanalyst_sql;

只顯示left(salary,1)列

select left(salary,1) from dataanalyst_sql;

locate(substr,str)

locate:定位某一字元位置,返回對應字元位置(定位,查詢字元所在在整字串的位置)

用法:locate('查詢的字串',對應列名,從字串中第幾個位置開始查詢)

locate('查詢的字串',對應列名) //不寫預設第一位開始

ps:只能查詢一次乙個

//從salary列第三位置開始找'k'在該列的位置

select left(salary,1),locate('k',salary,3), salary

from

dataanalyst_sql;

//預設從第一位開始找『k』

select left(salary,1),locate('k',salary), salary

from

dataanalyst_sql;

//結合用:拆分列,擷取薪資上限

select left(salary,locate('k',salary)-1), salary

from

dataanalyst_sql;

//方法一:提取工資下限。

select right(salary,locate('-',salary)-1), salary

from

dataanalyst_sql;

k仍在方法二

利用兩次left函式擷取,

select

left(salary,locate('k',salary)-1),

locate('-',salary),

length(salary), //計算salary列字元長度

//length(salary)-locate('-',salary) 等於右邊長度(下限工資)

right(salary,length(salary)-locate('-',salary)), //擷取下限工資,並把它當成乙個新的列

//left(salary,locate('k',salary)-1)

//salary=right(salary,length(salary)-locate('-',salary))

//length(salary)-locate('-',salary)-1 /left需要擷取的長度

left(right(salary,length(salary)-locate('-',salary)),length(salary)-locate('-',salary)-1),

salary

from

dataanalyst_sql;

//新手分步驟寫

substr()substr(字串,在字元哪個位置開始,需要擷取長度)

substr(str,pos,len) 就是從pos開始的位置,擷取len個字元(空白也算字元)

sbustr(字串,在字元哪個位置開始)

sbustr(str,pos) 就是從pos開始的位置,一直擷取到最後。

select

left(salary,locate('k',salary)-1),

locate('-',salary),

length(salary),

substr(salary,'-',length(salary)-length(salary)),

salary

from

dataanalyst_sql;

二階sqli注入

通過對客戶端提交的資料進行嚴格的審查是有效避免sql注入的方法,但是一旦輸入的資料存入到資料庫之後,對這些資料的使用往往沒有做嚴格的檢查,但是對這些資料的操作往往具有很高的許可權,在使用這些資料再進行sql查詢或者sql寫操作的時候,很可能造成嚴重的sql注入,例如 使用者建立了乙個賬戶john 對...

C 二階構造

1.如何判斷建構函式的執行結果?目前無法判斷 2.在建構函式中執行return語句會發生什麼?建構函式直接 返回,執行結束 3.建構函式執行結束是否意味著物件構造成功?不 include class test int geti int getj int status int main return ...

Pocket Cube二階魔方

hdu5983的一道題,看錯了輸入,看了題解發現用一位陣列存比較方便。開兩個24的陣列存完直接暴力交換就完事了,搞了兩個小時,才發現這麼簡單,真是自閉魔方。include using namespace std int a 30 b 30 int isok return1 void cpy intm...