dml
sql語句的乙個分類,dml主要完成資料庫表中資料的維護,即:新增、刪除、修改
實體完整性
表中不能出現兩行完全一樣的資料
解決方案:給表中新增主鍵(id),讓該列的值唯一
域完整性
表中的值必須正確,在mysql8.0之後,可以使用check關鍵字實現
引用完整性
自定義完整性
需要根據業務的定義相應列的資料規則
函式分類:
多行函式:傳入的引數是多行,返回值也是多行
單行函式:傳入的引數是多行,返回值是單行的,即聚合函式
字串函式
concat(str1,str2,..
.,strn)
-- 拼接字串串
insert()
-- 插入字串
substring(str,
index
,n)-- 擷取指定字串
left
/right
(str,n)
-- 獲取字串最左/右邊的n個字元
ltrim/rtrim(str)
-- 去除最左/右邊的空格
日期函式curdate(
)--返回當前日期
curtime(
)--返回當前時間
now(
)--返回當前日期時間
dayofyear(
date
)-- 返回date為這一年的第幾天
week(
date
)/weekofyear(
date
)-- 返回date為這一年的第幾周(包含與不包含)
date_format(
date
,format)
-- 返回字串format格式化後的日期
date_add/sub(
date
,interval expr unit)
--日期的相加/減
datediff(date1,date2)
--日期差
流程函式-- 如果條件為真,則返回t,否則返回f
if(condition,t,f)
-- 如果value1不為null,則返回value1,否則返回value2
ifnull(value1,value2)
-- 如果value1等於value2,null,否則返回value2
nullif
(value1,value2)
--如果value等於value1則返回result1 ....
case
value
when value1 then result1
when vaule2 then result2
.....
.else result
end-- 如果條件condition為真,則返回result1 ....
case
when condition then result1
when condition then result2
else result
end
子查詢
巢狀查詢:多個select語句巢狀,內層的子查詢作為外層的查詢條件
select
*from student where id in
(select sid from score)
連線查詢
內連線交叉連線 cross
也就是笛卡爾積
select
*from student cross
join score
自然連線 natural
也就是將相同的列拼接在一起
select
*from student natural
join score
指定字段連線 using
也就是將同名列的值相等進行對映
select
*from student join score using
(id)
指定條件連線 on
select
*from student join score on student.id = score.sid
外連線
左外連線
左表中的資料全部處理,右表滿足條件正常顯示
select
*from student left
join score on student.id = score.sid
右外連線
右表資料全部顯示,左表滿足的正確顯示,剩餘的用null填充
select
*from score right
join student on student.id = score.sid
union連線查詢
將多張表中的資料進行合併,且重複的資料只顯示一條
select name,age from student
union
allselect name,age from student1
其他查詢/*
如果》any,則大於any後面最小的結果
如果-- any查詢
select sid,age from score where age >
any(
select age from score where age<=50)
-- all查詢
select sid,age from score where age <
all(
select age from score where age <=
50)
資料庫 MySQL多表查詢
某教學資料結構大概如下 表1 student 學生表 sid,name,age,gender表2 course 課程表 cid,name,teacher表3 score 成績表 sid,cid,score 成績 編寫sql語句查詢所有學習課程名為python的學生資訊,實現語句如下 select s...
MySQL資料庫多表查詢
多表查詢 多個有關係的表關聯查詢。user info表 create table user info id int 2 primary key,user name varchar 12 unique password varchar 15 not null real name varchar 8 n...
MySQL資料庫 多表連線查詢
多表連線查詢 注意 使用連線技術建議將表經行重新命名!explain 檢索連線是否達標 內連線 語法1 from 表1 inner join 表2 on 主鍵字段 外來鍵字段 where 條件表示式 語法2 from 表1,表2 where 主鍵字段 外來鍵字段 and 條件表示式 三個表連線 fr...