Python全棧 MySQL 資料庫 (SQL查詢、備份、恢複、授權)

來源:互聯網
上載者:User

標籤:uniq   date   col   注意   樣本   sel   add   許可權   分享   

ParisGabriel           每天堅持手寫  一天一篇  決定堅持幾年 為了夢想為了信仰   開局一張圖 今天接著昨天的說 索引有4種:     普通 索引 :index      唯一索引:unique     主鍵索引:primary key     外鍵索引:foreign key索引查詢命令:      show index from 表名\G;         Non_Unique:1   :index         Non_Unique:0  :unique  外鍵索引(foreign key):    定義:讓當前欄位的值在另一個表的範圍內選擇    文法:       foreign key(參考欄位名)       references 主表(被參考欄位名)       on delete 級聯動作       on update 級聯動作    使用規則:       主表、從表欄位資料類型要一致       主表被參考欄位一般是:主鍵    刪除外鍵:      alter table 表名 drop foreign key 外鍵名;      外鍵名查詢:show create table 表名;    級聯動作:      cascade         級聯刪除、更新(只限於參考欄位)      restrict(預設)        從表有相關記錄,不允許主表操作      set NULL        主表刪除、更新,從表關聯記錄欄位值為NULL    已有表添加外鍵:       alter table 表名 add       foreign key(參考欄位)reference主表(被參考欄位)       on delete ...       on update ...表的複製  複製表:    create table 表名 select... from where 表名;  表結構:    create table 表名 select * from 表名 where false;  注意:    複製表的時候不會把原表的 鍵(key)屬性複製過來  SQL 查詢(進階) 巢狀查詢(子查詢):       定義:把內層查詢結果作為外層的查詢條件   文法格式:     select ...from 表名 where 條件(select...);多表查詢:  兩種方式  1.      select 欄位名列表 from 表名列表;(笛卡爾積)      select * from t1,t2      select t1.name,t2.name from t1,t2;  2.     select t1.name,t2.name from t1,t2      where 條件連結查詢:   1.內連結     select 欄位名 from 表1      inner join 表2 on 條件     inner join 表3 on 條件...;   2.外連結      1.左連結        以左表為主顯示查詢結果 select 欄位名 from 表1  left join 表2 on 條件 left join 表3 on 條件...;      2.右連結        以右表為主顯示查詢結果select 欄位名 from 表1 right join 表2 on 條件right join 表3 on 條件...;資料備份:    mysqldump  在Linux終端操作    完全備份:       mysqldump -u使用者 -p源庫名 > ~/xxx.sql       --all-databases  備份所有庫       庫名             備份單個庫       -B 庫1 庫2..     備份多個庫       庫名 表1 表2...  備份指定庫指定表資料恢複:    恢複單個庫          mysql -uroot -p < 目標庫名 xxx.sql    從所有庫備份中恢複某一個庫(-one-database)          mysql -uroot -p --one-database 目標庫名 < xxx.sql     注意:       1.恢複庫時如果恢複到原庫會將表中的資料覆蓋,新增表不會刪除       2.資料恢複時如果恢複的庫不存在,則必須先建立空庫MySQL的賬戶管理:      1.開啟mysql的遠端連線        sudo -i cd /etc/mysql/mysql.conf.d/ subl mysql.cnf        #bind-address = 127.0.0.1  注釋掉        /etc/init.d/mysql restart     2.添加授權使用者        用root使用者登入mysql    mysql -uroot -p123456        授權:  grant 授權列表 on 庫.表 to “使用者名稱“@”%”  identified by “密碼” with grant option         許可權列表:     all privileges、select、insert     庫.表: *.*  所有庫所有表樣本:    1、添加授權使用者tiger,密碼123,對所有庫的所有表有所有許可權      grant all privileges on *.* to "tiger"@"%" identified by "123" with grant option;

 

綜合性練習:

 

綜述:兩張表,一張顧客資訊表customers,一張訂單表orders
1、建立一張顧客資訊表customers,欄位要求如下:
c_id 類型為整型,設定為主鍵,並設定為自增長屬性
c_name 字元類型,變長,寬度為20
c_age 微小整型,取值範圍為0~255(無符號)
c_sex 枚舉類型,要求只能在(‘M‘,‘F‘)中選擇一個值
c_city 字元類型,變長,寬度為20
c_salary 浮點類型,要求整數部分最大為10位,小數部分為2位

在表中任意插入3條記錄,c_name為"Zhangsan","Lisi","Wangwu", c_city盡量寫"Beijing","Shanghai" ......

insert into customers values
(1,"Zhangsan",25,"M","Beijing",8000),
(2,"Lisi",30,"F","Shanghai",10000),
(3,"Wangwu",27,"M","Shenzhen",3000);

2、建立一張訂單表orders,欄位要求如下:
o_id 整型
o_name 字元類型,變長,寬度為30
o_price 浮點類型,整數最大為10位,小數部分為2位
設定此表中的o_id欄位為customers表中c_id欄位的外鍵,更新刪除同步

在表中任意插入5條記錄(注意外鍵限制)
o_name分別為"iphone","ipad","iwatch","mate9","r11",其他資訊自己定
insert into orders values
(1,"iphone",5288),
(1,"ipad",3299),
(3,"mate9",3688),
(2,"iwatch",2222),
(2,"r11",4400);

3、返回customers表中,工資大於4000元,或者年齡小於29歲,滿足這樣條件的前2條記錄

4、把customers表中,年齡大於等於25歲,並且地址是北京或者上海,這樣的人的工資上調15%

5、把customers表中,城市為北京的顧客,按照工資降序排列,並且只返回結果中的第一條記錄

6、選擇工資c_salary最少的顧客的資訊

7、找到工資大於5000的顧客都買過哪些產品的記錄明細

8、刪除外鍵限制

9、刪除customers主鍵限制
1、刪除自增長屬性
2、刪除主鍵限制

 

Python全棧 MySQL 資料庫 (SQL查詢、備份、恢複、授權)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.