/** 本貼使用MySQL數據庫 **/
WHERE子句可以實現關系代數中的選擇運算,用於查詢滿足選擇條件的元組,常用的查詢條件有:
- 1.比較運算:>,>=,<,<=,=,<>(或!=);
- 2.范圍查詢:BETWEEN...AND;
- 3.集合查詢:IN;
- 4.空值查詢:IS NULL;
- 5.字符串匹配查詢:LIKE;
- 6.邏輯查詢:AND,OR,NOT。
下面我們創建一個簡單的“student”學生表用於詳細說明這些查詢。
1 create table student( 2 studentNo VARCHAR(10) NOT NULL , 3 studentName VARCHAR(20) NOT NULL , 4 sex char(2) NULL, 5 classNo int NULL, 6 CONSTRAINT studentPK PRIMARY KEY (studentNo) 7 )
接下來我們插入幾條簡單數據。
insert into student values ('001','小工','男','1'), ('002','小后','男','1'), ('021','小哄','男','2'), ('022','小紅','女','1'), ('031','小民','女','2'), ('045','小明','女','1'), ('111','小海','男','1'), ('024','小哈','女','12')
1. 比較運算
1.1 >運算符,運行以下sql語句
select * from student where studentNo > 1
查詢studentNo大於數值1的所有學生,顯示結果如下
如果我使用的sql語句修改為
select * from student where studentNo > '1'
顯示的結果為
總結:
studentNo被定義為varchar類型。前者為數值之間的比較,查詢結果為所有studentNo數值大於1的數據;后者為字符串之間的比較,查詢結果為所有studentNo字符串大於‘1’的數據。
以上是對字符類型的字段進行比較,接下來對整型類型的字段classNo進行比較,運行以下sql語句
select * from student where classNo > 2
查詢結果為
修改sql語句為:
select * from student where classNo > '2'
所得到的查詢結果為
總結:以上的兩次查詢結果一樣,說明整型類型的字段之間的比較都是數值之間的比較,即是查詢條件為大於某個字符串,也是進行數值之間的比較。
(Continue...)