(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)
)