欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql查詢?cè)趺慈》?mysql 取反

mysql中運(yùn)算符有幾種

mysql中有4類運(yùn)算符,它們是:

成都創(chuàng)新互聯(lián)是一家專業(yè)提供鶴崗企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都做網(wǎng)站、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為鶴崗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

算術(shù)運(yùn)算符

比較運(yùn)算符

邏輯運(yùn)算符

位操作運(yùn)算符

算術(shù)操作符

算術(shù)操作符是SQL中最基本的操作運(yùn)算符,主要有一下幾種運(yùn)算符:

+(加)、 -(減)、 *(乘)、 /(除)、 %(求余或者模)

比較運(yùn)算符

一個(gè)比較運(yùn)算符的結(jié)果總是1,0或者是NULL。MySQL中的比較運(yùn)算符有:

=、=、 (!=)、=、=、、IS NULL、IS NOT NULL、LEAST、GREATEST、BETWEEN . . . AND. . . 、ISNULL、IN、NOT IN、LIKE、REGEXP

邏輯運(yùn)算符

邏輯運(yùn)算符的求值所得結(jié)果均為TRUE、FALSE或NULL。

邏輯運(yùn)算符有:

NOT 或者 !

AND 或者

OR 或者 ||

XOR(異或)

位運(yùn)算符

位運(yùn)算符是用來(lái)對(duì)二進(jìn)制字節(jié)中的位進(jìn)行測(cè)試、移位或者測(cè)試處理。位運(yùn)算符有:

位或(|)

位與()

位異或(^ )

位左移()

位右移()

位取反(~)

mysql怎么讓查詢的對(duì)象反序排列

首先你得告訴我,你的正序條件是什么!比如說(shuō)你的正序條件是name這個(gè)字段,也就是說(shuō),name字段進(jìn)行正序排列,如果name字段存儲(chǔ)的數(shù)據(jù)分別為aaa,bbb,ccc。那么按照name字段正序排列的話sql語(yǔ)句就是這樣的:select * from xxx order by name asc

如果按照name反向排列的話就是這樣的:select * from xxx order by name desc

2019-05-05

在MySQL中 select 表示查詢,select可以單獨(dú)成句,是MySQL的方言

比如查詢系統(tǒng)時(shí)間: select now();

now() 表示當(dāng)前系統(tǒng)時(shí)間 MySQL特有的一個(gè)方法

在Oracle中系統(tǒng)時(shí)間: select sysdate from dual; 是Oracle的方言

dual表時(shí)Oracle特有的一張表,主要目的就是為了補(bǔ)充SQL語(yǔ)句中的from**

在Oracle的語(yǔ)法中,select之后必須要有from

MySQL中有DUAL關(guān)鍵字,所以SELECT NOW()也可以寫作SELECT NOW() FROM DUAL;

但MySQL中的DUAL不是表 執(zhí)行SELECT * FROM DUAL;會(huì)報(bào)錯(cuò),而Oracle中DUAL是一張實(shí)際存在的表,執(zhí)行SELECT * FROM DUAL;會(huì)查詢一個(gè)叫做DUMMY的結(jié)果

標(biāo)準(zhǔn)語(yǔ)法:select...from...

語(yǔ)法格式:

開(kāi)發(fā)中建議以查詢特定列的方式進(jìn)行查詢,前者的執(zhí)行效率更快

示例1:查詢員工編號(hào),員工姓名,年薪 (sal表示的是月薪)

注意年薪的表頭顯示的是“sal*12”

可以使用as或者空格,為查詢結(jié)果的列起別名

當(dāng)數(shù)據(jù)運(yùn)算中出現(xiàn)null值時(shí),結(jié)果一定是null

MySQL解決問(wèn)題是用ifnull()函數(shù)

Oracle解決問(wèn)題是用nvl()函數(shù)

ifnull(expr1,expr2)

nvl(expr1,expr2)

當(dāng)expr1的結(jié)果是null時(shí),使用expr2的結(jié)果

當(dāng)expr1的結(jié)果不是null時(shí),使用expr1的結(jié)果

示例2: 查詢員工姓名和員工的月收入(月薪+獎(jiǎng)金)

此時(shí)原始數(shù)據(jù)中如果comm中有null值,查詢結(jié)果不正確

使用distinct去掉查詢結(jié)果中的重復(fù)記錄

基礎(chǔ)語(yǔ)法

查詢列1,列2直至列n的數(shù)據(jù),并去掉其中重復(fù)的組合

select ... from...where 查詢條件

示例3:查詢所有在部門編號(hào)是1工作的員工記錄

的查詢結(jié)果是一樣的,數(shù)據(jù)中Tom,tom,TOM,tOm...等都會(huì)被查詢出

如果需要嚴(yán)格控制大小寫字母敏感,查詢語(yǔ)句需要在列前加 binary

這樣只能查詢出TOM

X AND Y 必須同時(shí)滿足條件X和條件Y

示例4: 查詢?cè)?號(hào)部門工作,且月薪不低于2500的員工信息

示例5: 查詢?cè)?號(hào)部門工作,且月薪不低于2500的保潔信息

X OR Y 滿足條件X或條件Y其一即可

示例6:查詢?cè)?號(hào)部門或2號(hào)部門工作的員工信息

NOT(X) 不是條件X

主要使用在特殊的比較運(yùn)算符中

AND語(yǔ)句的優(yōu)先級(jí)高于OR

如果使用括號(hào)控制優(yōu)先級(jí)

SQL注入問(wèn)題:利用了AND和OR優(yōu)先級(jí)破壞系統(tǒng)中的SQL語(yǔ)句邏輯

正常訪問(wèn)邏輯,用戶輸入admin和123 正確賬號(hào)和密碼可以登錄

SQL注入通過(guò)輸入正確的賬號(hào),和一個(gè)帶有or邏輯的SQL片段將原來(lái)邏輯破壞掉,進(jìn)行非法登錄

輸入的是 賬號(hào):admin 密碼:' OR 1=1 AND lname='admin

這個(gè)SQL語(yǔ)句就變成了

lname = 'admin' AND lpass = '' -- X 假 查不出結(jié)果

1=1 AND lname='admin' -- Y 真 查出admin的數(shù)據(jù)

X OR Y -- 真 驗(yàn)證通過(guò) 訪問(wèn)了admin的賬號(hào)

X between A and B 表示X在[A,B]之間

相當(dāng)于 X = A and X = B

一般情況下: B應(yīng)該大于等于A

如果B小于A語(yǔ)法也沒(méi)錯(cuò)誤,邏輯上沖突,不會(huì)由查詢結(jié)果

示例1:查詢?cè)滦皆赱2000,2500]區(qū)間的員工信息

示例2:查詢?cè)?0號(hào)部門入職日期在1994年的員工信息

用于查詢數(shù)據(jù)時(shí)進(jìn)行模糊匹配(模糊查詢),只適用于文本查詢

語(yǔ)法規(guī)則

-ename中含有字符% 使用\做為轉(zhuǎn)義字符

將'%'看做一個(gè)%字符

MySQL中

Oracle中

相當(dāng)于or

語(yǔ)法規(guī)則

相當(dāng)于

示例3:查詢?cè)?0號(hào)部門或20部門工作,且職位是CLERK的員工信息

示例4:查詢員工SMITH和AMY的員工信息

示例5:查詢?cè)?1992-01-15'或'1994-12-22'或'1994-07-05'入職的員工信息

如果in中的數(shù)據(jù)有null值,null值不會(huì)被查詢出

專門針對(duì)null值進(jìn)行篩選

示例6: 查詢所有獎(jiǎng)金是null的員工信息

不能使用comm = null查詢,這樣查詢沒(méi)有結(jié)果

not表示特殊比較運(yùn)算符邏輯取反

示例7:查詢?cè)滦?不 在[2000,2500]區(qū)間的員工信息

示例8:查詢員工名字中 不 包含字母A的員工信息

示例9:查詢 不 在10號(hào)或20號(hào)部門工作的,職位是CLERK的員工信息

示例10:查詢獎(jiǎng)金 不 是null的員工信息

排序是對(duì) 查詢結(jié)果 進(jìn)行排序顯示

排序規(guī)則

select...from...where... order by...

示例11:查詢所有的員工信息,按照月薪升序排序。

asc表示升序,排序默認(rèn)就是升序,asc可以省略。

示例12:查詢所有的員工信息,按照月薪降序排序。

desc表示降序

在列1的排序基礎(chǔ)上,進(jìn)行列2排序,.... 在之前所有排序基礎(chǔ)上進(jìn)行列n的排序

示例13 : 查詢所有員工信息,按照部門編號(hào)升序排序,按照月薪降序排序

先按照deptno進(jìn)行升序排序,在deptno排序的基礎(chǔ)上,再進(jìn)行sal的降序排序

示例14:查詢20號(hào)部門員工姓名,月薪,獎(jiǎng)金,月收入,按照月收入的降序排序

可以使用列別名

按照查詢結(jié)果的第3列進(jìn)行升序排序,在排序基礎(chǔ)上以第2列進(jìn)行降序排序

實(shí)際:deptno升序后,sal降序

編寫順序: select...from...where...order by...

執(zhí)行順序: from...where...select...order by...

mysql快速查詢數(shù)據(jù)庫(kù)中有多少條數(shù)據(jù)

今天主要復(fù)習(xí)了MySQL的一些簡(jiǎn)單語(yǔ)句,可總結(jié):

mysql 統(tǒng)計(jì) 表的數(shù)量:SELECT COUNT(1) FROM information_schema.TABLES WHERE TABLE_SCHEMA = '你的數(shù)據(jù)庫(kù)';

有時(shí)候需要查詢MySQL數(shù)據(jù)庫(kù)中各個(gè)表大小,該如何操作呢?

MySQL中有一個(gè)名為 information_schema 的數(shù)據(jù)庫(kù),在該庫(kù)中有一個(gè) TABLES 表,這個(gè)表主要字段分別是:

TABLE_SCHEMA : 數(shù)據(jù)庫(kù)名

TABLE_NAME:表名

ENGINE:所使用的存儲(chǔ)引擎

TABLES_ROWS:記錄數(shù)

DATA_LENGTH:數(shù)據(jù)大小

INDEX_LENGTH:索引大小

use information_schema;

SELECT

TABLE_NAME,

(DATA_LENGTH/1024/1024) as DataM ,

(INDEX_LENGTH/1024/1024) as IndexM,

((DATA_LENGTH+INDEX_LENGTH)/1024/1024) as AllM,

TABLE_ROWS

FROM

TABLES

WHERE

TABLE_SCHEMA = '你的數(shù)據(jù)庫(kù)';

MySQL的一些基礎(chǔ)語(yǔ)句:

行是記錄 列是字段

創(chuàng)建庫(kù)

CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫(kù)名 [參數(shù)[ 參數(shù)] [ 參數(shù)]...];

參數(shù):

CHARACTER SET 碼表名

COLLATE 校對(duì)規(guī)則名, 詳見(jiàn)文檔10.10.1

顯示庫(kù)

SHOW DATABASES;

顯示數(shù)據(jù)庫(kù)創(chuàng)建語(yǔ)句

SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名;

修改庫(kù)

ALTER DATABASE 數(shù)據(jù)庫(kù)名[ 參數(shù)[ 參數(shù)][ 參數(shù)]...];

注意: 不能改數(shù)據(jù)庫(kù)的名字

刪除庫(kù)

DROP DATABASE [IF EXISTS] 數(shù)據(jù)庫(kù)名;

操作表之前使用需要先確定使用哪個(gè)數(shù)據(jù)庫(kù)

USE 數(shù)據(jù)庫(kù)名

創(chuàng)建表

CREATE TABLE 表名(列名 類型[,列名 類型][,列名 類型]...);

查看所有表

SHOW TABLES;

查看表的創(chuàng)建語(yǔ)句

SHOW CREATE TABLE 表名;

顯示表結(jié)構(gòu)

DESC 表名;

修改表名

RENAME TABLE 原表名 TO 新表名;

修改字符集

ALTER TABLE 表名 CHARACTER SET 字符集名;

刪除表

DROP TABLE 表名;

追加列

ALTER TABLE 表名 ADD 列名 類型[,列名 類型][,列名 類型]...;

修改列類型

ALTER TABLE 表名 MODIFY 列名 類型[,列名 類型][,列名 類型]...;

修改列

ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 類型;

刪除列

ALTER TABLE 表名 DROP 列名;

插入語(yǔ)法:

INSERT INTO 表名[(列名[,列名]...)] VALUES(值[,值]...);

注意事項(xiàng):

插入值類型必須與對(duì)應(yīng)列的數(shù)據(jù)類型一致

數(shù)據(jù)不能超出長(zhǎng)度

插入值得為之必須與列名順序一致

字符和日期數(shù)據(jù)要放在單引號(hào)中

插入空值使用null

如果不指定插入哪一列, 就是插入所有列

中文數(shù)據(jù)

由于默認(rèn)碼表是utf8, 而cmd.exe的碼表是gbk, 在插入中文數(shù)據(jù)的時(shí)候會(huì)報(bào)錯(cuò), 所以我們需要修改客戶端碼表

先查看系統(tǒng)變量: SHOW VARIABLES LIKE 'character%';

修改客戶端碼表: SET character_set_client=gbk;

修改輸出數(shù)據(jù)的碼表: SET character_set_results=gbk;

修改語(yǔ)法

UPDATE 表名 SET 列名=值[,列名=值]...[WHERE 條件語(yǔ)句];

注意事項(xiàng)

WHERE子句選擇滿足條件的行進(jìn)行更新, 如果不寫, 則更新所有行

刪除語(yǔ)法

DELETE FROM 表名 [where 條件語(yǔ)句]

注意事項(xiàng)

如果不加where子句, 將刪除表中所有記錄

delete只能用作刪除行, 不能刪除某一列的值, 需要用update

在delete和update的時(shí)候需要注意表與表之間的關(guān)聯(lián)關(guān)系

刪除表中所有數(shù)據(jù)可以使用: TRANCATE 表名, 這種方式會(huì)刪除舊表重新創(chuàng)建, 在數(shù)據(jù)較多的時(shí)候使用

備份數(shù)據(jù)庫(kù)

輸入quit退出mysql, 在cmd.exe中輸入:

mysqldump –u用戶名 –p密碼 數(shù)據(jù)庫(kù)名 文件名

恢復(fù)數(shù)據(jù)庫(kù)

進(jìn)入mysql.exe之后, 使用數(shù)據(jù)庫(kù)之后

source 文件名

操作數(shù)據(jù)(查詢)

DISTINCT語(yǔ)法

SELECT [DISTINCT] 列名[, 列名]... FROM 表名

注意事項(xiàng)

*可以替代列名, 表示所有列, 但是通常我們?yōu)榱颂岣叽a的可讀性, 不使用*

DISTINCT為過(guò)濾重復(fù)記錄

如果DISTINCT后面跟多列, 是過(guò)濾掉多列合并之后的重復(fù)

列名表達(dá)式——語(yǔ)法

SELECT 列名|表達(dá)式[,列名|表達(dá)式]... FROM 表名

注意事項(xiàng)

表達(dá)式只是顯示時(shí)起作用, 不會(huì)改變數(shù)據(jù)庫(kù)中的值

AS——

SELECT 列名 AS 別名 FROM 表名

注意事項(xiàng)

起別名時(shí)AS可以省略

不會(huì)改變數(shù)據(jù)庫(kù)中的值

WHERE——

語(yǔ)法

SELECT 列名 FROM 表名 [WHERE 條件語(yǔ)句]

WHERE子句中的運(yùn)算符

比較運(yùn)算符

, , =, =, =,

注意不等于和Java中不同, 是

BETWEEN ... AND ...

某一區(qū)間內(nèi)的值, 從 ... 到 ...

IN(列表)

在列表之中, 例: in(1,2,3) 代表1或2或3

LIKE(表達(dá)式)

模糊查詢, %代表多個(gè)字符, _代表單個(gè)字符

IS NULL

判斷是否為NULL

邏輯運(yùn)算符

AND

與, 兩邊都為TRUE結(jié)果為TRUE

OR ||

或, 一邊為TRUE結(jié)果就為TRUE

NOT !

非, 將表達(dá)式結(jié)果取反

ORDER BY——

語(yǔ)法

SELECT 列名 FROM 表名 ORDER BY 列名 ASC|DESC;

注意事項(xiàng)

ORDER BY 指定排序的列名可以是表中的列名, 也可以是SELECT語(yǔ)句后面起的別名

ASC為升序, DESC為降序

ORDER BY應(yīng)在查詢語(yǔ)句的結(jié)尾

COUNT函數(shù)——

語(yǔ)法

SELECT COUNT(*)|COUNT(列名) from 表名 [WHERE 條件語(yǔ)句]

注意事項(xiàng)

COUNT(列名)的方式是統(tǒng)計(jì)指定列中有多少條記錄, 不包括值為NULL的

COUNT(*)則是統(tǒng)計(jì)表中有多少條數(shù)據(jù)

COUNT(DISTINCT 列名) 統(tǒng)計(jì)不重復(fù)的記錄數(shù)

如果加上WHERE子句, 則是統(tǒng)計(jì)滿足條件的記錄

MySQL必知必會(huì) 第7-9章

在第六章介紹的所有 WHERE 子句在過(guò)濾時(shí),使用的都是單一的條件。為了進(jìn)行更強(qiáng)的過(guò)濾控制,MySQL允許給出多個(gè)WHERE子句,并通過(guò) AND 或 OR 操作符的方式組合使用。

AND 操作符可以使用對(duì)多列的條件進(jìn)行累加過(guò)濾。

OR操作符可以使用對(duì)多列的條件進(jìn)行累加過(guò)濾。

WHERE 子句可包含任意數(shù)目的 AND 和 OR 操作符。但是 AND 的優(yōu)先級(jí)比 OR 高,應(yīng)使用適當(dāng)?shù)膱A括號(hào)分組操作符。

注意: 任何時(shí)候都不應(yīng)該過(guò)分依賴默認(rèn)計(jì)算次序,使用圓括號(hào)可以增加可讀性,消除歧義。

IN 操作符用來(lái)指定條件范圍,范圍中每個(gè)條件都可以進(jìn)行匹配。 IN 的合法值由逗號(hào)分隔,并全部括在圓括號(hào)中。

使用 IN 的優(yōu)點(diǎn)為:

WHERE子句中的NOT操作符有且只有一個(gè)功能,就是否定它之后的任何條件。

注意: MySQL支持使用NOT對(duì)IN、BETWEEN和EXISTS子句取反,這與其他大多數(shù)DBMS允許使用NOT對(duì)各種條件取反有很大區(qū)別。

之前介紹的都是針對(duì)已知值的過(guò)濾。而對(duì)進(jìn)行未知內(nèi)容的匹配,可以使用通配符創(chuàng)建比較數(shù)據(jù)的搜索模式來(lái)完成。通配符的匹配,需要通過(guò)LIKE操作符指示MySQL完成。

% 表示任何字符出現(xiàn)任意次。例如,為了找到所有以 jet 起頭的產(chǎn)品,可使用以下 SELECT 語(yǔ)句

注意:

下劃線( _ )通配符只匹配單個(gè)字符而不是多個(gè)字符。

通配符使用技巧:

正則表達(dá)式是用來(lái)匹配文本的特殊串(字符集合),所有種類的程序設(shè)計(jì)語(yǔ)言、文本編輯器、操作系統(tǒng)等都支持正則表達(dá)式。

MySQL中的正則表達(dá)式僅是正則表達(dá)式的一個(gè)子集。

為搜索兩個(gè)串之一,使用( | )。

如果想匹配特定的單一字符,可以使用[]將一組指定的內(nèi)容括起來(lái)。

注意:

集合可用來(lái)定義要匹配一個(gè)或多個(gè)字符,此時(shí)可以使用 - 來(lái)定義一個(gè)范圍,例如 [0-9] 表示數(shù)字0到9, [a-z] 表示字母a到z。

正則表達(dá)式語(yǔ)句由具有特定含義的特殊字符構(gòu)成。例如 | 或 - 等。如果要表示一些特殊的字母,如含 . 的值,則應(yīng)該使用 \\\ 為前導(dǎo)。 \\\- 表示查找 - , \\\. 表示查找 . 。

注意:

為方便常見(jiàn)字符集的查找,可以使用預(yù)定義的字符集。稱為字符類。如下圖所示:

目前為止使用的所有正則表達(dá)式都試圖匹配單詞出現(xiàn)。但有時(shí)需要對(duì)匹配的數(shù)目進(jìn)行更強(qiáng)的控制,此時(shí)可以使用下列正則表達(dá)式重復(fù)元字符來(lái)完成。

注意: 使用正則表達(dá)式時(shí),編寫某個(gè)特定的表達(dá)式幾乎總是有多種方法。

目前為止,所有例子都是匹配一個(gè)串中任意位置的文本,為了匹配特定位置的文本,需要使用定位符。

注意:

網(wǎng)站名稱:mysql查詢?cè)趺慈》?mysql 取反
當(dāng)前地址:http://chinadenli.net/article8/doddgop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站建設(shè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)企業(yè)建站、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化