1.SQL SELECT TOP 子句
按要返回一定条数的查询结果
SELECT TOP number PERCENT * FROM tabel;
2. 通配符
常见的通配符有4中' %' , '_'
(1) '%' 代替一串字符
查询 table 表的 name 字段,且 name 是以李开头的数据
select name from table where name like'李%'
查询 table 表的 name 字段,且 name 是以李结尾的数据
select name from table where name like '%李'
(2) '_' 代替一个字符
查询 table 表的 name 字段,且 name 是 李_
select name from table where name like '李_'
查询 table 表的 name 字段,且 name 是 _ 洋_
select name from table where name like '_ 洋_'
3.正则表达式
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
'[charlist]','^[charlist]','[^charlist]'
(1) '[charlist]' 代替字符列中的任何一个字符
查询 table 表的 name 字段,且 name 字符串中包含 'L' 的
select name from table where name regexp '['L']'
(2) '^[charlist]' 以charlist开头的
查询 table 表的 name 字段,且 name 字符串中以 'L' 或 'G' 开头 的
select name from table where name regexp '[^LG]'
查询 table 表的 name 字段,且 name 字符串中A-F开头 的
select name from table where name regexp '[^A-F]'
(3) '[^charlist]' 不包含charlist的
查询 table 表的 name 字段,且 name 字符串中不以 'L' 或 'G' 开头 的
select name from table where name regexp '^[^LG]'
查询 table 表的 name 字段,且 name 字符不以A-F开头 的
select name from table where name regexp '^[^A-F]'
3. 查询条件是一个范围的查询
IN 操作符、BETWEEN 操作符 都是表示范围的操作符,区别是IN是确定的明确的被列举出来的,BETWEEN只需要开始和结束范围的表示就可以的。BETWEEN 语句可以包含 IN语句
(1) IN 操作符
IN 操作符允许您在 WHERE 子句中规定多个值。
语法:
SELECT name FROM table WHERE name IN (value1,value2,...);
1. 作为where条件
查询 table 表的 name 字段,且 name 字段是'小红' ,'小明'的范围内的
SELECT * FROM table WHERE name IN ('小红','小明');
(2) BETWEEN 操作符
BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。
语法:
SELECT name FROM table WHERE BETWEEN value1 AND value2;
查询 table 表的 age 字段,且 age 字段是不包括 1 - 17 范围内的
SELECT age FROM table WHERE age NOT BETWEEN 1 AND 17;
(3) BETWEEN 子句包含 IN
查询 table 表的 age 字段,且 age 字段是包括 1 - 17 范围内且name是小红' ,'小明'的
SELECT age FROM table WHERE (age BETWEEN 1 AND 17)
AND name NOT IN ('小红','小明');
4. AS 取别名
取别名的对象一般是 字段、表名、子查询结果临时表、查询多个字段作拼接成一个字段
(1) 字段取别名
SELECT age AS a FROM table
(2) 表明起别名
SELECT age FROM table AS tb
(3) 子查询结果表起别名
SELECT tb01.age FROM (
SELECT name,age FROM table01 WHERE age NOT BETWEEN 1 AND 17;
) tb01
(3) 查询多个字段作拼接成一个字段起别名
SELECT name, CONCAT(age, ', ', birthday, ', ', sex) AS information
FROM table;
5. 联表查询
join 用于把来自两个或多个表的行结合起来,LEFT JOIN、RIGHT JOIN、INNER JOIN(JOIN)、OUTER JOIN 相关的 7 种用法。
连接条件ON,连接条件的字段必须是总查询字段存在的。
语法:
SELECT name,age,sex
FROM TABLE01
JOIN (
SELECT age
FROM TABLE02
WHERE age NOT BETWEEN 1 AND 17;
)ta02
ON sex = 'man';
eg:
TABLE01、TABLE02
(1) LEFT JOIN
TABLE01每一条去 匹配TABLE02的的所有字段,有的话合并为一列取出,没有匹配的就TABLE01字段数据结合TABLE02字段为空的合并为一列输出
(2) RIGHT JOIN
TABLE02每一条去 匹配TABLE01的的所有字段,有的话合并为一列取出,没有匹配的就TABLE02字段数据结合TABLE01字段为空的合并为一列输出
(3) INNER JOIN
只返回符合条v
6.信息复制
表信息的复制语句分两种SELECT INTO和 INTO SELECT,这两个语句都可以复制表的信息,区别是,SELECT INTO是将复制的信息同时创建一个新表,复制的信息作为新表的数据插入。INTO SELECT是将复制出来的数据插入到一个已有的表中
(1) SELECT INTO