天天看點

資料庫Mysql

​ 1.持久化資料到本地

​ 2.可以實作結構化查詢,友善管理

​ 1、db:資料庫,儲存一組有組織的資料的容器

​ 2、dbms:資料庫管理系統,又稱為資料庫軟體(産品),用于管理db中的資料

​ 3、sql:結構化查詢語言,用于和dbms通信的語言

​ 1、将資料放到表中,表再放到庫中

​ 2、一個資料庫中可以有多個表,每個表都有一個的名字,用來辨別自己。表名具有唯一性。

​ 3、表具有一些特性,這些特性定義了資料在表中如何存儲,類似java中 “類”的設計。

​ 4、表由列組成,我們也稱為字段。所有表都是由一個或多個列組成的,每一列類似java 中的”屬性”

​ 5、表中的資料是按行存儲的,每一行類似于java中的“對象”。

​ 方式一:計算機——右擊管理——服務

​ 方式二:通過管理者身份運作

​ net start 服務名(啟動服務)

​ net stop 服務名(停止服務)

​ 方式一:通過mysql自帶的用戶端

​ 隻限于root使用者

​ 1.不區分大小寫,但建議關鍵字大寫,表名、列名小寫

​ 2.每條指令最好用分号結尾

​ 3.每條指令根據需要,可以進行縮進 或換行

​ 4.注釋

​ 單行注釋:#注釋文字

​ 單行注釋:-- 注釋文字

​ 多行注釋:/* 注釋文字 */

​ dql(data query language):資料查詢語言

​ select

​ dml(data manipulate language):資料操作語言

​ insert 、update、delete

​ ddl(data define languge):資料定義語言

​ create、drop、alter

​ tcl(transaction control language):事務控制語言

​ commit、rollback

​ 文法:

​ select 要查詢的東西

​ 【from 表名】;

​ 條件查詢:根據條件過濾原始表的資料,查詢到想要的資料

​ select

​ 要查詢的字段|表達式|常量值|函數

​ from

​ 表

​ where

​ 條件 ;

​ 1、字元函數

​ concat拼接

​ substr截取子串

​ upper轉換成大寫

​ lower轉換成小寫

​ trim去前後指定的空格和字元

​ ltrim去左邊空格

​ rtrim去右邊空格

​ replace替換

​ lpad左填充

​ rpad右填充

​ instr傳回子串第一次出現的索引

​ length 擷取位元組個數

​ 2、數學函數

​ round 四舍五入

​ rand 随機數

​ floor向下取整

​ ceil向上取整

​ mod取餘

​ truncate截斷

​ 3、日期函數

​ now目前系統日期+時間

​ curdate目前系統日期

​ curtime目前系統時間

​ str_to_date 将字元轉換成日期

​ date_format将日期轉換成字元

​ 4、流程控制函數

​ if 處理雙分支

​ case語句 處理多分支

​ 情況1:處理等值判斷

​ 情況2:處理條件判斷

​ 5、其他函數

​ version版本

​ database目前庫

​ user目前連接配接使用者

​ 特點:

​ 1、可以按單個字段分組

​ 2、和分組函數一同查詢的字段最好是分組後的字段

​ 3、分組篩選

​ 針對的表 位置 關鍵字

​ 分組前篩選: 原始表 group by的前面 where

​ 分組後篩選: 分組後的結果集 group by的後面 having

​ 4、可以按多個字段分組,字段之間用逗号隔開

​ 5、可以支援排序

​ 6、having後可以支援别名

一、傳統模式下的連接配接 :等值連接配接——非等值連接配接

二、sql99文法:通過join關鍵字實作連接配接

三、自連接配接

案例:查詢員工名和直接上級的名稱

sql99

sql92

含義:

特點:

應用場景:

文法:

引入:

union 聯合、合并

insert into 表名(字段名,...)

values(值1,...);

修改單表文法:

修改多表文法:

方式1:delete語句

單表的删除: ★

delete from 表名 【where 篩選條件】

多表的删除:

delete 别名1,别名2

from 表1 别名1,表2 别名2

where 連接配接條件

and 篩選條件;

方式2:truncate語句

兩種方式的差別【面試題】

庫的管理:

表的管理:

#1.建立表

​ );

​ desc studentinfo;

​ #2.修改表 alter

​ 文法:alter table 表名 add|modify|drop|change column 字段名 【字段類型】;

​ #①修改字段名

​ alter table studentinfo change column sex gender char;

​ #②修改表名

​ alter table stuinfo rename [to] studentinfo;

​ #③修改字段類型和列級限制

​ alter table studentinfo modify column borndate date ;

​ #④添加字段

​ alter table studentinfo add column email varchar(20) first;

​ #⑤删除字段

​ alter table studentinfo drop column email;

​ #3.删除表

​ drop table [if exists] studentinfo;

相關步驟:

隐式事務,沒有明顯的開啟和結束事務的标志

顯式事務,具有明顯的開啟和結束事務的标志

事務并發問題如何發生?

事務的并發問題有哪些?

如何避免事務的并發問題?

設定隔離級别:

檢視隔離級别:

含義:了解成一張虛拟的表

視圖和表的差別:

視圖的好處:

​ 4、删除視圖的資料

​ delete from my_v4;

含義:一組經過預先編譯的sql語句的集合

好處:

分類:

類似于方法:

注意

調用存儲過程

學過的函數:length、substr、concat等

一、全局變量

作用域:針對于所有會話(連接配接)有效,但不能跨重新開機

二、會話變量

作用域:針對于目前會話(連接配接)有效

一、使用者變量

聲明并初始化:

指派:

使用:

二、局部變量

聲明:

二者的差別:

使用者變量 目前會話 會話的任何地方 加@符号,不用指定類型

局部變量 定義它的begin end中 begin end的第一句話 一般不用加@,需要指定類型

一、if函數

文法:if(條件,值1,值2)

特點:可以用在任何位置

二、case語句

可以用在任何位置

三、if elseif語句

隻能用在begin end中!!!!!!!!!!!!!!!

三者比較:

應用場合

if函數 簡單雙分支

case結構 等值判斷 的多分支

if結構 區間判斷 的多分支