筆記-mysql 基礎

1、查看數據庫列表

SHOW DATABASES;

2、查看數據庫

SHOW TABLES;

3、查看錶

USE mydatabase;

//下面這些語句作用是相同的
DESCRIBE students;
DESC students;
EXPLAIN students;
SHOW COLUMNS FROM students;
SHOW FIELDS FROM students;

4、導入數據

可以用SOURCE命令讀入文件

source insert.sql

如果文件記錄項是以純數據形式來存放,可以利用LOAD DATA 或 mysqlimport 

LOAD DATA LOCAL INFILE 'students.txt' INTO TABLE students;

5、對輸出進行求值和命名

將字段合併

SELECT CONCAT(first_name, ' ', last_name) FROM students;
上句可將查詢結果first_name 和 last_name 合併,中間用空格連接。

6、與日期有關

mysql中日期格式 爲2011-11-25,可用YEAR()、MONTH()、DAYOFMONTH()分別分離出來

例如,查詢生日在3月的學生:

SELECT last_name FROM students WHERE MONTH(birth) = 3;


如果你想知道某兩個日期之間的時間間隔,拿他們做減法即可。例如想知道哪位總統壽命最長:

SELECT last_name TIMESTAMPDIFF(YEAR, birth, death) AS age FROM president WHERE death IS NOT NULL ORDER BY age DESC LIMIT 5;


計算日期的另一種方法是TO_DAYS,他將日期都轉化爲天數。這個函數可以計算出距離某個特定日期時間還有多長。

例如需要計算60天內需要續費的會員:用會員到期時間減去今天的日期,如果小於60則表示該會員近期內需要續費:

SELECT last_name FROM member WHERE (TO_DAYS(expiration) - TO_DAYS(CURDATE())) < 60;


使用TIMESTAMPDIFF()函數也可以完成:

SELECT last_name FROM member WHERE TIMESTAMPDIFF(DAY, CURDATE(), expiration) < 60;

DATE_ADD() 或 DATE_SUB() 函數輸入的參數是一個日期值和一個時間間隔,返回結果則是一個新日期,還是上例中的會員費,可以這樣:

SELECT last_name FROM member WHERE expiration < DATE_ADD(CURDATE(), INTERVAL 60 DAY);

7、如何設置和使用變量

mysql允許使用自定義變量。我們可以使用查詢結果來設置變量,這使我們能夠方便把一些值保存起來以供今後查詢。例如想知道生日在david之前的人。可以這樣:

SELECT @birth := birth FROM students WHERE last_name = 'david';
SELECT last_name FROM students WHERE birth<@birth ORDER BY birth;
變量命名語法  @變量名  ,前面的問題可以通過聯接或子查詢來解決。而有時候使用變量可能更容易。

8、如何生成統計

MySql 最有用的功能之一就是生成多種統計彙總信息

統計有多少會員:

SELECT COUNT(*) FROM member;

特別需要注意的是,COUNT(*)是統計所有選中數據行的總數,而COUNT(列名)則統計所有選中非NULL值的個數。

如果要統計有多少個州曾經出過總統:

SELECT COUNT(DISTINCT state)  FROM president;
使用DISTINCT去除重複項

除此之外,可用GROUP BY 子句統計,如統計每個州出過多少總統:

SELECT state, COUNT(*) FROM president GROUP BY state ;


但你準備使用某個彙總列計算結果盡心排序時,不能直接在ORDER BY 子句中引用函數,而應該先給這列取別名:

SELECT state, COUNT(*) as count  FROM president GROUP BY state ORDER BY count DESC;
除此之外,函數MIN()、MAX()、SUM()、AVG()能夠得出某個數據列最小值、最大值、求和、求平均值。

9、複製表

MySql提供兩條語句來幫助我們從其他數據表或是從查詢結果創建新的數據表。

CREATE TABLE......LIKE
上面語句將創建一個新的數據表作爲原始數據表的一份空白副本。它將把原始數據表的結構完全複製過來,不僅個數據列所有屬性都會保留,連索引結構都會複製,不過,新的數據表內容是一片空白。

CREATE TABLE......SELECT
上面語句可以從SELECT結果集創建新的數據表,在默認情況下,這條語句不會複製數據列屬性。

如果你需要複製一個表的結構以及數據,可以先創建一個空白副本,然後再填充數據

CREATE TABLE......LIKE  
INSERT INTO ......SELECT














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