查詢語句的基礎建表和數據語句:
CREATE TABLE `ssh_employee` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `LAST_NAME` varchar(255) DEFAULT NULL, `EMAIL` varchar(255) DEFAULT NULL, `BIRTH` datetime DEFAULT NULL, `CREATE_TIME` datetime DEFAULT NULL, `DEPARTMENT_ID` int(11) DEFAULT NULL, `salary` decimal(10,2) DEFAULT NULL, `bonus` decimal(10,2) DEFAULT NULL, `address` varchar(100) DEFAULT NULL, PRIMARY KEY (`ID`), KEY `FK_kfaoihyj5oll835mvidvgsxp` (`DEPARTMENT_ID`), CONSTRAINT `FK_kfaoihyj5oll835mvidvgsxp` FOREIGN KEY (`DEPARTMENT_ID`) REFERENCES `ssh_department` (`ID`)) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;-- ------------------------------ Records of ssh_employee-- ----------------------------INSERT INTO `ssh_employee` VALUES ('7', '都是T', 'wsw@QQ.com', '2015-12-29 00:00:00', '2016-01-08 14:03:24', '2', '1000.00', '200.00', '上海');INSERT INTO `ssh_employee` VALUES ('12', 'Jim', null, '1993-08-20 00:00:00', '2016-01-08 14:09:26', '3', '3000.00', '400.00', '北京');INSERT INTO `ssh_employee` VALUES ('13', 'Tim', 'Tim@168.com', '1992-12-12 00:00:00', '2016-01-07 00:00:00', '3', '5000.00', '600.00', '重慶');INSERT INTO `ssh_employee` VALUES ('16', 'Tim', '', '1993-03-15 00:00:00', '2016-01-07 18:31:54', '2', '7000.00', '800.00', '重慶');以上是建表語句,后面所有查詢語句都是基于以上數據表格而建立;/* 查詢語句 */ /*1、查詢所有列(SELECT、FROM)*/SELECT * FROM ssh_employee; /*2、查詢指定列*/SELECT EMAIL ,BIRTH FROM ssh_employee; /*3、查詢時指定別名(AS),多表查詢時常用表別名,此處只舉列別名*/SELECT ID AS '編號',LAST_NAME AS '名字' from ssh_employee; /*4、查詢時添加上常量列,例子:在查詢時加上性別列+"男"*/SELECT ID,LAST_NAME,EMAIL ,BIRTH,'男' AS '性別' FROM ssh_employee; /*5、查詢時合并列:查詢員工工資和獎金和*/SELECT ID,LAST_NAME,(salary+bonus)AS '工資' FROM ssh_employee; /*5、查詢時去除(某個字段)重復記錄 (DISTINCT):查員工來自那些省市*/SELECT DISTINCT(address) FROM ssh_employee; /*6、條件查詢(WHERE)*/ /*6.1、邏輯條件(AND 、OR) 需求:查詢條件編號為16且名字為 Tim的員工的所有信息 */ SELECT * FROM ssh_employee WHERE ID=16 AND LAST_NAME='Tim'; /*6.2、比較條件(大于> 小于< 大于等于>= 小于等于<= 不等于<> between and) 需求查詢工資高于4000的員工所有信息 */ SELECT * FROM ssh_employee WHERE (salary+bonus)>4000; /*工資大于3000且小于6000的員工信息*/ SELECT * FROM ssh_employee WHERE (salary+bonus)>3000 AND (salary+bonus)<6000; SELECT * FROM ssh_employee WHERE (salary+bonus) BETWEEN 3000 AND 6000; /*6.3、判空條件(NULL 空字符串):is null/is not null/=''/<>'' 查詢無郵箱的員工(注意:NULL 表示沒有值;""表示值為空字符串) */ SELECT * FROM ssh_employee WHERE EMAIL='' OR EMAIL is NULL; /*郵箱不為空的員工*/ SELECT * FROM ssh_employee WHERE EMAIL<>'' AND EMAIL IS NOT NULL; /*6.4、模糊條件(LIKE) 通常使用以下替換標記 %:表示任意個字符 _: 表示一個字符 需求 查詢 名字第一個字母為 T的員工 */ SELECT * FROM ssh_employee WHERE LAST_NAME LIKE 'T%'; /*需求 查詢 名字中包含 T 字母的員工*/ SELECT * FROM ssh_employee WHERE LAST_NAME LIKE '%T%';上面代碼為最基礎的單表查詢。更多查詢語句請轉下篇。
新聞熱點
疑難解答