1. 程式人生 > >python 3.x 學習筆記18 (mysql 未完 )

python 3.x 學習筆記18 (mysql 未完 )

offset targe name屬性 表結構 不用 創建用戶 ant 書籍 主鍵

1.數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫

2.RDBMS即關系數據庫管理系統(Relational Database Management System)的特點:
  1).數據以表格的形式出現
  2).每行為各種記錄名稱
  3).每列為記錄名稱所對應的數據域
  4).許多的行和列組成一張表單
  5).若幹的表單組成database


3.RDBMS 術語
數據庫:    數據庫是一些關聯表的集合。.
數據表:    表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
列:    一列(數據元素) 包含了相同的數據, 例如郵政編碼的數據。
行:

   一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。

冗余:    存儲兩倍數據,冗余可以使系統速度更快。(表的規範化程度越高,表與表之間的關系就越多;查詢時可能經常需要在多個表之間進行連接查詢;而進行連接操作會降低查詢速度。例如,學生的信息存儲在student表中,院系信息存儲在department表中。通過student表中的dept_id字段與department表建立關聯關系。如果要查詢一個學生所在系的名稱,必須從student表中查找學生所在院系的編號(dept_id),然後根據這個編號去department查找系的名稱。如果經常需要進行這個操作時,連接查詢會浪費很多的時間。因此可以在student表中增加一個冗余字段dept_name,該字段用來存儲學生所在院系的名稱。這樣就不用每次都進行連接操作了。)

主鍵:    主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
外鍵:    外鍵用於關聯兩個表。
復合鍵:   復合鍵(組合鍵)將多個列作為一個索引鍵,一般用於復合索引。
索引:     使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
參照完整性:   參照的完整性要求關系中不允許引用不存在的實體。與實體完整性是關系模型必須滿足的完整性約束條件,目的是保證數據的一致性。


4.mysql的使用
1)show databases;                         #顯示數據庫

2)use <數據庫名>;                        # 連接數據庫

3)show tables;                         #顯示表

4)desc <表名>;                         #查看表結構 ,也可以用show columns from <表名>;

5)selsct * from <表名>;                        #查看表數據

6)selsct * from <表名>\G                       #查看表數據(顯示內容清晰)不用加 ;

7)grant all on *.* to ‘username‘@‘localhost‘ identified by ‘passwd‘;    # 創建用戶以及設置權限 all是賦予所有權限

8)create database <數據庫名>;                   #創建數據庫

9)create table student(
    id int auto_increment,
    name char(32) not null,
    age int not null,
    register_date date not null,
    primary key(id));
#創建一個簡單的表

10)show create database <數據庫名>;                      #查看數據庫的character

11)create database <數據庫名> charset utf8;                    #創建數據庫並設置character為utf-8

12)drop table <表名>;                              #刪除表

13)drop database <數據庫名>;                          #刪除數據庫

14)select * from <表名> limit 3 offset 2;                       #從第三個開始查詢限制(limit)3個

15)select * from <表名> where register_date like ‘2018-04%‘;            #查找register_date為2018-04的所有數據

16)update <表名> set name=‘海上‘,age=34 where id=5;               #修改id為5的name和age為‘海上‘、‘34‘

17)delete from <表名> where id>4;                         #刪除id>4的所有數據

18)select * from <表名> order by id asc/desc;                   #查詢的表是id的升序(asc)/倒序(desc)

19)select name ,count(*) as stu_num from <表名> group by name;           #選擇name屬性並統計整個表格(count(*)) 按name進行分組統計數量一列命名為stu_num

20)select name ,sum(age) from <表名> group by name;               #統計相同名字的年齡總和並按照name分組

21)select coalesce(name,‘總年齡‘) ,sum(age) from <表名> group by name with rollup;#統計相同名字的年齡總和並按照name分組,在最後一行顯示所有總數,coalesce作用是命名

22)alter table <表名> add sex int(11) not null;                     #添加phone字段並且不能為空

23)alter table <表名> drop sex;                           #從student表刪除sex字段

24)alter table <表名> modify sex <字段類型> not null;                 #修改字段sex不能為空,在修改前sex字段必須不能是空的

25)alter table <表名> change sex gender char(32) not null default ‘X‘;          #更改字段sex為gender,數據類型為char(32),且不能為空,默認數值為‘X‘


mysql命令大全
http://www.jb51.net/article/74564.htm

python 3.x 學習筆記18 (mysql 未完 )