DQL 資料查詢語言

2021-09-27 08:16:23 字數 3401 閱讀 8754

查詢多列

select 列1,列2 from 表;

查詢全部列

select * from 表;

where+ 條件

select * from student where c_number<>1; 

select * from student where c_number between 2 and 3; # 查詢2班 3班的同學

select * from student where c_number is not null; # is null 為null

select * from student where c_number>=2 and c_number<=3;

運算子

作用》大於》=

大於等於

<>

不等於=

等於<

小於<=

小於等於

like 像…一樣

like 『張%』 以張開頭的所有字串

like 『c_』 c+乙個其他字元

% 匹配零個或者多個任意字元

_ 匹配乙個任意字元

select * from class where c_name like 'c%';

select * from class where c_name like 'c_';

select * from class where c_name like '%o%'; # 名字中帶o的課程

多個條件使用and or連線

查詢為null或者不為null的字段

select * from student where stuname is not null;

select * from student order by stuname;

order by stuname asc;//公升序(預設)

order by stuname desc;//降序

# 按照性別公升序排序  性別一樣按照名字降序排序

select * from student order by *** asc,stuname desc;

`select distinct stuid from student;

select distinct c_number from student; # 查詢有學生的班級`

去除重複項

union 合併多個查詢結果 去掉重複項

union all 合併多個查詢結果 不去除重複項

select

*from student

union

select

*from teacher;

insert

into class

select7,

'日語'

union

select8,

'法語'

union

select9,

'西語'

;

合併要求查詢的結果必須列一樣

合併 班級號位1 姓張的同學

select * from student where c_number=1 or stuname like '張%';

select * from student where c_number=1

union all

select * from student where stuname like '張%';

select * from student limit 3; # 查詢前三項`  

select * from student

limit 4,3; # 從第4項開始查詢接下來三項

select * from student desc limit 2,3; #從第二項開始 擷取後面的三項

select class.c_name,student.stuname from class,student; # 笛卡爾積

select class.c_name,student.stuname from class,student where class.c_no=student.`

-- 聯合查詢

-- 內連線 找到class 班號和student的班號相同的記錄

-- inner join

select class.c_name,student.

`stuname`

from class inner

join student

on class.c_no=student.

`c_number`

;# 查詢student 班級編號和 class班級編號一致的內容

# 不存在學生的班級 不存在班級的學生 都不會查詢出來

根據右表為基礎(student中的所有學生) 可以查詢沒有班級的同學

select class.c_name,student.

`stuname`

from class right

join student

on class.c_no=student.

`c_number`

;

根據左表 (所有的班級) 可以查詢沒有學生的班級

select class.c_name,student.

`stuname`

from class left

join student

on class.c_no=student.

`c_number`

;

from 表1 inner join 表2 on 條件1 inner join 表3 on 條件…

一般連線查詢 **不需要連線太多 **設計部分有問題

select class.classname,student.stuname,subject.name

from `subject` left join class on subject.classid=class.id

left join student on class.id=student.classno;

別名 as 或者空格 如果多個表 欄位名相同 可以用別名區分

或者用表名區分

select c_no as 班號, c_name 班名 

from class;

select tz29.class.c_no, tz29.class.c_name

from tz29.class;

DQL資料查詢語言(聯合查詢)

關鍵字 union 聯合,合併 將多條語句的查詢結果合併成乙個結果 案例一 查詢部門編號大於90或郵箱中包含a的員工資訊 select from employees where department id 90or email like a 使用union聯合查詢 select from emplo...

DQL資料查詢語句舉例

select 列名 from 表名 select sal 300,ename,deptno from emp 加入運算子 select 2 2 3 from dual 關於空值的處理,空值和數值運算的結果還是空值 列出員工每月的總收入 工資 獎金 select ename,sal comm from...

oracle資料庫的資料查詢語言DQl

一資料查詢語言 資料查詢語言用於對資料庫的檢索,其基本結構為 select 字段列表 from 表名 where 查詢條件 sql語言是大小寫不敏感,可以寫在一行或者多行,關鍵字不能被縮寫也不能別分行,個子句一般要分行寫。1.sql的算術運算子 優先順序相同時,按從左到右的順序執行,括號可以改變優先...