数据库基础知识
数据库:
表:
列和数据类型:
行:
主键:
基础语法
不区分大小写,关键字用大写,变量用小写;
不区分空格;
多条SQL语句必须以;结尾;
使用help xxx命令得到帮助;
1、使用数据库
- USE
USE db; // 使用数据库
- SHOW
SHOW DATABASES; // 返回可用数据库的列表
SHOW TABLES; //返回数据库内表的列表
SHOW COLUMNS FROM customers;
DESCRIBE customers;
2、检索数据库
- SELECT:从一个或者多个表中检索信息
SELECT 列 FORM 表; // 检索一列
SELECT 列1,列2 FROM 表; // 检索多列
SELECT * FROM 表; // 返回所有列
- DISTINCT: 检索只返回不同的值,如果是多列,除非两列不一样,不然全部检索出来
-
select中有该关键字的列放在没有该关键字列的前面。
SELECT DINSTINCT column FROM table;
SELECT DISTINCT Upper(User) AS user_1, Host FROM db ;
- LIMIT:限制结果
SELECT name FROM table LIMIT 5; 限制返回5行 SELECT name FROM table LIMIT 5 OFFSET 1;从第1行开始返回5行
3、ORDER BY: 排序检索数据
本子句使用的列不一定是选择的列。
- 选择某个列
SELECT col_1 FROM table_1 ORDER BY col_1;
- 按照多个列排序:先按前面的列排序,前面一样的情况下再按照后面的列排序。
SELECT id, price, name FROM table ORDER BY price, name;
- DESC/ASC: 指定排序方向
SELECT id, price, name FROM products ORDER BY price DESC, name;
DESC要放在对应排序的列名后面。在多个列上降序排序,需要在每个列指定DESC关键字。
使用ORDER BY 和LIMIT的结合,可以找到最大和最小值。
ORDER BY子句在FROM子句后面,LIMIT子句在ORDER BY子句后面。
4、WHERE:过滤数据
WHERE子句在ORDER BY之前。
WHERE子句在FROM子句后面给出。SELECT子句中依据WHERE子句指定的搜索条件进行过滤。
SELECT Host, Db FROM db WHERE Host = 'localhost';
WHERE子句操作符:=, !=, <>, <=, >=, BETWEEN。
- 范围值检查
SELECT name, price FROM products WHERE price BETWEEN 5 AND 10;
- 空值检查
NULL:它与0,空字符串或者空格不同,IS NULL判断是否有NULL值。
SELECT name FROM products WHERE price IS NULL;
5、WHERE:数据过滤
[^123]匹配除这些字符外的任何东西
^[123]从文本头开始匹配
实践记录
使用子查询的时候必须用括号括起来