數據庫學習一:創建數據庫 、創建表、向表中插入數據與檢索數據

1.顯示數據庫信息:通過show database命令。


2.爲了獲得一個數據庫內的表的列表,使用show tables;

3.創建數據庫 ,使用create database 數據庫名;


再使用show命令可以看出系統中多了一個自己創建的數據庫名。


4.創建表。數據庫是表的容器,表,必須屬於某個數據庫。因而在創建表之前要指定數據庫

1.可以通過語法指明表所屬的數據庫。庫.表語法。如果任何的標識符出現了特殊字符,需要使用反引號包裹,

不同的標識符需要用不同的反引號包裹。

2.可以指定當前的默認數據庫。use db_name;只是設定了默認數據庫,不會影響其它數據庫。

這裏表示使用了當前默認數據庫sample_db;

接下來可以創建表了。創建表時要先分析需要保存的實體數據擁有哪些屬性,這些屬性應如何保存。

列定義: 列名   列的數據類型   [列的屬性(約束)]

創建表的SQL命令:create table 表名(列結構) [表選項];

主鍵:一列(或一組列),其值能夠唯一區分表中每個行。沒有主鍵,更新或刪除表中特定的行很困難。因而大多數數據庫設計人員都應保證創建的每個表都具有一個主鍵,以便於以後的數據操縱和管理。


由於上面採用use sample_db; 命令,故在創建表時會默認放在sample_db數據庫中。接下來可以在數據庫中查詢數據庫中所包含的表,可以看到表vendors已經被創建。


外鍵:外鍵爲某個表中的一列,它包含另一個表的主鍵值,定義了兩個表之間的關係。

例子分析:假如有一個包含產品目錄的數據庫表,其中每個類別的物品佔一行。對於每種物品要存儲的信息包括產品描述和價格,以及生產該產品的供應商信息。假設有由同一供應商生產的多種物品,那麼應該在何處存儲供應商信息(如供應商名、地址、聯繫方法呢)?

解決:將數據和產品信息分開存儲。可以建立兩個表,一個表存儲供應商信息,另一個表存儲產品信息。

vendors表包含所有供應商信息,每個供應商佔一行,每個供應商具有唯一的標識(主鍵),可以是供應商ID。

products表只存儲產品信息,它除了供應商ID(vendors表的主鍵)外不存儲其他供應商信息。

vendors表的主鍵叫做products表的外鍵,這個外鍵將vendors表和products表關聯,利用供應商ID能從vendors表中找出相應供應商的詳細信息。

創建products表和外鍵的代碼如下:


創建外鍵的命令: FOREIGN KEY (字段名) REFERENCES 關聯表名(關聯字段名)

這樣利用供應商ID能從vendors表中找出相應供應商的詳細信息。

此時可以看到數據庫中增加了一個名爲products的表。


5.數據操作。包括創建數據(插入數據)、獲得數據(查詢、檢索數據)、刪除數據、修改(更新)數據

①創建數據。命令:insert into 表名(字段列表) values (值列表); 

按照字段列表處的字段名先後順序去對應添加值。不需要與創建表時的字段列表順序一致,這樣插入數據 更靈活,也方便修改。

如果在插入時要爲所有的字段設置值,那麼可以省略字段列表,但是要求值的順序與創建表的時候字段的順序一樣,不靈活,一般採用上面那種寫法。

          

以上語句命令向vendors表和products表中添加了數據。

② 獲得數據。select 字段列表 from 表名 查詢條件;

除了指定所需的列外,select語句還可以檢索所有的列,通過*通配符來完成。

可以看到在創建數據之後,表中已經添加了我們創建的相應數據項。

從這條語句的輸出中可以看出,檢索出的數據並不是並不是以純粹的隨機順序顯示的。如果沒有對數據排序,數據一般以它在底層表中出現的順序顯示。可以是數據最初添加到表中的順序。

如果要對數據進行排序,可以使用命令:order by 字段名;

排序前:檢索數據結果


排序後:檢索數據結果,order by默認以升序排序(字符類型:從A到Z。數值類型:從小到大)。

                 

若想按照降序排序可以採用DESC關鍵字。


若想在多個列上排序。


若想對多格列進行降序排序,需要對每個列指定DESC關鍵字。

若想對多個列排序,按照某一字段名降序,再按照某一字段名升序排列,可以這麼寫。

以降序排序產品,然後再對產品名排序:


限制結果:LIMIT命令。select 語句返回所有匹配的行,它們可能是指定表中的每個行。爲了返回第一行或前幾行,可使用LIMIT語句。

LIMIT 4指示MYSQL返回不多於4行。


爲得到從第幾行到第幾行,需要指定要檢索的開始行和行數。LIMIT 4,3指示MYSQL返回從行4開始的3行。

第一個數爲開始位置,第二個數是要檢索的行數。注意:檢索出來的第一行是行0而不是行1.


可以使用ORDER BY 和 LIMIT 的組合,找出一個列中的最高值或最低值。

           

③ 刪除數據。 delete from 表名 條件;

④更新數據。update 表名  set  字段名;




可以看到數據已經更新了

             

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