1、什么是数据库
维基百科关于数据库的定义:
In computing, a database is an organized collection of data stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal design and modeling techniques.
翻译成中文的意思就是:在计算中,数据库是从计算机系统以电子方式存储和访问的有组织的数据集合。在电脑中,我们可以将数据库理解成“文件柜”,需要存储的数据以某种方式进行组织,并存放在“文件柜”中。
DB和DBMS区别:
很多人会把DB和DBMS搞混淆,其实两者是两个东西。DB(database)指的是数据库容器;DBMS(database management system)指的是数据库管理系统。两者之间的关系是,数据库DB是通过数据库管理系统DBMS创建和操纵的容器。在实际使用中,我们并不直接访问数据库,而是使用DBMS来访问数据库。
2、MySQL数据库重要概念
2.1 表
表(table):指的是某种特定类型数据的结构化清单。
上述概念中有两个重要的知识点:
- 特定类型 -> 指一种类型比如用户信息、订单信息、商品信息,表设计不允许杂糅各种数据类型
- 结构化清单 -> 指表数据按照用户需求进行结构化拆分和组织的数据,比如用户信息拆分为用户名、性别、年龄等结构化数据
表在同一个数据库中不允许同名,不同数据库中允许同名
可以通过show tables查看数据库中的表
user表的结构化清单
2.2 列
列(column):表中的一个字段,一个表有一个或多个列组成。
在上述用户信息表中,拥有用户名列、性别列、年龄列等,这些列共同组成了用户表。
MySQL数据库中列都有其对应的数据类型。数据类型(datatype)会约束列所能存放的数据。比如可以防止在数值类型的字段中录入字符类型数据。
可以通过show full columns from 表名
查看表的具体列信息
2.3 行
行(row):表中的一条记录。
MySQL数据库中的数据以行的形式存储,每一条数据都是一行(也可以称之为记录),但是正确的没有歧义的说法是行(hang)。
2.4 主键
主键(primary key):一列或几个列,其值或组合值能够唯一区分表中的每个行。
主键就好比人的身份证号,它不会重复,可以用于标记认得身份。值得注意的是,主键可以是多个列共同组成。
也可以通过DDL查看,主键用PRIMARY KEY标识
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(255) NOT NULL COMMENT '姓名',
`age` int(11) NOT NULL COMMENT '年龄',
`sex` smallint(1) DEFAULT NULL COMMENT '性别',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
定义主键需要满足两个条件:
- 主键列数据不重复
- 主键列数据不为空(null)
只要满足这两个条件,列就可以作为主键。建议表设计时,一定要定义主键,拥有主键能够方便数据查询、删除、更新等操作,否则相对比较麻烦。
定义主键满足的两个规范:
- 主键值不应该更新
- 主键值不应该具有业务意义、也就是说除了标志作用,不应该用于其他业务使用
3、SQL应该怎么读
SQL是Strucctured Query Language的缩写,在读的时候我们可以拆开读S—— Q——L,大部分情况下我们是组合起来读的,应该读作sequel / [ˈsiːkwəl] .
此链接在线朗读