Mysql筆記(二)簡單增刪改查
阿新 • • 發佈:2018-12-17
這是我在學習Mysql之路上做的筆記,今天將它粘出來。這一篇主要是簡單增刪改查。有錯誤的歡迎大家指出。。。
#增刪改查
#建立部門表
CREATE TABLE IF NOT EXISTS tb_dept(
deptno INT PRIMARY KEY auto_increment COMMENT '部門編號',
dname VARCHAR(18) COMMENT '部門名稱',
loc VARCHAR(100) COMMENT '部門地址'
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='部門表';
#建立員工表
CREATE TABLE IF NOT EXISTS tb_emp( empno INT PRIMARY KEY auto_increment COMMENT '員工編號', ename VARCHAR(18) NOT NULL COMMENT '員工姓名', job enum('總經理','專案經理','軟體構造師','軟體開發工程師','軟體測試工程師', '市場營銷經理','財務經理','人力資源','質量管理經理') DEFAULT '軟體開發工程師' COMMENT '員工職位', mgr int COMMENT '上級領導', hiredate DATE COMMENT '入職時間', sal int COMMENT '薪資', comm int COMMENT '獎金', phone VARCHAR(18) UNIQUE COMMENT '電話', dept_id int COMMENT '部門編號', CONSTRAINT fk_emp FOREIGN KEY (dept_id) REFERENCES tb_dept(deptno) )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='員工表';
#1、增加
#一次插入多條記錄INSERT
INSERT INTO tb_dept VALUES ('7100', '董事部', '十堰'), ('7200', '產品研究部', '十堰2'), ('7300', '專案開發部', '上海'), ('7400', '質量管理部', '深圳'), ('7500', '市場營銷部', '深圳'), ('7600', '客戶服務部', '深圳'), ('7700', '財務部', '十堰'), ('7800', '人力資源部', '十堰'); INSERT INTO tb_emp VALUES ('7101', 'King', '總經理', null, '2009-08-21', '5000', null, '18772221788', '7100'), ('7301', 'Johnson', '專案經理', '7101', '2010-08-21', '3500', '200', '15072624256', '7300'), ('7201', 'Jones', '軟體構造師', '7301', '2015-08-21', '3200', null, null, '7200'), ('7302', 'Brown', '軟體開發工程師', '7301', '2016-08-09', '3100', '50', null, '7300'), ('7303', 'Miller', '軟體開發工程師', '7301', '2018-05-21', '3000', null, null, '7300'), ('7304', 'Davis', '軟體開發工程師', '7301', '2018-10-21', '2800', '50', null, '7300'), ('7305', 'Wilson', '軟體開發工程師', '7301', '2014-08-21', '3300', null, null, '7300'), ('7306', 'Thomas', '軟體測試工程師', '7301', '2015-06-21', '3200', null, null, '7300'), ('7501', 'Jackson', '市場營銷經理', '7101', '2016-08-21', '2920', '100', '18342521566', '7500'), ('7701', 'Clark', '財務經理', '7101', '2013-06-21', '3300', null, '17552223457', '7700'), ('7801', 'Tom', '人力資源', '7101', '2011-07-21', '2860', '60', '18776660111', '7800'), ('7401', 'Tomas', '質量管理經理', '7101', '2011-08-03', '2800', null, '18773345012', '7400');
#檢視資料
SELECT *FROM tb_dept;
SELECT *FROM tb_emp;
#從一張表複製資料到新表中
#複製了表tb_dept的 結構、資料 ,但是不復制約束
CREATE TABLE dept SELECT *FROM tb_dept;
#檢視資料
SELECT *FROM dept;
#2、刪除
#DELETE刪除表資料,保留表結構,可以回滾
DELETE FROM tb_dept WHERE dname='銷售部';
#DROP刪除表結構和資料:刪除最快,直接從記憶體刪除
DROP TABLE tb_dept;
#TRUNCATE清空一個表資料,不可以回滾
TRUNCATE TABLE tb_dept;
#3、修改
UPDATE tb_dept SET loc='上海' WHERE dname='銷售部';
UPDATE tb_emp SET ename='Luolei',job='開發工程師' WHERE empno=7113;
#auto_commit自動提交
#查詢MySQL自動提交設定(1自動提交,0手動提交)
show variables like 'autocommit';
SELECT @@autocommit;
SET autocommit=1;
#4、查詢
#檢視資料
SELECT *FROM tb_dept;
SELECT *FROM tb_emp;
DESC tb_emp;
#DISTINCT查詢清除重複行
SELECT DISTINCT loc FROM tb_dept;
#聯合查詢
select DISTINCT dept_id,job from tb_emp;
#使用between區間
SELECT *FROM tb_emp WHERE sal BETWEEN 1300 AND 2000;
#包含in
SELECT *FROM tb_emp WHERE mgr IN(7103);
SELECT *FROM tb_emp WHERE mgr IN(7103,7099);
#IS NULL
SELECT *FROM tb_emp WHERE comm IS NULL;
#(_)一個字元,(%)零個或多個字元
SELECT *FROM tb_emp WHERE ename LIKE '%so_';
#邏輯運算子
#AND OR NOT
SELECT *FROM tb_emp WHERE dept_id=40 AND mgr='7103';
SELECT *FROM tb_emp WHERE mgr ='7103' OR mgr ='7099';
SELECT *FROM tb_emp WHERE NOT mgr='7103';
#order by排序(預設asc升序,desc降序)
#orderby多個欄位時,用逗號分隔每一個欄位,排序的方法是先按第一個欄位排序,如果有相同的再按後續的欄位依次排序。
SELECT *FROM tb_emp ORDER BY sal DESC,comm ASC;