學習使用如下操做:html
查看當前服務器中的數據庫:mysql
SHOW DATABASES;
使用數據庫(USE和quit同樣能夠不用在語句末尾加分號):sql
USE world
給帳號分配使用數據庫的權限(這句我不是很懂):數據庫
GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
your_mysql_name(分配給你的MySQL用戶名)、your_client_host(所鏈接的服務器所在的主機)windows
建立數據庫:服務器
CREATE DATABASE menagerie;
在Unix系統中,數據庫對除了關鍵字外的其餘值大小寫敏感,因此menagerie不等於Menagerie或MENAGERIE,而在windows系統中,則沒有大小寫的限制。爲了適應不一樣環境下的數據庫,咱們應保持大小寫一致,以避免出錯。函數
menagerie數據庫建立成功:學習
使用數據庫:ui
USE menagerie
登錄時直接鏈接相應的數據庫:code
mysql -h host -u user -p menagerie
顯示當前鏈接的數據庫:
SELECT DATABASE();
顯示當前數據庫中的表:
SHOW TABLES;
確認你要建立的表所須要存儲的信息內容,儘可能存儲一些固定不常變更的內容,好比咱們能夠用出生日期代替年齡,這樣沒必要常常更新數據庫,mysql數據庫同時還提供了一些函數以供計算。
建立表:
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
語句太長也可換行。
查看建立的表:
DESCRIBE pet;
咱們建立的表爲空表,插入信息最快的方法是導入數據。
menagerie.txt文件中的數據,列之間用tab鍵分隔,若是數據爲\N表明數據庫中的null:
Whistler Gwen bird \N 1997-12-09 \N
將txt文件的內容導入數據庫:
LOAD DATA LOCAL INFILE 'D:/menagerie.txt' INTO TABLE pet;
將txt文件的內容批量導入數據庫:
LOAD DATA LOCAL INFILE 'D:/menagerie.txt' INTO TABLE pet LINES TERMINATED BY '\r\n';
使用sql語句插入數據:
INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
查詢數據庫:
SELECT what_to_select FROM which_table WHERE conditions_to_satisfy;
what_to_select(要查詢的內容)、which_table(查詢的表)、conditions_to_satisfy(查詢的條件)
查詢表中全部數據:
SELECT * FROM pet;
修改數據:
UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';
刪除整個表中的數據:
DELETE FROM pet;
誤刪後若是有txt備份可從新導入數據進行恢復。
得到特定的數據:
SELECT * FROM pet WHERE name = 'Bowser';
SELECT * FROM pet WHERE birth >= '1998-1-1';
SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm') OR (species = 'dog' AND sex = 'f');
查詢條件能夠用AND或者OR鏈接,AND的優先級高於OR,但將一組查詢條件用括號包裹起來仍然是一個好習慣。
查詢特定的列:
SELECT name, birth FROM pet;
查詢不重複的列,使用關鍵字DISTINCT :
SELECT owner FROM pet;
SELECT DISTINCT owner FROM pet;
將列和行查詢條件組合起來進行查詢:
SELECT name, species, birth FROM pet WHERE species = 'dog' OR species = 'cat';
根據某列的值對輸出的行數據排序:
SELECT name, birth FROM pet ORDER BY birth;
根據某列的值對輸出的行數據進行降序排列:
SELECT name, birth FROM pet ORDER BY birth DESC;
根據2列的值進行排序:
SELECT name, species, birth FROM pet ORDER BY species, birth DESC;
根據當前時間和出生日期計算年齡,並將表輸出在屏幕上:
SELECT name, birth, CURDATE(), TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age FROM pet;
按照年齡順序排列:
SELECT name, birth, CURDATE(), TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age FROM pet ORDER BY age;
排除出生日期爲空的並排序:
SELECT name, birth, CURDATE(), TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age FROM pet WHERE birth IS NOT NULL ORDER BY age;
MONTH()計算出月份:
SELECT name, birth, MONTH(birth) FROM pet;
根據計算出的月份進行篩選:
SELECT name, birth FROM pet WHERE MONTH(birth) = 5;
未完待續……(練習簡直太長了呀~~)
參考: