Mysql必知必會學習筆記

表結構

DROP DATABASE IF EXISTS test1;
CREATE DATABASE test1;
USE test1;
##部門表
#DROP IF EXISTS TABLE DEPT;
CREATE TABLE DEPT(
DEPTNO int PRIMARY KEY,##部門編號
DNAME VARCHAR(14) , ##部門名稱
LOC VARCHAR(13) ##部門地址
) ;
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
##員工表
#DROP IF EXISTS TABLE EMP;
CREATE TABLE EMP(
EMPNO int PRIMARY KEY, #員工編號
ENAME VARCHAR(10), #員工姓名
JOB VARCHAR(9), #員工工作
MGR int, #員工直屬領導編號
HIREDATE DATE, #入職時間
SAL double, #工資
COMM double, #獎金
DEPTNO int #對應dept表的外鍵
);
## 添加 部門 和 員工 之間的主外鍵關係
ALTER TABLE EMP ADD CONSTRAINT FOREIGN KEY EMP(DEPTNO) REFERENCES DEPT (DEPTNO);
INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902,"1980-12-17",800,NULL,20);
INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);
INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);
INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);
INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);
INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,'1987-07-03',3000,NULL,20);
INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);
INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,'1987-07-13',1100,NULL,20);
INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30);
INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20);
INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782,'1981-01-23',1300,NULL,10);
#工資等級表
#DROP IF EXISTS TABLE SALGRADE;
CREATE TABLE SALGRADE(
GRADE int, #等級
LOSAL double, #最低工資
HISAL double ); #最高工資
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);

檢索數據

-- 最好是關鍵字大寫,其他的小寫 
-- 不區分大小寫
-- 空格會被忽略
-- 檢索單個列
SELECT ename FROM emp
-- 檢索多個列
SELECT empno,ename FROM emp
-- 檢索所有列 最好不使用通配符*,會降低檢索和應用程序的性能
SELECT * FROM emp
-- 檢索不同的行 DISTINCT 去重
SELECT DISTINCT job,ename FROM emp
-- 限制結果 LIMIT 5,5 第一個位置爲開始位置,第二個數爲要檢索的行數
SELECT empno,ename FROM emp LIMIT 1,2
-- 使用完全限定的表名
SELECT emp.ename FROM test.emp

排序檢索數據

-- 排序數據 order by
SELECT empno FROM emp order by empno
-- 按多個列排序 主要以第一個參數排序,第二個參數次之
SELECT * FROM emp order by empno,ename
-- 指定排序方向 desc降序ASC升序
SELECT empno FROM emp order by empno desc
-- 某列的最大值
SELECT empno FROM emp order by empno desc LIMIT 1

過濾數據

-- 使用where子句 where字句應該位於group by 子句之前
SELECT ename FROM emp where empno = '7654'
-- where子句操作符
-- 檢查單個值
SELECT ename FROM emp where empno = '7654'
SELECT ename FROM emp where empno <7654
-- 不匹配檢查
SELECT ename FROM emp where empno <>7654
-- 範圍值檢查
SELECT ename FROM emp where empno between 7654 and 7700
-- 空值檢查
SELECT ename FROM emp where mgr is NULL

待續…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章