MySQL必知必会读书笔记 第1~5章

123 阅读2分钟

第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 之后。