mysql高階教程(一)

2021-06-28 13:52:45 字數 3702 閱讀 5063

今天我們來學習一些mysql的高階使用教程。

首先,我們用select語句來檢視一下這個persons的表,注意這三句的結果

我們先來試試用 like 找出lastname是zh開頭的人

這裡的 % 是乙個萬用字元

這裡我們又用like找到了lastname以'ng'結尾的,中間有'i'的,以及中間沒有'i'的

在搜尋資料庫中的資料時,sql 萬用字元可以替代乙個或多個字元。

sql 萬用字元必須與 like 運算子一起使用。

在 sql 中,可使用以下萬用字元:

萬用字元描述

%替代乙個或多個字元

_僅替代乙個字元

[charlist]

字元列中的任何單一字元

[^charlist]

或者[!charlist]

不在字元列中的任何單一字元

我們先來試試 % 和 _這兩個萬用字元

至於charlist, mysql不知道是不支援還是用法不同,我們先放在一邊

between ... and ... : (還是啥也不說了)

我們先搞個新的表orders

這裡我們來搞了一下別名,給persons起名p,給orders起名o。當然我們不但可以給表起別名,而且也可以給列起別名。

sql join:

sql join 用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料。

這裡我們用的join是inner join,除此之外還有:

union 操作符用於合併兩個或多個 select 語句的結果集。

請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。

select column_name(s) from table_name1

union

select column_name(s) from table_name2

注釋:預設地,union 操作符選取不同的值。如果允許重複的值,請使用 union all。

select column_name(s) from table_name1

union all

select column_name(s) from table_name2

另外,union 結果集中的列名總是等於 union 中第乙個 select 語句中的列名。

sql select into 語句可用於建立表的備份復件。

select into 語句從乙個表中選取資料,然後把資料插入另乙個表中。

select into 語句常用於建立表的備份復件或者用於對記錄進行存檔。

您可以把所有的列插入新錶:

select *

into new_table_name [in externaldatabase]

from old_tablename

或者只把希望的列插入新錶:

select column_name(s)

into new_table_name [in externaldatabase]

from old_tablename

下面的例子會製作 "persons" 表的備份復件:

select*intopersons_backup

from persons

in 子句可用於向另乙個資料庫中拷貝表:

select*intopersonsin'backup.mdb'

from persons

如果我們希望拷貝某些域,可以在 select 語句後列出這些域:

selectlastname,firstnameintopersons_backup

from persons

我們也可以新增 where 子句。

下面的例子通過從 "persons" 表中提取居住在 "beijing" 的人的資訊,建立了乙個帶有兩個列的名為 "persons_backup" 的表:

selectlastname,firstnameintopersons_backup

from personswherecity='beijing'

從乙個以上的表中選取資料也是可以做到的。

下面的例子會建立乙個名為 "persons_order_backup" 的新錶,其中包含了從 persons 和 orders 兩個表中取得的資訊:

selectpersons.lastname,orders.ordernointopersons_order_backupfrompersonsinner joinordersonpersons.id_p=orders.id_p
create table 語句用於建立資料庫中的表。

create table 表名稱

(列名稱1 資料型別,

列名稱2 資料型別,

列名稱3 資料型別,

....

)

資料型別(data_type)規定了列可容納何種資料型別。下面的**包含了sql中最常用的資料型別:

資料型別描述

僅容納整數。在括號內規定數字的最大位數。

容納帶有小數的數字。

"size" 規定數字的最大位數。"d" 規定小數點右側的最大位數。

char(size)

容納固定長度的字串(可容納字母、數字以及特殊字元)。

在括號中規定字串的長度。

varchar(size)

容納可變長度的字串(可容納字母、數字以及特殊的字元)。

在括號中規定字串的最大長度。

date(yyyymmdd)

容納日期。

本例演示如何建立名為 "person" 的表。

該錶包含 5 個列,列名分別是:"id_p"、"lastname"、"firstname"、"address" 以及 "city":

create table persons

(id_p int,

lastname varchar(255),

firstname varchar(255),

address varchar(255),

city varchar(255)

)

id_p 列的資料型別是 int,包含整數。其餘 4 列的資料型別是 varchar,最大長度為 255 個字元。

空的 "persons" 表類似這樣:

id_p

lastname

firstname

address

city

可使用 insert into 語句向空表寫入資料。

mysql高階教程

trace分析器執行計畫 mysql5.6提供了對sql的跟蹤trace,通過trace為了見能夠進一步了解為什麼優化器選擇a計畫,而不是選擇b 計畫,開啟trace,設定格式我json,並設定trace最大能夠使用的記憶體大小,避免解析過程中因為預設記憶體小二不能夠完整展示。set optimiz...

PyTorch PyTorch高階教程一

前面介紹了pytorch的一些基本用法,從這一節開始介紹pytorch在深度學習中的應用。在開始介紹之前,首先熟悉一下常用的概念和層。class torch.nn.module 舉例 import torch.nn as nn import torch.nn.functional as f clas...

MYSQL的高階高階教程 1 編碼設定

博主曰 一杯茶,一包煙,乙個小姐姐看一天。資料庫儲存中文亂碼是常見的小問題,對於新手或者沒有自己裝過資料庫的人來說可能沒有遇到過資料庫亂碼問題。還有的人只知其然,卻不知其所以然。今天我們就來徹底乾掉這個知識點。其實亂碼問題解決起來非常簡單 只需要配置檔案裡修改資料庫編碼就可以了,我們首先來學習一些基...