1. 程式人生 > 實用技巧 >springboot @Value 靜態變數注入,springboot @ConfigurationProperties註解使用

springboot @Value 靜態變數注入,springboot @ConfigurationProperties註解使用

SQL學習筆記

文章目錄

1.問題

什麼是資料庫?

是一個倉庫,可以按照資料結構來組織,儲存和管理資料。 是一個長期儲存在計算機內的、有組織的、有共享的、統一管理的資料集合。

什麼是資料庫管理系統?

一種操作和管理資料庫的大型軟體,使用者可以通過它訪問到資料庫裡的資料。

什麼是SQL?

結構化查詢語言(Structured Query Language)簡稱SQL
(發音:/ˈes kjuː ˈel/ “S-Q-L”)(的確,我最開始一直skrskr地讀) 是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。

什麼是MySQL?

MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB公司開發,屬於Oracle旗下產品,是最流行的關係型資料庫管理系統之一。
MySQL所使用的SQL語言是用於訪問資料庫的最常用標準化語言,由於其體積小、速度快、開放原始碼等特點,一般中小型網站的開發都選擇MySQL作為網站資料庫。

PHPstudy幫我備好了環境?

YES,真香哈 在PHPstudy軟體管理中,下載phpMyAdmin4.8.5
開啟谷歌瀏覽器,輸入http://localhost/phpMyAdmin4.8.5進入

2.SQL基本語句

理應大寫
西卡西,小寫好像也沒啥問題
記得加分號!!!!!

show databases;       -- 檢視所有資料庫
create database 資料庫名 ;  -- 建立資料庫
create database 資料庫名 charset=utf8;   --建立指定字符集的資料庫(mysql中utf8沒有-)
create database if not exists mlgb;  --如果不存在mlgb就建立mlgb
show create database 資料庫名 ;  --展示建立的資料庫
alter database character set utf8;  --修改資料庫
drop database 資料庫名 ; --刪庫跑路
use database 資料庫名;  #使用資料庫
select database();    #檢視當前使用的資料庫

3.SQL基本資料查詢

查詢出來的表是虛擬表

select 列名 from 表名; #查啥表啥列
#select * 表示所有列
select 列名1 as 'XXX', 列名1 as 'YYY' from 表名;   #給查詢的表起別名
select distinct 列名 from 表名; #去重

排序查詢

select 列名 from 表名 order by 排序列 排序規則 [列2] [規則];
asc升序
desc降序

條件查詢

select 列名 from 表名 where 條件;
等值判斷,就用  =
邏輯判斷   and or not
不等於    <>    !=
範圍      between x and y
列舉       in (x,y,z)
空的判斷  is null
         is not null
         直接查=null是不行滴
模糊查詢  	 like 符號
	     	% 表示任意多個任意字元
	    	_ 表示一個任意字元
分支結構查詢  select 列
			case 
				when  條件  then  'A'
				when  條件  then  'B'
				when  條件  then  'C'
				when  條件  then  'D'
				else  'E'
			end  as  成績  

時間查詢

select 時間函式([引數列表])
	比如
select sysdate(); 當前系統時間
剩下一些函式可以自行百度

字串查詢

select 字串函式([引數列表])
select concat(firstname,lastname) as 'name' from people ;
查詢幾列並連線在一起

insert(str,pos,len,newstr)  
將str中pos位置開始len長度的內容替換為newstr,字串下標從1開始 
upper()  轉大寫
lower()  轉小寫
substring(str,num,len)
將str字串指定num位置開始擷取len個內容

聚合函式

select count() from XX;   一列的總行數,會忽略NULL值
select max() from XX ;     最大值
select min() from XX ;     最小值
select sum() from XX ;     求和
select avg() from XX ;     平均值

分組查詢

select XX from XX where XX group by 分組依據(列);
group by + having  分組之後過濾

限定查詢

select XX from XX limit 起始行,總條數

執行順序

(1)from
(2) where
(3)group by
(4) 聚合函式
(5)having
(6) select
(7)distinct
(8) order by
(9) limit

4.SQL複雜點的資料查詢

子查詢

在一個 select 語句中,嵌入了另外一個 select 語句, 那麼被嵌入的 select語句稱之為子查詢語句,外部那個select語句則稱為主查詢。
嗯,記得加括號。
子查詢結果可以是單行單列,可以是多行單列,也可以是一張表。
結果是一張表時,可以放到FROM裡,但要給一個臨時的表名。

select * from students 
where age > (select avg(age) from students);
關鍵字 all any 所有 部分 

合併查詢

select XX from XX union select XX from XX ; (去掉重複記錄)
select XX from XX union all select XX from XX ;(不去重複記錄)
兩表列數必須相同

內連結查詢

select  XX from XX inner join XX on XX.YY = XX.YY ;
如果不指定連線條件,則會造成笛卡爾積的結果

左右外連線

左外連結以左表為主表,依次向右匹配,如果匹配不到,返回NULL
右外連線以右表為主表,依次向左匹配,如果匹配不到,返回NULL
select  XX from XX left join XX on XX.YY = XX.YY ;
select  XX from XX right join XX on XX.YY = XX.YY ;

5.DML操作

新增(INSERT)

insert into 表名(列1,列2 ...) values(值1,值2...);
列與值一一對應

修改(UPDATE)

update 表名 set 列1=值1,列2=值2...... where 條件;
如果不加where條件的話整個表都會修改。

以下為刪庫跑路的主要操作
刪除(DELETE)

delete from 表名 where 條件
如果不加where條件的話整個表都會被刪除。

清空整張表的資料

truncate table 表名

6.資料表操作

如果表名和關鍵字衝突,可以在前後加 `符號來避免 。
資料型別

int
double
decimal
date
datetime
char
varchar…

建立表

create table 表名(
    列名 資料型別 [約束],
    列名 資料型別 [約束],
    列名 資料型別 [約束]    #最後一列末尾不加逗號
) [charset = utf8]     #可以指定字元編碼集

修改表

alter table 表名 add 列名 型別
alter table 表名 drop 列名
drop table 表名
alter table 表名 modify 列名 型別
alter table 表名 change 舊列名 新列名 型別
alter table 表名 rename 新表名

(未完待續)