天天看點

mysql 操作執行個體表_MySQL表查詢操作執行個體

在安裝完資料庫後,不管是Windows 還是Linux平台,  MySQL的sql指令都大同小異,相關指令都是相同的,每個指令結束後 都以  ;  結尾,注意在Windows平台中表名是不區分大小寫的,在Linux中是區分的。 例如tl1 與TL1在Linux中是區分的。 為了一緻所有的資料庫名,表名,列名都采用小寫。為了友善簡單使用了sqllog用戶端工具學習。

在安裝完資料庫後會出現的幾個系統資料庫:

Mysql 庫: 該資料庫存儲了系統的使用者權限資訊

In_formation_schema庫: 該資料庫存儲了一些資料庫對象資訊。比如使用者表資訊,列資訊,權限資訊,字元集資訊,分區資訊等。

Test庫: 系統自動建立的測試資料庫,任何使用者都可以使用。

1. 切換資料庫

USE test;

2. 檢視該資料庫下的表

SHOW TABLES;

3.删除資料庫

DROP DATABASE test1;

4.建立表

基本文法是CREATE TABLE  tableanme (column_name column_type CONSTRAINTS)

CREATE TABLE emp

(ename VARCHAR(10),

hiredate DATE,

sal DECIMAL(10,2),

deptno INT(2));

5.删除表

DROP TABLE emp;

6.修改表

--  修改表類型, 将emp表ename字段從varchar(10)改為varchar(20)

ALTER TABLE emp MODIFY ename VARCHAR(20);

-- 再檢視表架構

DESC emp;

--  增加表字段

ALTER TABLE emp ADD COLUMN age  INT(20);

-- 再檢視表架構

DESC emp;

--  删除表字段

ALTER TABLE emp DROP COLUMN age;

DESC emp;

--  字段改名

ALTER TABLE emp CHANGE deptno deptno1 INT(2);

DESC emp;

--  修改字段的排列順序,添加字段birth 放在ename下面

ALTER TABLE emp ADD birth DATE AFTER ename;

DESC emp;

--  修改sal字段排序,放在最前面

ALTER TABLE emp MODIFY sal DECIMAL(10,2) FIRST;

DESC  emp;

7.修改表名

ALTER TABLE emp RENAME emp1;

8. 插入資料

INSERT INTO emp (ename,sal)VALUES('dony',1000);

-- 插入多條

INSERT INTO emp (ename,sal)

VALUES('dony01',1000),('dony02',1000);

9.更新

UPDATE emp SET sal=4000 WHERE ename='dony';

-- 更新兩個表

UPDATE emp,emp1 SET emp.sal=3000, emp1.sal=3000 WHERE

emp.ename=emp1.ename

10.删除資料

DELETE FROM emp WHERE emp.ename='dony02';

11. 查詢

-- 查詢不重複記錄 DISTINCT

SELECT DISTINCT * FROM emp;

-- 查詢條件(比較運算符可以是=,>,=,<=,!=)

SELECT * FROM emp WHERE sal >=3000;

-- 排序 ordery desc|asc

SELECT * FROM emp  ORDER BY sal DESC;

-- 查詢前1條

SELECT * FROM emp ORDER BY sal LIMIT 1;

-- 查詢前3條,從第2條開始

SELECT * FROM emp ORDER BY sal LIMIT 1,3;

12. 聚合

常用的聚合函數sum(),count(*),max(),min()  group by分類聚合, having 聚合後的結果進行過濾, with rollup 分類聚合後的結果進行彙總

-- 查詢GROUP BY

SELECT ename,COUNT(1) FROM emp GROUP BY  sal ;

-- with rollup

SELECT ename,COUNT(1) FROM emp GROUP BY  sal WITH ROLLUP;

-- 查詢 HAVING

SELECT ename,COUNT(1) FROM emp GROUP BY ename HAVING COUNT(1)>1;

13.表連接配接

内連接配接:兩張表中互相比對的記錄,外連接配接選出不比對的記錄(外連接配接有分為左連接配接和右連接配接)

-- 内聯接

SELECT * FROM dept,emp WHERE dept.`deptno`=emp.`deptno`;

-- 左聯接

SELECT * FROM dept LEFT JOIN emp  ON  dept.`deptno`=emp.`deptno`;

-- 右聯接

SELECT * FROM dept RIGHT JOIN emp  ON  dept.`deptno`=emp.`deptno`;

14.子查詢

子查詢的關鍵字主要包括in、not in、=、!=、exists、not exists

--  in 子查詢

SELECT * FROM emp WHERE deptno IN(SELECT deptno FROM dept);

-- 如果子查詢記錄數唯一,可以用=

SELECT * FROM emp WHERE deptno = (SELECT deptno FROM dept LIMIT 1);

15. 記錄聯合

union 和union all,  union 是将union all的結果集合并後在distinct

SELECT deptno FROM emp

UNION ALL

SELECT deptno FROM dept;

SELECT deptno FROM emp

UNION

SELECT deptno FROM dept;

mysql 操作執行個體表_MySQL表查詢操作執行個體

繼續閱讀