恢復內容開始 [TOC] MySQL相關知識 Mysql鏈接 mysql u用戶名 p密碼 創建資料庫 create databse 資料庫名; 刪除資料庫 drop database 資料庫名; 選擇資料庫 use 資料庫名 數據類型 1. 數值型 整型 INTEGER、SMALLINT、NUME ...
------------恢復內容開始------------
目錄
MySQL相關知識
Mysql鏈接
mysql -u用戶名 -p密碼
創建資料庫
create databse 資料庫名;
刪除資料庫
drop database 資料庫名;
選擇資料庫
use 資料庫名
數據類型
- 數值型
- 整型
INTEGER、SMALLINT、NUMERIC - 浮點類型
FLOAT、DOUBLE
- 字元串
CHAR 定長格式 但是如果超過定長範圍 後面會有空格將其補充
VARCHAR 可變長格式
TEXT - 時間
DATE YYYY-MM-DD 日期值
TIME HH:MM:SS 世間之
DATETIME YYYY—MM-DD HH:MM:SS
數據表相關
創建數據表
創建數據表需要的信息
- 表名
- 欄位表名
- 定義每個表欄位
語法
CREATE TABLE table_name(
column_name column_type,
column_name column_type
);
欄位約束條件
NOT NULL 欄位不可為NULL
AUTO_INCREMENT 列的數值每次加1 一般用於主鍵
PRIMARY_KEY 定義主鍵
RNGINE 設置存儲引擎
CHARSET 設置編碼
刪除數據表
DROP TABLE 數據表名稱;
查詢數據表結構
DESC tablename ;
修改表的結構
增加表欄位
ALTER TABLE tablename ADD 列名 類型(長度) 約束;
例如:
ALTER TABLE category ADD `NAME` VARCHAR(20);
- 關鍵字要用
修改列的長度及約束
ALTER TABLE tablename MODIFY 列名 類型(長度)約束;
例如:
AlTER TABLE tablename MODIFY `NAME` VARCHAR(50) NOT NULL:
修改表刪除列
ALTER TABLE tablename drop 列名;
例如:
ALTER TABLE tablename DROP `NAME`;
修改表名
RENAME TABLE 舊表名 to 新表名;
修改表的字元集
ALTER TABLE 表名 character set 編碼表;
插入數據
INSERT INTO table_name(filed1,filed2,filedN) VALUES(value1,value2,valueN);
查詢數據
SELECT column_name,column_name FROM table_name WHERE Clause
1.WHERE子句的實行
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
- where語句類似於程式語言中的if語句
- where可以有多個條件 用AND 或者 OR 連接
2.LIKE語句的使用
配合SELECT實現模糊查詢
SELECT filed1,filed2,filed3 FROM table_name WHERE filed1="svalue" AND filed2 LIKE '條件';
- 舉例
'%a' //以a結尾的數據
'a%' //以a開頭的數據
'%a%' //含有a的數據
'a' //三位且中間字母是a的
'a' //兩位且結尾字母是a的
'a' //兩位且開頭字母是a的
查詢以 java 欄位開頭的信息。
SELECT * FROM position WHERE name LIKE 'java%';
查詢包含 java 欄位的信息。
SELECT * FROM position WHERE name LIKE '%java%';
查詢以 java 欄位結尾的信息。
SELECT * FROM position WHERE name LIKE '%java';
3.將讀取的數據進行排序
用途:我們知道從 MySQL 表中使用 SQL SELECT 語句來讀取數據。如果我們需要對讀取的數據進行排序,我們就可以使用 MySQL 的 ORDER BY 子句來設定你想按哪個欄位哪種方式來進行排序,再返回搜索結果。
SELECT filed1,filed2,filedN FROM table_name1,table_name2 ORDER BY field1 ASC/DESC;
- 預設為ASC升序 從小到大,DESC 降序 從大到小
- 如果要去重的話 需要在欄位前面加上 DISTINCT
4.聚合函數
之前查的都是橫向查詢,聚合函數查詢用來進行縱向查詢,它是對一列的值進行計算,然後返回一個單一的值。
-
統計行數SELECT COUNT(filed) FROM 表名
例如:查尋價格大於200的商品總條數SELECT COUNT(pid) FROM product WHERE price>200;
-
統計指定列的和SELECT SUM(filed) FROM 表名
例如:查詢商品的價格和SELECT SUM(price) FROM product;
-
統計指定列的平均值SELECT AVG(filed) FROM 表名
例如:查詢一個商品的平均價格SELECT AVG(price) FROM product;
-
統計一列的最大值SELECT MAX(filed) FROM 表名;
-
統計一列的最小值SELECT MIN(filed) FROM 表名;
5.分組查詢
GROUP BY 語句根據一個或多個列對結果集進行分組。
例如:統計每門課程的平均分,且只顯示平均分>70分的信息
SELECT sname,AVG(SCORE)FROM scores GROUP BY sname HAVING AVG(SCORE)>70;
註:
-
選擇多個條件可以用 WHERE filed IN(列值1,列值2....列值N)
-
如果要在WHERE後面 用聚合函數 需要把WHERE 變成 HAVING
例如:查看所有商品的平均價格,所有商品的平均價格>800的話,就顯示出所有商品的價格SELECT SVG(price) FROM product HAVING AVG(price)>800;
更新數據
UPDATE table_name SET filed1=new-value1,filed2=new-value2 WHERE Clause
filed 為欄位名
刪除數據
DELETE FROM table_name WHERE Clause
- 如果不指定WHERE 數據表中所有的數據均會被刪除
DELETE與DROP區別:DELETE 僅僅刪除表的數據,DROP連同數據和表結構一起刪除
------------恢復內容結束------------