mysql的變數及資料庫表之間的對應關係理解

2021-07-30 20:06:14 字數 1562 閱讀 4058

mysql中的變數:

注:變數的具體應用,會在以後的文章中用示例舉出。

·變數分為系統變數(以@@開頭)以及使用者自定義變數。

使用者自定義變數分為使用者會話變數(以@開頭)以及區域性變數(不以@開頭) 。

1、使用者自定義變數

·使用者會話變數(以@開頭)

使用者會話變數的定義與賦值

一般情況下,使用者會話變數的定義與賦值會同時進行。使用者會話變數的定義與賦值有兩種方法:使用set命令或者使用select語句。

方法一:使用set命令定義使用者會話變數,並為其賦值,語法格式如下:

set @user_variable1=expression1 [,@user_variable2= expression2 , …]

使用者會話變數的資料型別是根據賦值運算子「=」右邊表示式的計算結果自動分配的。也就是說,等號右邊的值決定了使用者會話變數的資料型別

方法二:使用select語句定義使用者會話變數,並為其賦值,語法格式有兩種。

第一種語法格式:select @user_variable1:=expression1 [,user_variable2:= expression2 , …]

第二種語法格式:select expression1 into @user_variable1, expression2 into @user_variable2,…

第一種與第二種語法格式的區別在於:第一種語法格式中的select語句會產生結果集,第二種語法格式中的select語句,僅僅用於會話變數的定義及賦值(但不會產生結果集)。

使用者會話變數在本次會話期間一直有效,直至關閉伺服器連線。

·區域性變數

declare命令專門用於定義區域性變數及對應的資料型別。區域性變數必須定義在儲存程式中(例如函式、觸發器、儲存過程以及事件中),並且區域性變數的作用範圍僅僅侷限於儲存程式中,脫離儲存程式,區域性變數沒有絲毫意義。

mysql開發人員經常將頻繁使用的業務邏輯封裝成儲存程式,mysql的儲存程式分為四類:函式、觸發器、儲存過程以及事件。

區域性變數定義在儲存程式的begin-end語句塊之間。此時區域性變數首先必須使用declare命令定義,並且必須指定區域性變數的資料型別。只有定義區域性變數後,才可以使用set命令或者select語句為其賦值。

資料庫表之間對應關係的理解:

1、為每張表定義乙個主鍵

2、增加外來鍵表示一對多關係

外來鍵(foreign key):如果表a中的乙個欄位a對應於表b的主鍵b,則字段a稱為表a的外來鍵,此時儲存在表a中欄位a的值,要麼是null,要麼是來自於表b主鍵b的值。

情形一:如果實體間的關係為一對多關係,則需要將「一」端實體的主鍵放到「多」端實體中,然後作為「多」端實體的外來鍵,通過該外來鍵即可表示實體間的一對多關係。

3、一對一可以看成特殊的一對多關係

4、多對多關係

情形二:如果兩個實體間的關係為多對多關係,則需要新增新錶表示該多對多關係,然後將該關係涉及到的實體的「主鍵」分別放入到新錶中(作為新錶的外來鍵),並將關係自身的屬性放入到新錶中作為新錶的字段。

mysql資料庫及表的操作

注 windows與linux的資料庫命令一致 注 mysql自帶的指令不區分大小寫 啟動mysql服務 在windows中啟動及關閉服務 啟動 net start mysql 關閉 net stop mysql 在linux中啟動服務,預設開啟 啟動 service mysql start 關閉 ...

資料庫表之間的鏈

cannot add or update a child row,表之間互相引用外來鍵造成 死鎖 cannot add or update a child row,cannot delete or update a parent row 先建兩張表 user和card,為了簡單,都只有乙個字段 id...

MySQL不同資料庫之間表的簡單同步

mysql不同資料庫之間表的簡單同步,實用輕量級資料 如下案列展示 例如我現在主庫上面有users tenants兩張表需要同步到備庫上面 主庫 1 確認主庫資料條數 select count from users select count from tenants 2 將資料匯出到檔案,data ...