22-MYSQL數據庫-2

在外面把腳本導入進去。

                        

 

                在外面就可以顯示內部數據庫列表。

                        

 

                進入數據庫,查看hellodb 數據庫中的 列表。

                        

 

                顯示所有學生列表。

                        

 

                顯示所有課程列表。

                        

 

                顯示所有老師。

                        

 

                顯示學生列表的指定字段。

                        

 

                倒換學生列表的字段 進行顯示。

                        

 

                用別名替換英文名字。方便用戶閱讀。

                        

 

                顯示學生列表中大於30歲的 。

                        

 

                顯示學生列表中 年齡大於20 小於 40 的。

                        

                

                顯示學生列表中 name 字段爲 許仙的。

                        

 

                顯示學生列表中  name 字段 是 xu 開頭的。

                        

 

                顯示學生列表中  name 字段 包含 on的。

                       

 

                select 支持 加減乘除

                        

 

                顯示 學生表中 classid 爲空的。

                        

 

                顯示 學生表中 teacherid 爲非空的。

                        

 

                顯示 學生表中 classid 包含 1 2 6  的。

                        

 

                顯示 學生表中 classid 不包含 1 2 6  的。

                        

 

                顯示學生表年齡字段所有信息。

                        

 

                顯示學生表年齡字段非重複信息。

                        

 

                顯示學生表年齡字段所有信息。按正序排序。

                        

 

                顯示學生表年齡字段所有信息。按倒序排序。

                        

切換到db2 數據庫 顯示錶,  顯示錶 字段。

                        

 

                在表中插入數據,包括中國字。

                        

 

                查看是否成功

                        

 

                查看字符長度是2個的。查看字符長度是3個的。

                        

 

                查看字符長度是7個的。

                        

 

                查看字符是x開頭的。

                        

 

                用正則表達式,查找x開頭的。

                        

 

                查找結尾是n的。

                        

 

                查看學生表,name字段 正序排序顯示。

                        

 

                顯示學生表所有行。查看studi 字段,共有多少行。查看classid,一共23行,少兩行是因爲 表中有空值。

                        

 

                顯示學生表,年齡的求和。

                        

 

                顯示學生表。年齡的最大值。

                        

 

                顯示學生表,年齡最小值。和平均值。

                        

 

                顯示學生表,男生年齡平均值和女生年齡平均值。

                        

 

                顯示學生表,男生年齡最大值,女生年齡最大值。

                        

 

                顯示學生表,性別和選課分組下 年齡最大值。

                        

 

                顯示女生年齡最大值。

                        

 

                顯示 學生列表,年齡字段,倒序,取倒數三個。

                        

 

                顯示 學生列表,年齡字段,倒序,隔過2個,取3個。

                        

 

                把學生列表和 老師 列表組合起來,報錯提示,字段數量不符合。

                        

 

                選擇 幾個字段把學生表和老師表組合起來。

                        

                        

 

                把學生表 和 老師表 連接起來 顯示出來。

                        

 

                在select 中 嵌套 select 稱爲子查詢

                        顯示 學生表和老師表 年齡大於50歲的。

                        

 

                顯示學生表,年齡大於平均值的。

                        

 

                顯示學生表和老師表 集合 笛卡爾積。

                        

 

                把兩個表  學生表 和老師表 並排顯示出來。把學生表的 teacherid = 老師表的 tid。

                        

 

                同上,但只顯示我們想要看的就可以了。

                        

 

                此命令是,合併兩張表,學生表和老師表,所有數據都保留,沒有的就爲空值。

                        

 

                此命令是,合併兩張表,左邊的和中間保留。左外連接。

                        

此命令是,合併兩張表,右邊的和中間保留。右外連接。

                        

 

                只取無交集 的表。

                        

 

                此命令是三表合併。

                        

 

                新建視圖表。

                        

 

                查看錶。

                        

 

                查看新建視圖表,所有內容。

                        我們新建的視圖表是實體表有選擇的鏡像,我們對視圖表的任何修改都是對實體表修改。

                        

 

 

            用戶賬戶和權限控制

 

 

                切換到數據庫自己的數據庫

                        

 

                顯示數據庫用戶列表。

                        

 

                新建一個高騫用戶,只能用192.168.174.6登陸。密碼 centos

                        

 

                在centos 6 上安裝mysql

                        

 

                成功了,安裝了客戶端和服務器端。

                        

 

                創建用戶名密碼。

                        

 

                使用用戶名密碼登陸。

                        

 

                查看數據庫,發現只有兩個,權限有問題。

                        

 

                查看正在登陸的用戶,只有自己,權限有問題。

                        

 

                在服務器端 同樣命令,查看正在登陸的用戶。有兩個。

                        

 

                查看用戶列表,選擇三個字段。

                        

 

                使用update 修改密碼。但不生效。

                        

 

                沒生效。

                        

 

                清空內存,重新加載。

                        

 

                生效配置後成功了。

                        

 

                查看數據庫文件。包括配置文件和所有數據庫數據文件。

                        

 

                查看用戶賬戶表。

                        

 

                新建用戶gaoqian  只能用特定網段登陸。密碼是 centos 對任何數據庫的任何表做任何操作。

                        

 

                查看用戶是否創建成功了。

                        

 

                用客戶機登陸。成功了

                        

 

                查看數據庫。權限是最大。

                        

新建數據庫,並查看。沒問題。

                        

 

                新建一個 gaoqianqian 賬號,賦予查詢 hellodb 數據庫權限。在指定網段,密碼 centos

                        

 

                查看是否創建成功。

                        

 

                在客戶機上登陸。沒問題。

                        

 

                查看數據庫,權限已經不是最大。

                        

 

                切換到hellodb數據庫

                        

 

                更新數據庫文件,發現權限失敗。

                        

 

                我們賦予用戶賬戶 update權限。

                        

 

                再次執行命令還是不行。

                        

 

                我們刷新內存,重新加載。

                        

 

                再次執行。還是不行。

                        

 

                我們退出數據庫,再次進入,再次執行命令,成功了。

                        

 

                查看數據庫,已經修改。沒問題。

                        

    

                移除剛纔建立的 gaoqian 賬號對 數據庫的刪除權限,其它不變。

                        

 

                查看gaoqian 賬號的所有權限。

                        

 

                查看當前登錄的賬號。

                        

 

                查看當前 賬號的所有權限。

                        

 

                查看gaoqian賬號的 具體權限。

                        

 

                mysql也是 單進程,  多線程的 服務。

                        

 

                查看數據庫默認引擎。

                        

 

                刪除yum第20個安裝的 所有東西。

                        

 

                在chentos 6 上安裝老版本數據庫 和 客戶端。

                        

 

                安裝成功了。

                        

 

                啓動服務。第一次啓動。

                        

                        

                

                查看默認引擎 是老版本。

                        

我們查看數據庫真實文件,看引擎之間的區別。

                        如果是老版本的話那麼我們創建的數據庫文件都是空的 ibdata1 就會非常大。所有表數據都在一個文件中。非常不好。

                        

 

                如果是新版本的話,那麼我們創建的數據庫以及文件都會分開幾份存放,數據庫類型  真是數據等。

                        

 

                查看數據庫是否默認分表。

                        

 

                我們在老版本服務器上查看,默認是不分表的。

                        

 

                我們修改配置文件,使之分表。添加第二行。就可以了。

                        

 

                先重啓服務。沒問題。

                        

 

                再次查看是否分表。

                        

        

            但我們查看剛纔的文件夾發現數據依然沒有分表,那是因爲我們的設置僅針對之後的數據庫文件。之前的文件都保持不變。

                        

                    

                我們查看到已經分表,分數據啦。

                        

 

                數據庫臨時文件,關閉在重啓後,裏面數據就會丟失。

                        

 

                查看數據庫默認的引擎。或者說是默認建表的引擎。新版本。

                        

 

                查看數據庫默認的引擎。或者說是默認建表的引擎。老版本。

                        

 

                修改數據庫默認引擎,爲 InnoDB

                        

 

                重啓服務。

                        

 

                再次查看,已經修改成功了。

                        

 

            3查詢緩存優化

 

 

                查詢數據庫系統是否有緩存,以及緩存大小,如果沒啓用緩存,此處是空值。

                        

 

                我們把緩存設置爲1M

                        

 

                我們進入配置文件,把緩存設置爲10M

                        

重啓服務,無問題。

                        

 

                再次查看緩存。已經成功啦

                        

 

                我們查看數據庫緩存命中率等信息。

                        緩存了幾條信息是第四行,命中率是第三行。第一行,處於空閒中的塊數。最後一行是正在使用的總塊數。

                        

 

                現在我們查看學生表。

                        

 

                再次查看命中率,命中率爲0,但緩存了一條信息。因爲是第一次查看,所以命中率是0。

                        

 

                再次查看學生表。

                        

 

                再次查看命中率,已經命中了一次啦。

                        

 

                再次查看學生表。

                        

 

                已經命中了2次啦!

                        

 

                我們再次查看學生表,注意命令,selecT我們大寫了。命令不區分大小寫。

                        

 

                我們看到並沒有命中,明明是查詢一樣的表格,因爲查詢緩存是區分大小寫的。所以我們看到又緩存了一條信息。

                        

 

                我們同樣的大寫命令,再查詢一次。

                        

 

                我們再次查詢命中率。已經成功啦

                        

 

 

            4索引優化

 

 

                查看學生表一共有多少索引。

                        

 

                查看學生表。

                        

 

                創建一個以姓名爲字段的索引。

                        

    

                再次查看學生表的所有索引。一共2個了 第一個是主鍵,也是索引。

                        

 

                查看學生表,姓名爲 小喬的。

                        

 

                查看剛纔的命令是否用了索引。第一個ID:用了查詢語句,如果兩層 子查詢語句,就會有多個IP號。第二行:簡單查詢。

                        第三行:學生表。第五行:可能用到的索引。第六行:用到的索引。

                        

 

                查看是否用到了索引,用到了主鍵索引。

                        

 

                查看是否用到了索引。注意:命令是查詢姓名h開頭,後面無所謂的。  \G代表豎着顯示信息。

                        

 

                查看是否用到了索引。注意:命令是查詢姓名u結尾,前面無所謂。這樣就沒用到索引。因爲前面不關心,代表全表掃描,索引毫無意義。

                        

 

                在學生表,以姓名和年齡兩個字段新建索引。

                        

 

                查看索引。多了兩個索引,名字都一樣,其實是一個索引。

                        

 

                查看學生表,姓名等於虛竹的 是否用到了索引。此處可能用到的索引有兩個。真正用到的索引只有一個。

                        

 

                查看學生表中年齡等於 19 歲的人  是否用到了索引。沒有。

                        

 

                我們建立學生表,年齡和姓名字段的 新索引。注意:年齡在前,姓名在後。

                        

 

                再次查看索引。多了兩個索引。

                        

 

                查看學生表中年齡等於 19 歲的人  是否用到了索引。用到了新建的索引。

                        

 

                刪除一個索引。

                        注意:drop 命令非常危險,不會記錄日誌,可以直接刪除數據庫和表,或者單條記錄。

                        

 

                再次查看學生表中年齡等於 19 歲的人 ,因爲我們刪除了索引,所以沒有索引可以用了。

                        

 

                再次查看索引,只有4個索引了。

                        

 

                查看學生表中,姓名以 X 開頭的人。是否用到了索引,可能用到兩個索引,但真實沒用到索引。因爲結果太多了。

                        如果看到可能用到索引,表示數據庫會計算用哪種索引最合適,或者不用最合適。

                        

 

                查看學生表中,姓名以 X 開頭的人。

                        

 

                查看學生表中,姓名以 L 開頭的人並且年齡大於20的人。

                        用到了索引,並且又查詢了具體的人。

                        

 

                啓動事務功能。,查看事務表。

                        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章