日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单查询(DQL)

發布時間:2024/9/27 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单查询(DQL) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單查詢(DQL)

1. 查詢一個字段?

? select 字段名 form 表名;

? 其中要注意:

? select 和 form 都是關鍵字

? 字段名和表名都是標識符

強調:

所有SQL語句都是“;”結尾

2.查詢兩個字段,或者多個字段怎么辦?

? 使用“,”號隔開

? select 字段名,字段名 form 表名;

3.查詢所有字段怎么辦?

方法一:(開發用)

? 把每個字段都寫上

方法二:

? 用*

? select * form 表名;

這種方法的缺點:

  • 效率低

  • 可讀性差

    在實際開發中不建議,可以自己玩沒問題

    你可以在DOS命令窗口想要快速的看一看全表數據可以采用這一種方式

  • 4. 給查詢的列起別名?

    使用as關鍵字

    例如: mysql>select deptno,dname as deptname from dept;

    注意:只是將顯示的查詢結果列名顯示為deptname,原來表的列名還是:dname

    記住:select語句只是查詢,而不會進行修改操作

    as可以省略

    例如: mysql>select deptno,dname deptname from dept;

    假設起別名的時候,別名里面有空格,怎么辦

    例如: mysql>select deptno,dname dept name from dept;

    ? DBMS看到這樣的語句,進行SQL語句的編譯,不合語法,編譯報錯。

    解決方法

    別名里面有空格的時候加上’’

    例如:例如: mysql>select dname ‘dept name’ from dept;

    注意:在所有的數據庫當中,字符串統一使用單引號括起來,

    單引號是標準的,雙引號在oracle數據庫中用不了。但是在mysql中可以使用

    5. 計算年新

    例如:mysql>select ename,sal*12 from emp;//結論:字段可以使用數學表達式!

    起別名:mysql>select ename,sal*12 as yearsal from emp;

    起別名中文:mysql>select ename,sal*12 as ‘年新’ from emp;

    條件查詢

    1.什么是條件查詢?

    不是將表中所有數據都查出來,是查詢出來符合條件的。

    語法格式:

    ? select

    ? 字段1,字段2,字段3…

    ? from

    ? 表名

    ? where

    ? 條件:

    2.都有哪些條件?

    =等于

    查詢工資等于800的員工姓名和編號?

    ? select empno,ename form emp where sal =800;

    <>或!=不等于

    查詢工資不等于800的員工姓名和編號?

    ? select empno,ename form emp where sal !=800;

    ? select empno,ename form emp where sal <>800;

    <小于

    查詢工資小于2000的員工姓名和編號?

    ? select empno.ename from emp where sal < 2000;

    <=小于等于

    查詢工資小于等于2000的員工姓名和編號?

    ? select empno.ename from emp where sal <= 2000;

    >大于

    ? 查詢工資大于2000的員工姓名和編號?

    ? select empno.ename from emp where sal > 2000;

    >=大于等于

    ? 查詢工資大于等于2000的員工姓名和編號?

    ? select empno.ename from emp where sal >= 2000;

    between…and…兩個值之間,等同于>=and<=

    ? 查詢工資在2450和3000之間的員工信息?包括2450和3000

    ? 第一種方式:>=and<=(and是并且的意思)

    ? select emono,ename,sal from emp were sal>= 2450 and sal<=3000;

    ? 第二種方式:between…and…

    ? select

    ? emp

    ? where

    ? sal between 2450 and 3000;

    ? 注意:使用between and的時候,必須遵守左小右大。

    ? between and 是閉區間,包括兩端的值。

    is null為null(is not null 不為空)

    ? 查詢哪些員工的津貼/補助為null?

    ? select empno,ename,sql,comm from emp where comm is null;

    ? 注意:在數據庫當中null不能使用等號進行衡量。需要使用is null 因為

    ? 數據庫中的null代表什么也沒有,它不是一個值,所以不能使用等號衡量。

    ? 查詢哪些員工的津貼/補助不為null?

    ? select empno,ename,sql,comm from emp where comm is not null;

    and 并且

    or或者

    ? 查詢工作崗位是MANAGER和SALESMAN的員工

    ? select empno,ename,job from emp where job=‘MANAGER’;

    ? select empno,ename,job from emp where job=‘SALESMAN’;

    ? select

    ? empno,ename,job

    ? from

    ? emp

    ? where

    ? job=‘SALESMAN’ or job=‘MANAGER’;

    ?

    ? and和or同時出現的話,有優先級問題嗎?

    ? 查詢工資大于2500,并且部門編號為10或20部門的員工?

    ? select

    ? *

    ? from

    ? emp

    ? where

    ? sal>2500 and deptno =10 or deptno=20;

    ? 分析以上語句的問題?

    ? and優先級比or高。

    ? 以上語句會先執行and,然后執行or.

    ? 以上這個語句表示什么含義?

    ? 找出部門工資大于2500并且部門編號為10的員工,或者20部門所有的員工找出來。

    ? select

    ? *

    ? from

    ? emp

    ? where

    ? sal>2500 and (deptno =10 or deptno=20);

    ? and和or同時出現,and優先級較高。如果想要or先執行需要加()

    ? 以后在開發中,如果不確定優先級,就加()就行了

    in包含,相當于多個or(not in 不在這個范圍中)

    ? 查詢工作崗位是MANAGER和SALESMAN的員工?

    ? select empno,ename,job from emp where job=‘MANAGER’ or job =‘SALESMAN’;

    ? select empno,ename,job from emp where job in(‘MANAGER’ , ‘SALESMAN’);

    注意:in不是一個區間。in后面跟的是具體的值。

    ? 查詢工資800和5000的員工信息?

    ? select ename,sal from emp where sal=800 or sal=5000;

    ? select ename,sal from emp where sal in (800,5000);

    ? //not in 表示不在這幾個值當中的數據

    ? select ename,sal from emp where sal not in (800,5000);

    not 可以取非,主要用在is 或 in 中

    ? is null

    ? is not null

    ? in

    ? not in

    like

    ? 稱為模糊查詢,支持%或下劃線匹配

    ? %匹配任意多個字符

    ? 下劃線:任意一個字符。

    ? (%是一個特殊的符合,_也是一個特殊符合)

    ? 找出名字中含有o的?

    ? select ename from emp where ename like ‘%o%’;

    ? 找出名字以T結尾的?

    ? select ename from emp where ename like ‘%T’;

    ? 找出名字以K開始的?

    ? select ename form emp where enam like ‘K%’;

    ? 找出第二個字每是A的?

    ? select ename from emp where ename like ‘_A%’;

    ? 找出第三個字母是R的?

    ? select ename from emp where ename like ‘__R%’;

    ? t_student學生表

    ? name字段

    ? =================

    ? zhangsan

    ? lisi

    ? wangwu

    ? zhaoliu

    ? jack_son

    ? 找出名字中有"_"的?

    ? select name from t_student where name like ‘%_%’;//這樣不行。

    ? select name from t_student where name like ‘%_%’;//\轉義字符。

    總結

    以上是生活随笔為你收集整理的简单查询(DQL)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。