基础知识&术语

  1. RDBMS关系数据库管理系统(Relational Database Management System)术语:

    * **数据库**:关联表的集合
    * **数据表**:数据的矩阵
    * **行**(=元组、记录):一组相关的数据
    * **列**(=数据元素):包含相同类型的数据
    * **冗余**:存储两倍数据,会降低性能但提高数据安全性
    * **主键**:唯一,一个数据表仅能包含一个主键
    * **外键**:用于关联两个表
    * **复合键**(=组合键):将多个列作为一个索引键,用于复合索引
    * **索引**:类似书籍目录,索引是对数据库表中一列或多列的值进行排序的一种结构;利用索引快速访问数据库表中的特定信息
    * **参照完整性**:要求关系中不允许引用不存在的实体;参照完整性与实体完整性是关系模型必须满足的完整性约束条件,目的是保持数据一致性
    

    注:键的值在当前列中具有唯一性

语法

  1. 插入:INSERT INTO

    1
    2
    3
    INSERT INTO [table_name] (field1, field2,...)
    VALUES
    (value1, value2,...);

    字符型的数据需要使用单引号或者双引号

  2. 查询:SELECT

    1
    2
    3
    4
    SELECT column_name,column_name 
    FROM table_name
    [WHERE clause]
    [LIMIT N][OFFSET M]

    *代替其他字段则SELECT返回表的所有字段数据;

    查询可以使用一个或者多个表,表间默认使用逗号(,)分割

  3. 条件子句:WHERE

    1
    --WHERE condition1 [AND[OR]] condition2...

    给定条件在表中没有匹配记录时查询不会返回任何数据

  4. 更新:UPDATE

    1
    2
    UPDATE table_name SET field1=new-value1, field2=new-value2 
    [WHERE clause]

    可以同时更新一个或多个字段

  5. 删除:DELETE

    1
    2
    DELETE FROM table_name 
    [WHERE clause]

    没有指定where子句则删除表中所有记录

笔记

1.查询结果去重

​ (1) DISTINCT:SELECT DISTINCT … from table_name;

​ (2) group by:SELECT … from table_name group by … ;

​ notes:distinct只能放查询字段最前面,不能放查询字段中间或后面;且distinct对后面所有字段均起作用,也就是说去重是查询所有字段完全重复的数据(查询多个字段,针对一个字段去重,不能使用distinct)

group by也对后面所有字段均起作用,即去重是查询所有字段完全重复的数据,不是只对group by后面连接的单个字段重复的数据(由于group by语法位置可以放在查询字段后,所以查询字段与group by后面分组的字段没有限制)

2.限制条件

OFFSET指定SELECT查询的数据偏移量,默认偏移量为0

​ (1) —LIMIT n:从第0+1(m=0)条开始,取n条数据,是 limit 0,n 的缩写

​ (2) —LIMIT m,n:从第m+1条开始,取n条数据

​ (3) —LIMIT n OFFSET m:从第m+1条开始,取n条数据

​ (4) —WHERE column_name IN (value1,value2,…)

​ (5) —WHERE column_name 操作符 value

3.重命名查询后的列(对列使用别名)

​ AS:SELECT old_column_name AS new_column_name FROM table_name