------------恢復內容開始------------
目錄
- MySQL相關知識
- Mysql鏈接
- 創建資料庫
- 洗掉資料庫
- 選擇資料庫
- 資料型別
- 資料表相關
- 創建資料表
- 創建資料表需要的資訊
- 語法
- 欄位約束條件
- 洗掉資料表
- 查詢資料表結構
- 修改表的結構
- 增加表欄位
- 修改列的長度及約束
- 修改表洗掉列
- 修改表名
- 修改表的字符集
- 插入資料
- 查詢資料
- 更新資料
- 洗掉資料
- 創建資料表
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連同資料和表結構一起洗掉
------------恢復內容結束------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/54212.html
標籤:MySQL
上一篇:MySQL中的事務和MVCC
