Hello SQL
写在前面
本教程所有代码均可在线执行测试,通过Lintcode学习平台即可在线学习、测试,并提供在线练习题方便练习,从而让你更高效、熟练得掌握SQL语句相关知识。
1. 什么是数据库
update 2021/03/10
(改成简洁版本,先验知识不要太多,任务驱动,学到哪儿再详解该部分知识)
在学习数据库之前,我们先需要简单的了解下什么是数据库。
数据库(Database)简单理解就是一个存储数据的仓库,为了方便数据的存储和管理,它能将数据按照特定的规律存储在磁盘上。
而通过数据库管理系统,我们可以有效地组织和管理存储在数据库中的数据。
如今数据库已经无处不在了。一个网站需要有数据库来存储网站信息;一个学校需要用数据库来存储学生和教师的信息;一个公司需要用数据库来存储员工和公司的资料。
以你正在使用的炼码(Lintcode)为例,Lintcode 是一个面向未来的学习编程技术网站,是为了让你终生学习的一款 All in One 在线学习平台。我们有大量的练习和正在开发中的项目,也有从事相关教程(Tutorial)研发的教师,以及正在开发中的课程。
根据以上信息
我们来设计一个简单的数据库 — Lintcode
用来存放我们 Lintcode 相关信息
在 Lintcode 数据库中,有两张表——课程表 courses
和 教师表 teachers
courses
表中存放着课程的信息 ,包括课程的名称(name)、学生数量(student_count)、开课日期(created)以及授课老师id(teacher_id)
teachers
表中存放着教师的信息,包括教师的姓名(name)、邮箱(email)、年龄(age)以及国籍(country)
演示数据库
以上的两个表就是我们的教师表和课程表的展现形式,与我们常见的 excel 表格别无二致。
下面我们对上述两个表格做些简单的介绍,方便大家后续课程的理解:
数据库:数据库是一些关联表的集合。Lintcode 就是我们用来存放课程表
courses
和教师表teachers
的数据库。数据表:表是数据的矩阵。课程表
courses
和 教师表teachers
就是数据表,看起来像一个简单的 excel 表格。列:一列(数据元素)包含了相同类型的数据。例如教师表
teachers
中的姓名(name)就是一个列,这一列中的教师姓名都是用字符方式存储行:一行数据(可以元组,或记录)是一组相关的数据。例如教师表每一行都对应一位教师信息
此外,大家是否注意到,我们在教师表 teachers
和课程表 courses
中,有一个额外的列,叫作 id,这个列是什么作用呢?
这个名为 id 的列,是我们用来唯一标识每行数据的,称为主键。实际上,教师的姓名是不能唯一标识一条记录的(因为教师姓名可能会有相同),所以我们使用额外的一列来唯一标识每行。这个列我们一般取名为 id,即 identification 的缩写,也可以取别的名称。此外,需要注意的是,一个数据表只能有一个主键。
此外,在教师表 courses
中,我们发现有一列数据 teacher_id 和教师表 teachers
中的 id 相关联,即每个 teacher_id 都指向教师表中的某一个教师记录,这种用于关联其它表某一列的列,我们称为外键(foreign key)。
2. SQL 是什么
SQL(Structured Query Language)中文全称为”结构化查询语句“,在1986年成为 ANSI(American National Standards Institute 美国国家标准化组织)的一项标准,在 1987 年成为国际标准化组织(ISO)标准。
SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
简单理解就是对我们数据库和数据库中的表进行”增删改查“操作的编程语言。
3. SQL 能做什么?
SQL 具体能完成下面功能:
SQL 面向数据库执行查询
SQL 可从数据库取回数据
SQL 可在数据库中插入新的记录
SQL 可更新数据库中的数据
SQL 可从数据库删除记录
SQL 可创建新数据库
SQL 可在数据库中创建新表
SQL 可在数据库中创建存储过程
SQL 可在数据库中创建视图
SQL 可以设置表、存储过程和视图的权限
总结起来,其实就“增删改查”四大功能,但是实际上我们平时用到最多的是查询,因此本教程在涵盖“增删改”的基础上,重点将通过练习的方式,帮助大家融会贯通从基础到困难,共10个难度等级的SQL常见知识点和面试题。
4. 此外
虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。
然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。
5. 关于本教程
本教程将演示如何使用MySQL编写SQL语句,并且也会介绍其他常用数据库的语法,以便无须修改或者少量修改就能够在这些平台运行。
6. 安装教程
如果你希望在本地演示数据库,下面是不同平台的mysql安装教程可供参考。在安装完mysql后,可以通过下载我们的sql文件来在本地创建数据库,并使用source
的方式在本地创建courses
和teachers
两个表
MAC
Win
Linux
Last updated
Was this helpful?