第1~5章
数据库的概念
- 数据库是以某种有组织的方式存储的数据集合
表
- 表是一种结构化的文件,用来存储某种特定类型的数据
- 每个表都有一个表名用来标识自己,表名在数据库中是惟一的
行和列
- 表中的数据是按行存储的,所保存的每个记录存储在自己的行内
- 列是表中的一个字段。所有表都是由一个或多个列组成的
主键
-
表中每一行都应该有可以唯一标识自己的一列(或一组列)。
-
一列(或一组列),其值能够唯一区分表中每个行,唯一标识表中每行的这个列(或这组列)称为主键
-
表中的任何列都可以作为主键,只要它满足以下条件
- 任意两行都不具有相同的主键值;
- 每个行都必须具有一个主键值(主键列不允许NULL值)
Mysql数据库的使用
- 选择数据库
use 数据库名;
- 查看数据库或表中信息
show 数据库名;
show 表名;
检索数据库
Select 语句
- 检索单列
#在student表中查询name列的所有值
SELECT name FROM student;
- 检索多个列
#在student表中查询name,age,grade列的所有值
SELECT name,age,grade FROM student;
- 检索所有列
# * 查询所有
SELECT * FROM student;
- DISTINCT关键字
SELECT DISTINCT name FROM student;
#假如我们从 student 表中查询到的name有多个重复
#那么我们使用Distinct关键字可以去重
DISTINCT关键字应用于所有列而 不仅是前置它的列,我们不能部分使用DISTINCT
- LIMIT
#设置返回数据不多于5行
SELECT name FROM student LIMIT 5;
#LIMIT 2, 5指示MySQL返回从行2开始的5行
SELECT name FROM student LIMIT 2 5;
排序检索数据
什么是子句
SQL语句由子句构成,有些子句是必需的,而 有的是可选的。
比如 Select * from Student Form……就是子句
- ORDER BY (子句)
#查找后的数据通过age的进行排序 ,默认使用升序
SELECT name,age FROM student
ORDER BY age;
#我们也可以进行多个列排序
SELECT name,age,grade FROM student
ORDER BY age,grade;
#这里查找出的数据会先按照age排序,然后再依据grade进行排序
指定排序方向
-
DESC 让排序使用降序排序
- DESC只应用到直接位于其前面的列名上
-
ASC 让排序使用升序排序(个人觉得屁用没有,因为默认就是升序)
SELECT name,age FROM student
ORDER BY age DESC;
- 使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值
SELECT age FROM student
ORDER BY age DESC #age DESC保证行是按照由最年长到最年轻检索的
LIMIT 1; #只显示第一个值
注意:ORDER BY子句应位于FROM子句之后。
如果使用LIMIT,它必须位于ORDER BY 之后。