- 從命令行中連接mysql服務(wù)器的簡單實例
[root@host]# mysql -u root -p
Enter password:******
- 創(chuàng)建和刪除數(shù)據(jù)庫
# 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 數(shù)據(jù)庫名;
DROP DATABASE 數(shù)據(jù)庫名;
- 選擇數(shù)據(jù)庫
USE 數(shù)據(jù)庫名;
- 數(shù)據(jù)類型
- 數(shù)據(jù)類型
創(chuàng)建MySQL數(shù)據(jù)表需要以下信息:
- 表名
- 表字段名
- 定義每個表字段
CREATE TABLE table_name (column_name column_type);
# 刪除MySQL數(shù)據(jù)表
DROP TABLE table_name ;
- 插入數(shù)據(jù)
MySQL 表中使用 INSERT INTO SQL語句來插入數(shù)據(jù)。
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
- 查詢數(shù)據(jù)
MySQL 數(shù)據(jù)庫使用SQL SELECT語句來查詢數(shù)據(jù)息楔。
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
- 查詢語句中你可以使用一個或者多個表意敛,表之間使用逗號(,)分割梆掸,并使用WHERE語句來設(shè)定查詢條件氛魁。
- SELECT 命令可以讀取一條或者多條記錄。
- 可以使用星號(*)來代替其他字段恩闻,SELECT語句會返回表的所有字段數(shù)據(jù)
- 可以使用 WHERE 語句來包含任何條件右蒲。
- 可以使用 LIMIT 屬性來設(shè)定返回的記錄數(shù)。
- 可以通過OFFSET指定SELECT語句開始查詢的數(shù)據(jù)偏移量着裹,默認情況下偏移量為0
- 有條件地查詢數(shù)據(jù)
從 MySQL 表中使用 SQL SELECT 語句來讀取數(shù)據(jù)领猾,如需有條件地從表中選取數(shù)據(jù),可將 WHERE 子句添加到 SELECT 語句中骇扇。
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
- 查詢語句中你可以使用一個或者多個表摔竿,表之間使用逗號, 分割,并使用WHERE語句來設(shè)定查詢條件
- 可以在 WHERE 子句中指定任何條件少孝。
- 可以使用 AND 或者 OR 指定一個或多個條件继低。
- WHERE 子句也可以運用于 SQL 的 DELETE 或者 UPDATE 命令。
- WHERE 子句類似于程序語言中的 if 條件稍走,根據(jù) MySQL 表中的字段值來讀取指定的數(shù)據(jù)
現(xiàn)在有張表如下所示:
使用SELECT * from tencent WHERE rate > 8;
得到所有評分大于8的電影:
- 更新數(shù)據(jù)
如果需要修改或更新 MySQL 中的數(shù)據(jù)袁翁,可以使用 SQL UPDATE 命令來操作
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
- 可以同時更新一個或多個字段
- 可以在 WHERE 子句中指定任何條件
- 可以在一個單獨表中同時更新數(shù)據(jù)
使用UPDATE tencent SET rate= 10 WHERE movie_id = 3;
將movie_id編號為3的那一行數(shù)據(jù)的rate設(shè)置為10:
- 刪除數(shù)據(jù)
可以使用 SQL 的 DELETE FROM 命令來刪除 MySQL 數(shù)據(jù)表中的記錄
DELETE FROM table_name [WHERE Clause]
- 如果沒有指定 WHERE 子句冷溃,MySQL 表中的所有記錄將被刪除。
- 可以在 WHERE 子句中指定任何條件
- 可以在單個表中一次性刪除記錄
可以使用DELETE FROM tencent WHERE movie_id = 3;
來刪除movie_id為3的那行數(shù)據(jù)
- 選擇包含某一條件的數(shù)據(jù)
例如想要選擇含有 "COM" 字符的所有數(shù)據(jù)梦裂,這時就需要在 WHERE 子句中使用 SQL LIKE 子句似枕。SQL LIKE 子句中使用百分號 %字符來表示任意字符,如果沒有使用百分號 %, LIKE 子句與等號 = 的效果是一樣的
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
- 可以在 WHERE 子句中指定任何條件年柠。
- 可以在 WHERE 子句中使用LIKE子句凿歼。
- 可以使用LIKE子句代替等號 =。
- LIKE 通常與 % 一同使用冗恨,類似于一個元字符的搜索答憔。
- 可以使用 AND 或者 OR 指定一個或多個條件。
- 可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句來指定條件
- 排序
如果我們需要對讀取的數(shù)據(jù)進行排序掀抹,我們就可以使用 MySQL 的 ORDER BY 子句來設(shè)定想按哪個字段哪種方式來進行排序虐拓,再返回搜索結(jié)果
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
- 可以使用任何字段來作為排序的條件,從而返回排序后的查詢結(jié)果傲武。
- 可以設(shè)定多個字段來排序蓉驹。
- 可以使用 ASC 或 DESC 關(guān)鍵字來設(shè)置查詢結(jié)果是按升序或降序排列。 默認情況下揪利,它是按升序排列态兴。
- 可以添加 WHERE...LIKE 子句來設(shè)置條件
- 取并
MySQL UNION 操作符用于連接兩個以上的 SELECT 語句的結(jié)果組合到一個結(jié)果集合中,多個 SELECT 語句會刪除重復(fù)的數(shù)據(jù)
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
expression1, expression2, ... expression_n: 要檢索的列疟位。
tables: 要檢索的數(shù)據(jù)表瞻润。
WHERE conditions: 可選, 檢索條件甜刻。
DISTINCT: 可選绍撞,刪除結(jié)果集中重復(fù)的數(shù)據(jù)。默認情況下 UNION 操作符已經(jīng)刪除了重復(fù)數(shù)據(jù)得院,所以 DISTINCT 修飾符對結(jié)果沒啥影響傻铣。
ALL: 可選,返回所有結(jié)果集尿招,包含重復(fù)數(shù)據(jù)
- 分組處理
GROUP BY 語句根據(jù)一個或多個列對結(jié)果集進行分組矾柜,在分組的列上可以使用 COUNT, SUM, AVG等函數(shù)
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
- NULL 值處理
已經(jīng)知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句來讀取數(shù)據(jù)表中的數(shù)據(jù),但是當(dāng)提供的查詢條件字段為 NULL 時阱驾,該命令可能就無法正常工作就谜。為了處理這種情況,MySQL提供了三大運算符:
- IS NULL: 當(dāng)列的值是 NULL,此運算符返回 true
- IS NOT NULL: 當(dāng)列的值不為 NULL, 運算符返回 true
- <=>: 比較操作符(不同于=運算符)里覆,當(dāng)比較的的兩個值為 NULL 時返回 true
關(guān)于 NULL 的條件比較運算是比較特殊的丧荐,不能使用 = NULL 或 != NULL 在列中查找 NULL 值。在 MySQL 中喧枷,NULL 值與任何其它值的比較(即使是 NULL)永遠返回 false虹统,即 NULL = NULL 返回false 弓坞。
MySQL 中處理 NULL 使用 IS NULL 和 IS NOT NULL 運算符:
嗯,全返回车荔,沒毛病渡冻。
- 其他操作備注:
# 查看數(shù)據(jù)存放位置
show variables like '%datadir%';