mysql高階3 MYSQL高階

2021-10-19 06:33:33 字數 3227 閱讀 2999

-- 檢視

create view v_employee

asselect a.empid,a.empname,a.gender,b.deptname

from employee a left join dept b on a.deptid=b.deptid;

select * from v_employee

select * from v_employee where deptname='開發部';

-- 更改view

alter view v_employee

asselect a.empid,a.empname,a.gender,b.deptname

from employee a left join dept b on a.deptid=b.deptid limit 3;

select * from v_employee

-- 字串類 函式

select concat('a','b','c')

select * from employee

select empname,insert(empname,'u') from employee;

select deptname,length(deptname) from dept;

select * from employee;

select empname,replace(empname,'i','c') from employee;

select substring(empname,1,3) from employee;

select empname,concat(substring(empname,1,3),'***') from employee

-- 數學類

select abs(-1)

select pow(2,4)

select ceiling(2.8)

select ceiling(1.1)

select floor(1.1)

select floor(1.9)

select format(2.8148,2)

select format(2.8158,2)

select bin(10)

select hex(10)

select hex(12)

-- 日期時間類

select now()

select year(now());

select month(now());

select day(now());

select date(now());

select time(now());

select dayofweek(now());

select dayofyear(now());

-- 10.1還有幾天?

-- datediff (date1 ,date2 )

select datediff('2019/10/1',date(now()))-1

-- 儲存過程 (stored procedure)

-- (1) 根據乙個引數:工號empid=101,顯示 這個人的姓名  (輸入引數 「101」,輸出引數「empname」)

select empname from employee where empid='1001'

create procedure proc_getempnamebyid(in _empid char(10),out _empname varchar(20) )

begin

select empname into _empname from employee where empid=_empid;

end;

set @empname='';

call proc_getempnamebyid('101',@empname);

select @empname;

-- (2)  根據乙個引數:工號empid=101,顯示 這個人的所有資訊(輸入引數,得至乙個多行多列的結果集)

select * from employee where empid='101'

select * from employee where gender='女'

create procedure proc_getempbygender(in _gender char(10) )

begin

select  *  from employee where gender=_gender;

end;

***********************************(1)***********************************

一句話說明: 獲取字串長度的mysql內建函式

length是mysql的乙個用來來獲取字串長度的內建函式方法,

同樣的獲取字串長度的還有char_length. length: 是計算欄位的長度, utf8編碼下,乙個漢字是算三個字元,乙個數字或字母算乙個字元。其他編碼下,乙個漢字算兩個字元, 乙個數字或字母算乙個字元。

mysql:

utf-8 :length()乙個漢字3個長度

gbk : length()乙個漢字2個長度

select * from employee

show session variables like '%character%'

insert into employee (empid,gender,deptid) values(108,'男男',1)

insert into employee (empid,gender,deptid) values(110,'aa',1)

insert into employee (empid,gender,deptid) values(110,'a',1)

insert into employee (empid,gender,deptid) values(113,'a ',1)

> enum,set

> char(2) 2個字元

select gender,length(gender)  from employee

select length('的') as l, char_length('的') as cl;

select gender,length(gender) as l, char_length(gender) from employee

select gender,length(gender) as l, bit_length(gender) from employee

MySQL高階高階

1 mysql的開窗函式 row number 從 1 開始,按照順序生成組內的記錄編號 rank 從 1 開始,按照順序,相同會重複,名次會留下空的位置,生成組內的記錄編號 dense rank 從 1 開始,按照順序生成組內的記錄編號,相同會重複,名次不會留下空的位置 開窗函式區別如下圖所示 f...

mysql 高階 mysql高階知識

一.儲存引擎 引擎 指的是乙個系統的核心部分 引擎有不同分類是為了適應不同的使用場景 檢視mysql支援所有引擎 show engines mrg myisam 是一堆myisam表的集合 用於做水平分表,如果乙個表中資料量太大 將導致效率降低 水平分表就是把整個大表拆成不同的小表,每一次查詢 會判...

3 mySQL 輸入查詢

輸入查詢,確保已經連線到伺服器。這樣做本身並不選擇要使用的任何資料庫。看乙個簡單的查詢。要求伺服器告訴您其版本號和當前日期。mysql select version current date version current date 10.3 27 mariadb 0 deb10u1 2021 03...