细枝末节
1. "_"表示任意一个字符
2. "%"表示任意多个任意字符,包含0个
3. "="不可以判断NULL值,"<=>"可以比较NULL值
4. "<>"不可以判断NULL值
5. 转义字符"\"可以在SQL中使用
6.ESCAPE关键字可以指定转义字符
7.BETWEENAND包含两个临界值,且临界值不能颠倒
8.IN列表中的值类型必须一致
格式
/* 从指定表中按条件查询指定字段信息 */SELECT字段名FROM表名WHERE条件
执行顺序
FROM==> WHERE ==> SELECT
按条件表达式筛选
简单条件运算符
大于 >
小于 <
等于 = <=>
不等于 <> !=
大于等于 >=
小于等于 <=
查询id大于10的用户名
SELECTnameFROMmytableWHEREid>10;
查询age小于30的用户id
SELECTidFROMmytableWHEREage<30;
查询name不等于Mike的用户age
SELECTageFROMmytableWHEREname<>'Mike';
按逻辑表达式筛选
逻辑运算符
与 & and
或 | or
非 ! not
查询age在18-30之间的用户的id和name
SELECTid, nameFROMmytableWHEREage>=18ANDage<=30
查询salary不在6000-8000之间,或小于3000的用户id
/* 第一种写法 */SELECTidFROMmytableWHEREsalary<6000ORsalary>8000ORsalary<3000;
/* 第二种写法 */SELECTidFROMmytableWHERENOT(salary>=6000ANDsalary<=8000) ORsalary<3000;
模糊查询
运算符
LIKE
BETWEENAND
IN
ISNULL
ISNOTNULL
查询name中包含字母a的用户信息
SELECT*FROMmytableWHEREnameLIKE'%a%';
查询name第三个字符为c,第5个为d的用户id和age
SELECTid, ageFROMmytableWHEREnameLIKE'__c_d%';
查询name第三个字符为"_"的用户id
/* 第一种写法 */SELECTidFROMmytableWHEREnameLIKE'__\_%'; /* 第二种写法 */SELECTidFROMmytableWHEREnameLIKE'__$_%'ESCAPE'$';
查询age在18-30之间的用户信息
SELECT*FROMmytableWHEREageBETWEEN18AND30;
查询age为18和20的用户信息
SELECT*FROMmytableWHEREageIN(18,20);
查询commission为NULL的用户信息
/* 第一种写法 */SELECT*FROMmytableWHEREcommissionISNULL; /* 第二种写法 */SELECT*FROMmytableWHEREcommission<=>NULL;