MySQL常用語句
阿新 • • 發佈:2017-07-31
多表查詢 購物 字符串 記錄 left emp 之前 個數 regexp 1、MySQL數據庫的安裝
數據庫,主要用於數據的存放
2、MySQL規範
sql語句可單行或多行書寫,以分號結尾
語句為大寫,變量名為小寫
3、MySQL數據庫的操作
創建——CREATE DATABASE db_name;
查看——SHOW DATABASES;
修改數據庫的字符串格式——ALTER DATABASE db_name character set utf8;
刪除數據庫——DROP DATABASE db_name;
使用/切換數據庫——USE db_name;
4、數據表的增刪改查
創建一個員工表
CREATE TABLE employee(
id INT PRIMARY KEY auto_increment,
name VARCHAR(20),
resume TEXT);
約束:primary key(非空且唯一);主鍵能夠區分當前記錄的字段
unique 唯一
not null 不為空
auto_increment 用於主鍵字段,必須是數字類型
查看表的信息
DESC tab_name ——查看表結構
SHOW TABLES——查看當前數據庫所有的表
修改表的結構
1、增加列(字段)
ALTER TABLE tab_name ADD 列名 類型 約束條件 [first | after 字段名];
2、修改列類型
ALTER TABLE tab_name MODIFY 列名類型約束;
3、修改列名
ALTER TABLE tab_name CHANGE 列名 新列名 類型約束;
4、刪除一列
ALTER TABLE tab_name DROP 列名;
5、修改表名
RENAME TABLE 表名 to 新表名;
6、修改表所用的字符集
ALTER TABLE student CHARACTER SET utf8;
7、刪除表
DROP TABLE tab_name;
對數據表的操作
增加插入數據——INSERT tab_name (field1....) VALUES (value1.....);
修改表記錄——UPDATE tab_name SET field1=value1,......也可以加WHERE語句
刪除表記錄——DELETE FROM tab_name 也可以加WHERE語句
使用TRUNCATE刪除表記錄——TRUNCATE TABLE tab_name
查詢記錄表(重點)
查看數據表信息——SELECT *FROM 表名
查詢語法——FROM tab_name
WHERE 條件
GROUP BY feild
HAVING 篩選
LIMIT 限制條數
使用WHERE語句,進行過濾查詢
SELECT * FROM tab_name WHERE name=‘yuan‘;
比較運算符: > < >= <= != between 80 and 100 值在10到20之間 in(80,90,100) 值是10或20或30 like ‘yuan%‘ 以yuan開頭的字符串
邏輯運算符: 在多個條件直接可以使用邏輯運算符 and or not
ORDER BY 排序
SELECT * FROM tab_name ORDER BY field DESC|ASC;
ASC為默認——從小到大,DESC——從大到小
GROUP BY分組查詢
對購物車按類名分組後顯示每一組商品價格總和超過150的商品
SELECT class,SUM(price) FROM order_menu GROUP BY class HAVING SUM(price)>150;
having 和 where兩者都可以對查詢結果進行進一步的過濾,差別有: <1>where語句只能用在分組之前的篩選,having可以用在分組之後的篩選; <2>使用where語句的地方都可以用having進行替換 <3>having中可以用聚合函數,where中就不行。
聚合函數
COUNT(列名):統計行的個數
SUM(列名):統計滿足條件的內容和
AVG(列名):求平均數
MAX、MIN:求最高分和最低分
LIMIT記錄條數限制
SELECT * from ExamResult limit 1; SELECT * from ExamResult limit 2,5; -- 跳過前兩條顯示接下來的五條紀錄 SELECT * from ExamResult limit 2,2;
正則表達式
SELECT * FROM employee WHERE emp_name REGEXP ‘^yu‘; SELECT * FROM employee WHERE emp_name REGEXP ‘yun$‘; SELECT * FROM employee WHERE emp_name REGEXP ‘m{2}‘;
外鍵約束
FOREIGN KEY (charger_id) REFERENCES charge(id)
增加外鍵和刪除外鍵
ALTER TABLE student ADD CONSTRAINT abc FOREIGN KEY(charger_id) REFERENCES classcharger(id); ALTER TABLE student DROP FOREIGN KEY abc;
多表查詢
內連接
select * from employee inner join department on employee.dept_id = department.dept_id;
左外連接:在內連接的基礎上增加左邊有右邊沒有的結果
select * from employee left join department on employee.dept_id = department.dept_id;
右外連接:在內連接的基礎上增加右邊有左邊沒有的結果
select * from employee right join department on employee.dept_id = department.dept_id;
DISTINCT——去重
MySQL常用語句