通配符
用于代替字符串中的其他字符。
%
:代替0个或多个字符_
:代替一个字符[charlist]
:字符列中的任何单一字符[^charlist]
或[!charlist]
:不在字符列中的任何单一字符
搜索不以A或B或N开头的人:
SELECT * FROM student
WHERE name LIKE '[!ABN]%';
LIKE
用于在where语句中搜索列的指定模式。
搜索name为A开头的所有学生
SELECT * FROM student WHERE name LIKE 'A%';
选取 name 不包含模式 “pp” 的所有学生:
SELECT * FROM student WHERE name NOT LIKE '%pp%';
IN
用于在where字句中规定多个值。
选取name为apple或banana的值:
SELECT * FROM student
WHERE name IN ('apple', 'banana');
BETWEEN
用于选取介于两个值之间的数据范围内的值。
选取age在6到18的值:
SELECT * FROM student WHERE age BETWEEN 6 AND 18;
选取日期不在1997-01-20和1997-10-05范围的值
SELECT * FROM student WHERE birthday NOT BETWEEN '1997-01-20' AND '1997-10-05';
注意:不同数据库中的边界处理可能不相同。
别名
用于为表名称或列名称指定别名。
SELECT name AS n, age AS a
FROM student;
将多个列组合在一起输出
SELECT name, CONCAT(age, ',', sex, ',', country) AS stu_info FROM student;
超过一个表的查询
SELECT s.name, s.age, t.name, t.assess FROM student AS s, teacher AS t WHERE s.teacher = t.name and s.country = 'CHINA';
JOIN
基于表之间的共同字段,把两个或多个表结合。
- INNER JOIN: 表中至少有一个匹配,则返回行
- LEFT JOIN: 即使右表中没有匹配,也从左表中返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表存在匹配,则返回行
UNION
用于合并两个或多个SELECT语句的结果集,列的数量,数据类型,顺序必须相同。
SELECT age FROM student
UNION
SELECT age FROM teacher
ORDER BY age;
允许重复值使用UNION ALL。
SELECT INTO
从一个表中复制数据插入到一个新表中。
SELECT *
INTO studentBackUp
FROM student;
MySQL不支持
INSERT INTO SELECT
从一个表中复制数据插入到一个已存在的表中。
INSERT INTO studentBackUp
SELECT * FROM student;
CREATE DATABASE
用于创建数据库。
CREATE DATABASE mydatabase;
CREATE TABLE
用于创建表。
CREATE TABLE student
(
Id int,
Name varchar(255),
Age int,
Address varchar(255)
)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!