了解SQL
Posted 霖行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解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可以进行非常复杂和高级的数据库操作。
以上是关于了解SQL的主要内容,如果未能解决你的问题,请参考以下文章