使用mysql建立和使用數據庫

學習使用如下操做: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;

未完待續……(練習簡直太長了呀~~)

 

參考:

  1. http://dev.mysql.com/doc/refman/5.7/en/database-use.html
相關文章
相關標籤/搜索