(13)where字句操作符
= 等於
<> 不等於
!= 不等於
< 小於
> 大於
>= 大於等於
BETWEEN 在指定的兩個值之間
例如:
找出學號是0007到0009之間的學生記錄(不包括0009)?
SELECT* FROM student_info WHERE stu_id BETWEEN 1001101620007 AND 1001101620009;
(14)And 操作符
為了通過不止一個列進行過濾,可使用and操作符給where字句附加條件
例如:
找出專業是“軟件工程”並且性別是男生的學生記錄?
SELECT* FROM student_info WHERE stu_sex = '男' AND stu_major = '軟件工程';
(15)OR 操作符
指示MySQL檢索匹配任一條件的行
例如:找出專業是“網絡工程”和“電子信息”的所有學生記錄?
SELECT* FROM student_info WHERE stu_major = '電子信息' OR stu_major = '網絡工程';
找出“網絡工程”和“軟件工程”兩個專業所有男生的學生記錄?
SELECT* FROM student_info WHERE (stu_major = '網絡工程' OR stu_major = '軟件工程') AND stu_sex = '男';
(16)IN 操作符
是用來指定條件范圍,范圍中的每個條件都可以進行匹配;IN取合法值的由逗號分隔的清單,全都括在圓括號內。
例如:
找出特定的三個學號的學生記錄?
SELECT* FROM student_info WHERE stu_id IN(1001101620007,1001101650018,1001101650019);
(17)NOT 操作符作用是否定它之後所跟的任何條件
例如:
找出不是“網絡工程”和“軟件工程”這兩個專業的學生記錄?
SELECT* FROM student_info WHERE stu_major NOT IN ('軟件工程','網絡工程');
(18)LIKE 操作符
用來匹配值的一部分的特殊字符
% 通配符 表示任何字符出現的任意次數
_ 通配符 表示任何字符出現有且僅有一次
例如:
找出專業名稱後兩個字是“工程”的所有學生記錄?
SELECT * FROM student_info WHERE stu_major LIKE'%工程';
找出姓“王”且名字是兩個字的學生記錄?
SELECT* FROM student_info WHERE stu_name LIKE '王_';
附錄:創建例子表的語句
CREATETABLE customers(
cust_id int NOT NULL AUTO_INCREMENT,
cust_name char(50) NOT NULL,
cust_address char(50) NULL,
cust_city char(50) NULL,
cust_state char(5) NULL,
cust_zip char(10) NULL,
cust_country char(50) NULL,
cust_contact char(50) NULL,
cust_email char(255) NULL,
PRIMARY KEY (cust_id)
)
CREATETABLE orders(
order_num int NOT NULL AUTO_INCREMENT,
order_date datetime NOT NULL,
cust_id int NOT NULL,
PRIMARY KEY (order_num)
)
CREATETABLE vendors(
vend_id int NOT NULL AUTO_INCREMENT,
vend_name char(50) NOT NULL,
vend_address char(50) NULL,
vend_city char(50) NULL,
vend_state char(5) NULL,
vend_zip char(10) NULL,
vend_country char(50) NULL,
PRIMARY KEY (vend_id)
)
CREATETABLE orderitems(
order_num int NOT NULL,
order_item int NOT NULL,
prod_id char(10) NOT NULL,
quantity int NOT NULL,
item_price decimal(8,2) NOT NULL,
PRIMARY KEY (order_num,order_item)
)