-- 檢視
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...