/*1、 插入ssh
INSERT INTO SUBJECT (`name`, classhour, majorid)
VALUES
VALUES
('工商管理', 40, '16')*/函數
-- 查詢student表中的數據
-- SELECT *FROM studentspa
-- 根據查詢條件查詢數據 WHERE
-- SELECT *FROM student
-- WHERE majorid='計算機'
-- select * FROM subject where majorid=8排序
-- 查詢課時數在40~55之間的科目數 BETWEEN...AND...
-- select *FROM `subject` WHERE classhour BETWEEN 40 and 55字符串
-- 查詢majorid是8或16的數據 in() / OR
-- SELECT * FROM `subject` WHERE majorid in (8,16)
-- SELECT *FROM `subject` WHERE majorid=8 or majorid=16class
-- 查詢majorid 不是16 的數據 not IN !=
-- SELECT *FROM `subject` WHERE majorid !=16
-- SELECT *FROM `subject` WHERE majorid not IN(16)email
-- 查找name=Annie的學生 SELECT 列 from 表 where 條件
-- SELECT * FROM student WHERE NAME='Annie'select
-- 查詢考試不及格的成績 > <
-- SELECT *FROM result WHERE score<60im
-- 查詢科目編號majorid是16 而且 課時數classhour55如下的科目數據 AND
-- SELECT *FROM `subject` WHERE majorid=16 AND classhour<55統計
-- 列別名 查詢時使用,不修改原始表
-- 1.使用 as 給查詢出的列取別名 select 'id' AS '編號', NAME AS '學科名' FROM `subject`
-- select NAME AS '學科名' FROM `subject`;
-- 2.給常量取別名 SELECT 1 as '數字'
-- SELECT 1 AS '數字' FROM `subject`
-- 3.爲組合生成的列 取別名 CONCAT(str1,str2,...) 函數進行字符串拼接
-- SELECT CONCAT(NAME,'&',classhour ,'*',majorid) AS '組合' FROM `subject`
-- --SQL 中單引號和雙引號均可以表示字符串
-- -‘+’符號只能作算數運算,不能當連字符用
-- 4.在取別名的時候 AS 關鍵字能夠省略不寫
-- SELECT id '編號', name '名稱' FROM major
-- 條件語句
-- 1.判斷咧爲空 IS NULL 和 不爲空 IS NOT NULL
-- SELECT *FROM result WHERE score IS NULL
-- SELECT *FROM result WHERE score IS NOT NULL
-- 2.限制查詢出的行數 LIMIT 開始位置,返回行數 LIMIT 放在語句末尾
-- 查詢五行
-- SELECT * FROM result LIMIT 5
-- 查詢第一行到第五行的數據
-- SELECT * FROM result LIMIT 1,5
-- 查詢第五行開始 日後追加五行
-- SELECT * FROM result LIMIT 5,5
-- -----------------------------------
-- 查詢 majorid=8 和10 的科目名稱 IN 的用法
-- SELECT *FROM subject WHERE majorid in (8,10)
-- 查詢不是 8和 10的數據 NOT IN
-- SELECT *FROM subject WHERE majorid not in (8,10)
-- 去除重複記錄 DISTINCT
-- SELECT DISTINCT NAME FROM `subject`
/*
模糊查詢
查詢出全部姓張的學生信息
SELECT *FROM student where name like '張%'
查詢出姓名中帶有 馬 字的學生信息
SELECT *from student where name like '%馬%'
查詢出只有名字裏有馬的學生信息
select *from student where name like '_馬%'
通配符定義:
_ 匹配一個 任意字符
% 匹配任意多個任意字符
*/
-- 排序
-- order BY <列名> 根據某列排序 升序 ASC
-- SELECT * from result order by score
-- 降序 DESC
-- SELECT * from result order by score DESC
-- 多列排序
-- select *from `subject` Order by majorid ASC , classhour DESC
/*綜合應用
1.已知student 的emali 中有空值
2.在使用email 正序排序的時候如何將空值放在查詢結果末尾
3.運用知識點
case when 語句
多列 排序
表別名
列別名
SELECT
CASE
WHEN emali IS NULL THEN
'1'
ELSE
'0'
END AS tem ,
stu.*
FROM
student stu
ORDER BY
tem,
stu .email
*/
-- 文本處理函數
-- `LEFT`(str,len) 返回從左邊起左邊指定長度的字符
-- SELECT name ,LEFT(name ,2)FROM student
-- `RIGHT`(str,len) 返回從右邊起左邊指定長度的字符
-- SELECT NAME,RIGHT(name ,3) FROM student
-- LOWER(str)將字符串轉換爲小寫
-- SELECT NAME , LOWER(name ) from student
-- UPPER(str) 將字符串轉換爲大寫
-- SELECT name ,UPPER(name ) from student
-- LENGTH(str)返回字符串的長度
-- SELECT name ,LENGTH(name ) from student
-- LTRIM(str) 去掉字符串左邊空格
-- SELECT name ,ltrim(NAME) FROM student;
-- RTRIM(str) 去掉字符串右邊的空格
-- SELECT name , RTRIM(name )FROM student;
-- TRIM(str) 去掉字符串左右兩邊的空格
-- SELECT name ,TRIM( name ) from student
-- 日期時間函數
-- 聚合函數
-- MIN(expr)求最小值;
-- MAX(expr)求最大值;
-- COUNT(expr)統計個數;
-- SUM(expr) 求和
-- AVG([DISTINCT] expr)求平均值
-- 1.統計student 表中人數 結果=9
-- SELECT COUNT(*) FROM student
-- 注:COUNT(expr) 函數的參數能夠爲 *、列名‘或一個數字
-- 若爲列則不會統計該列 NULL(爲空)的數據
/*- 求 majorid 爲8 的課時數
- 1.求最大課時是多少 結果1=65
SELECT MAX(classhour)FROM `subject` WHERE majorid=8;
-- 2.求最少課時 結果2 45
SELECT MIN(classhour) from `subject` WHERE majorid=8;
-- 3.平均課時 結果3 56.8333
SELECT AVG( classhour) from `subject` WHERE majorid=8
注: 常見問題
聚合函數用來統計多條數據的值,所以使用聚合函數的
查詢語句,select子句中的其餘列是沒有意義的
• 例如: score 與 studentno 沒有直接關係
• select avg(score),studentno from result where
subjectid=1
*/