MySQL必知必会——第一章了解SQL

了解SQL

数据库基础

什么是数据库

数据库像一个文件柜,是一个存放数据的物理位置,不管数据是什么以及如何组织的。
数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)

我们不直接访问数据库,而是通过DBMS(数据库管理系统)来间接访问数据库。

将资料放入文件柜时,不是随便将它们扔进某个抽屉就完事了,而是在文件柜中创建文件,然后将相关资料放入特定的文件中。
数据库中,表就相当于文件,表是一种结构化的文件,可用来存储某种特定类型的数据。
表(table):某种特定类型数据的结构化清单。
在表中的数据是一种类型的数据或一个清单。例如顾客信息(清单)与商家信息(清单)不应该放在一张表中,应该分别创建一张表存储。
数据库中的每个表都有一个名字,用来标识自己,此名字在库中是唯一的,以防冲突。

表名 表名的唯一性取决于多个因素,如数据库名加表名。故在不同数据库中可以使用相同表名。

表具有一些特性,这些特性定义了数据在表中如何存储。描述表中这些特性就是模式。
模式(schema):关于数据库和表的布局及特性的信息。

列和数据类型

表由列组成。列中存储着表中的某部分信息。
列(column):表中的一个字段。所有表都是由一个或多个列组成的。
数据库表就类似于一个网格,网格中的每列存储着一条特定的信息。

分解数据 正确地分解数据为多个列极为重要。这样才有可能利用特定的列对数据进行排序和过滤。

数据库中每个列都有相应的数据类型。数据类型定义列可以存储的数据种类。
数据类型(datatype):所容许的数据的类型。每个表列都有相应的数据类型,它限制该列中存储的数据。
数据类型帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。

表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。
行(row):表中的一个记录。

记录or行? 有些用户提到行(row)时称其为数据库记录(record)。很大程度上,这两个术语可以相互代替,但从技术上,行才是正确的术语。

主键

表中每一行都应该有可以唯一标识自己的一列(或一组列)。
主键(primary key):一列(或一组列),其值能够唯一区分表中每个行。
唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。

应该总是定义主键 虽然并不总是需要主键,但大多数时候都应保证创建的每个表具有一个主键,以便于以后的数据操作和管理。

表中的任何列都可以作为主键,只需满足以下条件:

  • 任意两行都不具有相同的主键值。
  • 每行都必须具有一个主键值(主键列不允许NULL值)。

主键通常定义在表的一列上,但也可以一起使用多个列作为主键。以上条件也必须应用到构成主键的所有列,所有列值的组合必须唯一(但单个列的值可以不唯一)。

主键的好习惯 除MySQL主键规则外,应该坚持的几个好习惯为:

  • 不更新主键列中的值
  • 不重用主键列中的值
  • 不在主键列中使用可能会更改的值。

什么是SQL

SQL是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。
SQL有以下优点:

  • SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL。
  • SQL简单易学。
  • SQL可以进行非常复杂和高级的数据库操作。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霖行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值