標籤:mysql create update select
mysql基本操作
顯示當前存在的資料庫:
show databases;
database
information_schema
mysql
performance_schema
建立資料庫
create database user;
注意:在Unix下,資料庫名稱是區分大小寫(不像SQL關鍵字),因此你必須總是以test訪問資料庫,而不能用Test、TEST或其它一些變數。對錶名也是這樣的。(在Windows下,該限制不適用,儘管你必須在一個給定的查詢中使用同樣的大小寫來引用資料庫和表。但是,由於多種原因,作為最好的慣例,一定要使用與資料庫建立時的同樣的大小寫。)
指定當前使用的資料庫
use ouyangjun;
查詢當前使用的資料庫
select database();
建立表
create table pet(
name varchar(20),
owner varchar(20),
species varchar(20),
sex char(1),
birth DATE,
death DATE
)
查看該資料庫的表
show tables;
查看某一張表的結構
desc pet;
查看詳細的建立表的sql語句
show create table pet;
將資料載入到表中
(1)通過load data
load data local infile ‘/home/shiyanlou/data.txt‘ into table pet;
(2)通過insert
insert into pet value(‘peffball‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
從表中檢索所有記錄的最簡單方式是使用SELECT語句:
mysql> SELECT * FROM pet;
有可能你想到Bowser的生日看起來不太對。經過查詢,你發現正確的出生年份是1989,而不是1979。
那麼現在至少有兩種修正方法:
編輯檔案“pet.txt”改正錯誤,然後使用DELETE和LOAD DATA清空並重新載入表:
mysql> DELETE FROM pet;
mysql> LOAD DATA LOCAL INFILE ‘pet.txt‘ INTO TABLE pet;
然而, 在這樣操作之前,需要重新輸入Puffball記錄。
用一個UPDATE語句就可以修正錯誤記錄:
mysql> UPDATE pet SET birth = ‘1989-08-31‘ WHERE name = ‘Bowser‘;
UPDATE只更改有問題的記錄,並且不需要重新載入資料庫表。
選擇特殊行
一般情況下你不想檢索整個表的內容,特別地當表變得很大時。相反,你通常對解決一個具體的問題更感興趣,在這種情況下在你需要添加一些限制條件:
可以從表中只選擇特定的行。
例如,如果你想要驗證你對Bowser的生日所做的更改是否正確或者生效,按下述方法選擇Bowser的記錄:
mysql> SELECT * FROM pet WHERE name = ‘Bowser‘;
輸出證實正確的年份記錄為1989,而不是1979。
字串比較時通常對大小寫不敏感,因此你可以將名字指定為"bowser"、"BOWSER"等,查詢結果相同。
你可以在任何列上指定條件,不只僅僅是name。例如,如果你想要知道哪個動物在1998以後出生的,嘗試篩選birth列:
mysql> SELECT * FROM pet WHERE birth > ‘1998-1-1‘;
還可以使用AND語句組合篩選條件,例如,找出雌性的狗:
mysql> SELECT * FROM pet WHERE species = ‘dog‘ AND sex = ‘f‘;
有AND邏輯操作符,那麼就有一個OR操作符:
mysql> SELECT * FROM pet WHERE species = ‘snake‘ OR species = ‘bird‘;
AND和OR可以混用,但AND比OR具有更高的優先順序。如果你使用兩個操作符,最好是使用圓括弧指明如何按條件分組:
mysql> SELECT * FROM pet WHERE (species = ‘cat‘ AND sex = ‘m‘)
-> OR (species = ‘dog‘ AND sex = ‘f‘);
選擇特殊列
如果你不想看到表中的所有行,就需要指明你感興趣的列名稱,並用逗號將列名分開。
例如,如果你想要知道你的動物什麼時候出生的,選擇name和birth列:
mysql> SELECT name, birth FROM pet;
找出擁有寵物的所有人,可以使用以下個查詢:
mysql> SELECT owner FROM pet;
請注意該查詢只是簡單地檢索每個記錄的owner列,但是他們有些名字出現多次。為了使輸出減到最少(避免重複),增加關鍵字DISTINCT檢索出每條唯一的輸出記錄:
mysql> SELECT DISTINCT owner FROM pet;
可以使用一個WHERE子句同時進行行選擇與列選擇。例如,要想查詢狗和貓的出生日期,使用以下查詢:
mysql> SELECT name, species, birth FROM pet
-> WHERE species = ‘dog‘ OR species = ‘cat‘;
行分類
你可能已經注意到前面的例子中行並沒有以特定的順序顯示。然而,當行按某種方式排序時,檢查查詢輸出的時候通常變得相對簡單一點。為了給結果排序,使用ORDER BY子句。 這裡是對動物生日按日期排序:
mysql> SELECT name, birth FROM pet ORDER BY birth;
由於字串類型的資料對大小寫並不敏感。這意味著,對於大小寫不同其他都一樣的列,排序後的結果都不會更改。這種情況下,可以使用BINARY強制執行區分大小寫排序功能,
如:ORDER BY BINARY col_name。
預設排序是升序,也就是最小的值排在第一。要想以降序排序,在你正在排序的列名旁邊增加DESC(降序 )關鍵字:
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
可以對多個列進行排序,並且可以按不同的方向對不同的列進行排序。例如,按升序對動物的種類進行排序,然後按降序根據生日對各動物種類進行排序(最年輕的動物在最前面),使用下列查詢:
mysql> SELECT name, species, birth FROM pet
-> ORDER BY species, birth DESC;
注意DESC關鍵字僅適用於在它前面的列名(birth);不影響pecies列的排序次序。
本文出自 “歐陽俊” 部落格,請務必保留此出處http://ouyangjun.blog.51cto.com/10284323/1700373
mysql基本操作