mysql-增刪改查操作

來源:互聯網
上載者:User

標籤:mysql修改   mysql更新   

-- 查詢語句

SELECT * FROM student; -- 效率略低,一般不建議使用

SELECT tid,tname FROM student;

SELECT tname AS 姓名 FROM student;

SELECT * FROM student WHERE 1=1;

SELECT tname FROM student; -- 指定查詢個別列

SELECT USER,PASSWORD,HOST FROM mysql.user; -- 跨庫查詢mysql資料庫的user表內的使用者名稱、密碼、主機



-- 建立學生資訊表

CREATE TABLE stu(

sno INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(10) NOT NULL,

sgender ENUM(‘男‘,‘女‘) DEFAULT ‘男‘,

saddress VARCHAR(50),

sscore TINYINT UNSIGNED,

sdept VARCHAR(20) NOT NULL

)ENGINE=MYISAM AUTO_INCREMENT=2014270001 DEFAULT CHARSET=utf8;


INSERT INTO stu VALUES(NULL,‘董華‘,‘男‘,‘河南省鄭州市‘,80,‘電腦網路‘);

INSERT INTO stu VALUES(NULL,‘代珂‘,‘男‘,‘河南省平頂山‘,85,‘電腦安全‘);

INSERT INTO stu VALUES(NULL,‘小江‘,‘男‘,‘河南省商丘‘,70,‘電腦網路‘);

INSERT INTO stu VALUES(NULL,‘小賓‘,‘男‘,‘河南省商丘市‘,80,‘電腦安全‘);

INSERT INTO stu VALUES(NULL,‘小麗‘,‘女‘,‘河南省安陽市‘,90,‘化工食品‘);

INSERT INTO stu VALUES(NULL,‘小華‘,‘男‘,‘北京市‘,48,‘化工食品‘);

INSERT INTO stu VALUES(NULL,‘凱利‘,‘女‘,‘上海市‘,74,‘生物工程‘);

INSERT INTO stu VALUES(NULL,‘王菲‘,‘女‘,‘上海市‘,81,‘生物工程‘);

INSERT INTO stu VALUES(NULL,‘麗薩‘,‘女‘,‘河北省天津市‘,59,‘生物工程‘);

INSERT INTO stu VALUES(NULL,‘李莉‘,‘女‘,‘河北省天津市‘,0,‘化工食品‘);

INSERT INTO stu VALUES(NULL,‘張闖‘,‘男‘,‘河北省天津市‘,NULL,‘電腦網路‘);

INSERT INTO stu VALUES(NULL,‘張鞦韆‘,‘男‘,‘安徽省合肥市‘,NULL,‘電腦安全‘);

INSERT INTO stu VALUES(NULL,‘張李秋‘,‘男‘,‘安徽省‘,67,‘建築工程‘);

INSERT INTO stu VALUES(NULL,‘秋香‘,NULL,‘安徽省‘,95,‘建築工程‘);


-- 條件查詢 

-- 空條件判斷 IS NULL 或 IS NOT NULL

SELECT * FROM stu WHERE sscore IS NULL;

SELECT sno,sname,sscore FROM stu WHERE sscore IS NOT NULL; 


-- IN() 在...範圍內 或 NOT IN()不在...範圍內

SELECT * FROM stu WHERE sdept IN(‘電腦網路‘,‘電腦安全‘);

SELECT * FROM stu WHERE sdept NOT IN(‘電腦網路‘,‘電腦安全‘); 


-- BETWEEN AND 在...之間 或 NOT BETWEEN AND 不在...之間

SELECT * FROM stu WHERE sscore NOT BETWEEN 70 AND 90;

SELECT * FROM stu WHERE sscore BETWEEN 70 AND 90; 


-- NOT 取反運算子 ADN 與運算子 OR 或運算子

SELECT * FROM stu WHERE sdept = ‘建築工程‘ OR sdept = ‘生物工程‘;

SELECT * FROM stu WHERE sgender = ‘男‘ AND sdept = ‘電腦網路‘; 


-- LIKE ‘張%‘ 模糊尋找運算子(%:代表0-n多個字元,_代表一個字元)

SELECT * FROM stu WHERE sname LIKE ‘李%‘;

SELECT * FROM stu WHERE sname LIKE ‘李_‘;

SELECT * FROM stu WHERE sname LIKE ‘%李%‘; 

SELECT * FROM stu WHERE sname NOT LIKE ‘%李%‘; 


-- 排序操作 DESC代表降序排序,ASC代表升序排序,預設升序排序

SELECT * FROM stu ORDER BY sscore DESC;

SELECT * FROM stu ORDER BY sscore ASC; 


-- LIMIT 限制結果顯示行數(用法:LIMIT 5 顯示5行  或 LIMIT 0,5 從0位置開始顯示5行,0代表資料庫內起始行數),LIMIT 在SQL語句最後面

SELECT * FROM stu LIMIT 5;

SELECT * FROM stu LIMIT 0,5;


-- IFNULL() 與 IF()兩個函數的使用及區別:IFNULL(exp1,exp2) = IF(exp1 IS NULL,exp2,exp3)

SELECT sno AS 學號,sname AS 姓名,sgender AS 性別,IFNULL(sscore,‘曠考‘) AS 成績 FROM stu;

SELECT sno AS 學號,sname AS 姓名,sgender AS 性別,IF(sscore IS NULL,‘曠考‘,sscore) AS 成績 FROM stu;


-- 集合函數(聚集合函式)

AVG() -- 求平均值 (計算平均時,不包含空值)

SUM() -- 求和

COUNT() -- 求總記錄數

MAX() -- 最大值

MIN() -- 最小值


SELECT AVG(sscore) 平均分,SUM(sscore) 總分,MAX(sscore) 最高分,MIN(sscore) 最低分,COUNT(*) 總人數,COUNT(sscore) 考試人數 FROM stu;

SELECT COUNT(DISTINCT sdept) 專業 FROM stu; -- DISTINCT 去除重複


SELECT sdept,AVG(sscore) FROM stu GROUP BY sdept; -- 分組查詢,一般前面是分組名稱,緊跟著是集合函數(聚集合函式)


-- 條件中的那個查詢是子查詢,顯示出最高分的學生資訊

SELECT * FROM stu WHERE sscore =(

SELECT MAX(sscore) FROM stu -- 子查詢,當子查詢查到的資料只有一個時,可以用‘=‘,多於一條時只能用‘IN‘

);


SELECT * FROM stu WHERE sscore IN(

SELECT MAX(sscore) FROM stu -- 子查詢

);


-- 統計男、女生分別有幾人

SELECT IFNULL(sgender,‘保密‘),COUNT(*) FROM stu GROUP BY sgender;


-- 統計各個專業的平均成績,顯示平均成績不小於60分的專業的前兩條資料

SELECT sdept,AVG(sscore) FROM stu WHERE 1=1 GROUP BY sdept HAVING AVG(sscore)>=60 ORDER BY AVG(sscore) DESC LIMIT 2;

WHERE 查詢條件

GROUP BY 分組

HAVING 是分組條件(使用前提是使用了分組)

ORDER BY 排序

LIMIT 取幾條記錄


-- 多表串連查詢  查詢結果是多個表中的資訊

CREATE TABLE student(

sid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(10) NOT NULL,

sage TINYINT UNSIGNED,

stid SMALLINT UNSIGNED

)ENGINE=MYISAM DEFAULT CHARSET=utf8;


CREATE TABLE teacher(

tid SMALLINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

tname VARCHAR(10) NOT NULL

)ENGINE=MYISAM DEFAULT CHARSET=utf8;


INSERT INTO teacher VALUES(NULL,‘張老師‘);

INSERT INTO teacher VALUES(NULL,‘王老師‘);

INSERT INTO teacher VALUES(NULL,‘趙老師‘);

INSERT INTO teacher VALUES(NULL,‘李老師‘);

SELECT * FROM teacher;


INSERT INTO student VALUES(NULL,‘曹操‘,20,1);

INSERT INTO student VALUES(NULL,‘張飛‘,27,4);

INSERT INTO student VALUES(NULL,‘關羽‘,29,2);

INSERT INTO student VALUES(NULL,‘劉備‘,50,2);

INSERT INTO student VALUES(NULL,‘孫權‘,40,4);

INSERT INTO student VALUES(NULL,‘諸葛亮‘,24,3);

INSERT INTO student VALUES(NULL,‘姚蓋‘,25,1);

INSERT INTO student VALUES(NULL,‘大喬‘,25,5);

SELECT * FROM student;


TRUNCATE student;


-- 查詢學生學號、姓名、年齡及代課老師的姓名:

-- 等值連結查詢

SELECT sid,sname,sage,tname FROM student,teacher WHERE student.stid=teacher.tid;


-- 左連結查詢

SELECT sid,sname,sage,IFNULL(tname,‘無‘) FROM student s LEFT JOIN teacher t ON s.stid=t.tid;


-- 右連結查詢

SELECT sid,sname,sage,IFNULL(tname,‘無‘) FROM student s RIGHT JOIN teacher t ON s.stid=t.tid;


-- 表的自身連結查詢

SELECT a.sid,a.sname,b.sname FROM student a,student b WHERE a.sid<b.sid;


-- INSERT 插入語句

CREATE TABLE t1(

tid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

tname VARCHAR(10) NOT NULL,

tage TINYINT UNSIGNED

)ENGINE=MYISAM DEFAULT CHARSET=utf8;


INSERT INTO t1 VALUES(NULL,‘jack‘,18); -- 插入一條資料

INSERT INTO t1 VALUES(NULL,‘jane‘,20),(NULL,‘lili‘,10); -- 插入多條資料

INSERT INTO t1 (tname,tage) VALUES(‘張三‘,20); -- 插入一條資料,欄位對應

INSERT INTO t1 SELECT * FROM t1; -- 將查詢的資料插入資料庫(前提是沒有主鍵約束)

REPLACE INTO t1 VALUES(1,‘庫克‘,35); -- 如果主鍵相同則替換插入,不同則插入



-- DELETE 刪除語句

DELETE FROM t1 WHERE tid=1; -- 刪除t1表內tid為1的資料

DELETE FROM t1; -- 刪除t1表內的所有資料(再次插入資料,主鍵接著之前的增加)

TRUNCATE t1; -- 截斷表內的所有資料,清空資料,保留結構(再次插入資料的話,主鍵重新開始),不觸發觸發器

-- drop 刪除語句

DROP DATABASE db;-- 刪除資料庫

DROP TABLE t1;-- 刪除表


-- UPDATE 更新修改語句

UPDATE t1 SET tname = ‘小可‘,tage=18 WHERE tid =2;


本文出自 “夜風” 部落格,請務必保留此出處http://jiangkun08.blog.51cto.com/6266992/1548533

mysql-增刪改查操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.