开始整理数据库的相关知识,分为6个系列。每一次总结流程如下:首先总结一个MySQL常用的数据操作方式,接着是对经典的面试试题进行实际操作。注:前面的总结不是全部的知识点,分为4-5个章节进行总结。
一、过滤数据与数据过滤
1. 过滤数据:
主要是使用SELECT语句的WHERE子句指定搜索条件
检查单个值:
SELECT prod_name,prod_price
FROM products
WHERE prod_name = 'fuses';
不匹配检查:
SELECT vend_id,prod_name
FROM products
WHERE vend_id <> 1003;
范围值检查:
SELECT prod_name,prod_price
FROM products
WHERE prod_price BETWEEN 5 AND 10;
空值检查:
SELECT prod_name
FROM products
WHERE prod_name IS NULL;
WHERE子句操作符总结:
2.数据过滤:
对WHERE子句进行组合以建立功能更强的更高级的搜索条件,主要是一些操作符的用法
AND操作符: 相当于且,同时满足
SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id = 1003 AND prod_price <= 10;
OR操作符: 匹配任一条件,而不是前部,相当于或
SELECT prod_name,prod_price
FROM products
WHERE vend_id = 1002 OR vend_id = 1003;
注意:SQL像多数语言一样,在处理OR操作符之前,优先处理AND操作符,所以,当有多个AND和OR组合时,适当的使用圆括号可以避免一些错误的情况发生。
SELECT prod_name,prod_price
FROM products
WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >=10;
-- 如果不加圆括号,就会优先计算后面的。
IN操作符: 指定条件的取值范围
SELECT prod_name,prod_price
FROM products
WHERE vend_id IN (1002,1003)
ORDER BY prod_name;
NOT操作符: 否定它之后所跟的任何条件
SELECT prod_name,prod_price
FROM products
WHERE vend_id NOT IN (1002,1003)
ORDER BY prod_name;
二、经典面试题1-15
1.首先创建初始表格
USE studydata;
-- 创建学生表
CREATE TABLE Students(
Sid INT NOT NULL PRIMARY KEY,
Sname VARCHAR(20) NOT NULL,
Sage date NOT NULL,
Ssex