server的自增主键返回函数 sql_廖雪峰大佬SQL教程学习笔记

本文介绍了SQL的基本概念,包括DDL、DML和DQL,强调了SQL在数据管理中的作用。文章还探讨了SQL与NoSQL的关系,并指出数据库存在的必要性。重点讲解了关系模型、数据类型、主键与外键的概念,以及索引和事务的ACID特性。此外,还分享了MySQL的使用和管理经验,包括远程连接、事务处理和隔离级别。
摘要由CSDN通过智能技术生成

1,SQL(Structured Query Language),就是访问和处理(操作)关系数据库的计算机标准语言。SQL语句既可以查询数据库中的数据,也可以添加,更新和删除数据库中的数据,还可以对数据库进行管理和维护。SQL定义几种操作数据库的能力。

  • DDL:Data Definition Language(DDL允许用户定义数据,也就是创建表,修改表的结构)
  • DML:Data Manipulation Language(DML提供添加,删除,更新数据的能力)
  • DQL:Data Query Language(DQL允许用户查询数据)

2,NoSQL(非SQL数据库,不是关系数据库)。今天,SQL数据库仍然承担各种应用程序的核心数据存储,而NoSQL数据库作为SQL数据库的补充,两者不再是二选一的问题,而是主从关系。

3,为什么需要数据库?

假如将需要数据存放到CSV文件中,随着应用程序的功能越来越复杂,数据量越来越大,如何管理这些数据就成为了大问题。

  • 读写文件并解析出数据需要大量重复的代码;
  • 从成千上万的数据中快速查找出指定数据需要复杂的逻辑

4,关系模型把数据看作一个二维表格,任何数据都可以通过行号+列号来唯一确定。

5,数据类型:对于一个关系表,除了定义每一列名称外,还需要定义每一列的数据类型。

7d1f8f79098d60a53f302bd6a4c17c64.png

通常来讲,BIGINT就能满足整数存储的需求,VARCHAR(N)能满足字符串存储的需求。

6,语法特点:SQL语言关键字不区分大小写,但是针对不同的数据库,对于表名,列名,Linux上区分大小写,Windows不区分大小写。

7,关系数据库是建立在关系模型上的,关系模型本质上就是若干个存储数据的二维表。表的每一行称为记录,记录是一个逻辑意义上的数据。表的每一列称为字段,同一个表的每一行记录拥有相同的字段。在关系数据库中,关系是通过主键和外键来维护的。

8,在关系表中,有一个很重要的约束,就是任意两条记录不能重复。不能重复不是指两条记录不完全相同,而是指通过某个字段唯一区分出不同的记录。这个字段就是主键。

9,选取主键的一个基本原则是:不适用任何业务相关的字段作为主键。因此,身份证号,手机号,邮箱看上去可以作为主键,均不可用作主键。常见作为id(主键)字段的类型:

自增数据类型,全局唯一GUID类型。

10,把一个表的数据与另一个表的数据关联起来,这种列称之为外键。外键并不是通过列名来实现的,而是通过定义外键约束实现的。

ALTER TABLE students
ADD CONSTRAINT fk_class_id
FOREIGN KEY (class_id)
REFERENCE classes(id);

通过外键约束,关系数据库可以保证无法插入无效数据。

删除一个外键约束:

ALTER TABLE students
DROP FOREIGN KEY fk_class_id

11,多对多关系实际上是通过两个一对多关系实现的,即通过一个中间表,关联两个一对多关系。

12,一对一,有些应用程序把一大表拆成两个一对一的表,目的是把经常读取和不经常读取的字段分开,获得更好的性能。

13,在关系数据库中,如果有上万,上亿条记录,想要获得非常快的速度,就需要使用索引。索引是关系数据库中对某一列或着多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,直接定位到符合条件的记录。

ALTER TABLE students
ADD INDEX index_score (score);

索引有多列:

ALTER TABLE students
ADD INDEX idx_name_score (name,score)

索引的效率取决于索引列是否散列。即该列的值如果越不相同,索引效率越高。反过来,如果记录的列里面存在大量相同的值,创建索引就没有意义。

创建索引的缺点就是在插入,更新,删除记录时候,需要同时修改索引,因此,索引越多,插入,更新,删除记录就很慢。对于主键,关系数据库会自动创建索引。使用主键索引的效率是最高的,因为主键会保证唯一性。

设计关系数据库的时候。看上去具有唯一值的列,但是有不是主键(具有业务含义),应该添加唯一性索引:

ALTER TABLE students
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值