y入门基础教程大全腾讯云开发者社区

数据库就是一个以某种有组织的方式存储的数据集合。简单的说,数据库(database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据提供的多种方法来管理数据库里的数据。

好处:

我们可以理解为,数据库就是一种特殊的文件,其中存储着需要的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)

关系型数据库:数据库里面的数据全部存在数据表中,而这些表在存储的过程中,各自之间有内在联系。因为这种联系,我们称这样的数据库叫"关系型数据库"

​ 容易理解,二维表结构

​ 使用方便,通用的SQL语言使得操作关系型数据库非常方便,便于复杂的查询

​ 支持事务等复杂的数据操作功能

数据之间无关系,容扩展

结构简单,具有非常高的读写性能,在大数据量下,同样表现优秀

无需事先建立字段,随时可以存储自定义的数据格式

例: 一个学生表,(表、字段、列、行)

学号

姓名

性别

小明

小红

大白

小白

MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般网站软件的开发都选择 MySQL 作为网站数据库。

MySQL是一种客户端/服务器端(C/S)的软件,我们要学会如何如何安装服务器端的MySQL,还需要学会如何利用客户端工具操作MySQL数据,常用的客服端工具有: 命令行、pycharm-database、Navicat等

所用mysql文件下载

可以到Linux公社资源站下载:

------------------------------------------分割线------------------------------------------

------------------------------------------分割线------------------------------------------

键盘的上下键,可以快速滚回我们之前输入的代码。

SQL,指结构化查询语言,全称是 Structured Query Language,是一种 ANSI(American NationalStandards Institute 美国国家标准化组织)标准的计算机语言,可以让我们可以处理数据库。

SQL语句主要分为:

select 字段1,字段2 from 表名 从指定表中查询所有数据的字段1和字段2信息

select 字段1,字段2 from 表名 WHERE 字段名 = 字段值;

运算符

含义

AND

并列,如果组合的条件都是TRUE,返回TRUE

OR

或者,如果组合的条件其一是TRUE,返回TRUE

NOT

取反,如果条件是FALSE,返回TRUE

判断字段值是否在指定区间��

运算符

含义

等于,判断字段名的值是否等于指定值

<>、!=

不等于

<=

小于或等于

>=

大于或等于

<

小于

>

大于

IN 运算符 允许在 WHERE 子句中规定多个值。

LIKE 运算符 允许我们针对只知道部分字符串的情况下,查找所有的字符串,进行模糊查找

% 匹配任意多个字符 陈%_ 匹配任意一个字符 陈__

AVG 返回指定列的平均值COUNT 返回指定列中非NULL值的个数MIN 返回指定列的最小值MAX 返回指定列的最大值SUM 返回指定列的所有值之和

聚合运算都是写在select 后面

SELECT COUNT("字段") FROM 表名 WHERE 条件;

GROUP BY子句, 可以对表进行分组,常常与聚合函数一起使用

GROUP BY 字段名,当前这个字段名在表中出现多少个不同的字段值,那么查询结果就会有多少个组。

ORDER BY 子句,对查询结果排序

ASC表示升序(从小到大),为默认值,

DESC为降序(从大到小)

补充:

结果排序可以多个字段排序

例如:对学生的年龄进行降序排列。

LIMIT 子句,可以对查询出的结果进行数量限制,往往我们不想一次取出所有的数据

limit有两个使用方式:

​ limit后面跟着 一个参数 表示限制结果的数量

limit 主要用于在项目开发中的分页功能实现。

添加一名记录

DELETE FROM table 删除整个表的内容[没有条件则表示删除整个表所有数据]

定义字段名,表名、数据库名、规范:

在64个字符以内,建议简短,如果不够清晰,可以使用前缀。

不能是关键字或者保留字

采用变量命名方式[ 由字母、数字、下划线组成,不能以数字开头 ]

数据库里面的数据在保存时,也要通过数据类型来告诉系统,这些数据的用途,所以也会有对应的数据类型:

数值类型[整数和浮点数]、字符串 和 日期

是否唯一[数据在同一个表中的同一列中是否可以出现多个]

是否无符号[约束当前是否可以填写负数,有符号可以填写,无符号不能填写。]

是否设置为当前表的主键[主键是一个表记录不同行数据之间的唯一字段,这个字段必须是唯一的]

是否自动增长[添加数据的时候,如果不填写这个字段,那么这个字段会自动在之前已有的值基础上+1填充]

设置默认值[ 添加/修改数据时,如果值没有填写或者被清空了,采用指定的值作为字段值 ]

是否可以填写空(null,等同于python里面的None)值

创建班级表

例如:创建学生表[原来的数据库中已经存在了一张表,所以练习案例的时候注意,建议新建一个数据库来创建]

自己动手创建一个课程表

数据库操作记录:

修改表-添加字段

修改表-修改字段:重命名版

修改表-修改字段:不重命名版

修改表-删除字段

删除表

查看表的创建语句

了解数据的数据类型可以通过以下语句来查看和使用帮助:

使用数据类型的原则:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间

类型

字节大小

有符号范围(Signed)

无符号范围(Unsigned)

TINYINT

-128 ~ 127

0 ~ 255

SMALLINT

-32768 ~ 32767

0 ~ 65535

MEDIUMINT

-8388608 ~ 8388607

0 ~ 16777215

INT/INTEGER

-2147483648 ~2147483647

0 ~ 4294967295

BIGINT

-9223372036854775808 ~ 9223372036854775807

0 ~ 18446744073709551615

类型

使用

描述

decimal(M,D)

decimal(5,2),表示只能有5个数字,其中最多设置2个数字在小数点后面可以存储的数值:1000.5,123.56不可以存储的数值:1000.51,100000, 1.345

十进制小数,用于表示商品的价格

类型

字节大小

示例

CHAR

0-255

定长字符串,类型:char(3) 输入 'ab', 实际存储为'ab ', 输入'abcd' 实际存储为 'abc'

VARCHAR

0-255

不定长字符串,类型:varchar(3) 输 'ab',实际存储为'ab', 输入'abcd',实际存储为'abc'

TEXT

0-65535

大文本

在5.5版本的mysql以后,varchar类型可以存储的数据,可以达到65535个字符。

类型

字节大小

示例

场景

DATE

TIME

'12:29:59'

餐厅的餐牌

DATETIME

YEAR

'2017'

电影的年份....

TIMESTAMP

基本用不上

DATETIME 和 TIMESTAMP,很多时候,我们会使用程序中的时间戳来代替,后面在数据库中保存时设置字段的类型是数值型,这样的话,可以节省存储空间,同时还可以提高数据的读取速度。

就是我们根据开发需求,要保存到数据库中作为一张表存在的事物。实体的名称最终会变成表名

实体会有属性,实体的属性就是描述这个事物的内容,实体的属性最终会在表中作为字段存在。

实体与实体之间会存在关系,这种关系一般就是根据三范式提取出来的主外键。

范式理论【在总结了经验以后,得出规范我们数据库设计的一些理论】

实体之间会因为引用相互引用字段而存在关系,这种关系一般有三种:

1-1

1-n

n-m[ 多对多一般表现为2个 1对多 ]

```

例如,统计下在学生表的所有的学生班级

例1:查询没有填写个性签名的学生

例2:查询填写了个性签名的学生

例3:查询填写了身高的男生

mysql支持三种类型的连接查询,分别为:

查询的结果为两个表匹配到的数据

使用内连接,必须保证两个表都会对应id的数据才会被查询出来。

例如:查询学生的信息[ 成绩、名字、班级 ]

我们给学生表添加一个学生信息,然后使用该学生的主键id来连表查询成绩、名字和班级。

同样,如果从表有数据,而主表没有数据,则使用内连接查询一样无法查询到结果。

只要从表有数据,不管主表是否有数据,都会查询到结果。[以从表的结果为主]

查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充

例如,上面的成绩id为102的学生, 我们使用右连接查询。

只要主表有数据,不管从表是否有数据都会被查询出来。

查询的结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充

语法

例如,使用左连接查询学生表与成绩表,查询学生姓名及分数

总结:

多表查询的效率,性能比单表要差。

多表查询以后,还会带来字段多了会引起字段覆盖的情况、

主表student 从表1 achievement 从表2 course

name xxx name

上面三张表如果连表,则出现主表的name覆盖从表2的name这种情况。

上面两个问题:

例如,查询白杨的班级、id、年龄和课程名称以及对应课程的成绩

练习:

核心就是把一张表看做2张表来操作

格式:

查找深圳地区的子地区,SQL代码:

在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句

格式:

主要查询的对象,第一条 select 语句

使用 子查询:

查询406班级学生的平均身高

过滤筛选,主要作用类似于where关键字,用于在SQL语句中进行条件判断,过滤结果的。

但是与where不同的地方在于having只能跟在group by 之后使用。

练习:查询301班级大于班上平均成绩的学生成绩信息(name,平均分,班级)。

我们之前学习的source也是一种恢复方式,但是两种使用有一个区别。就是

mysql 命令这种方式,可以远程 恢复,而source这种只能本地电脑恢复。

THE END
0.【2025】SQL入门教程(详解版)从零基础入门到精通,看完这一篇就够了在了解 SQL 基础语句使用之前,我们先讲一下表是什么? 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。 下面的例子是一个名为 “Persons” 的表: 上面的表包含三条记录(每一条对应一个人)和五个列(Id、姓、名、地址和城市)。 有表才能查询,那么如何创建jvzquC41dnuh0lxfp0tfv8Hcktu`C8ftvkimg8igvcomu86739<17@:
1.《SQL基础教程》—第一章:数据库与SQLFBshark导言 这一章的内容如下: 数据库简介 SQL 概要 表的创建 表的删除与更新 数据库简介 定义: Database, 是大量数据的集合Database Management System,是用于管理数据库的计算机系统. DBMS 的种类 通过数据库的种类(数据的保存格式),将数据库分为主要的 5 类jvzquC41yy}/ewgnqiy/exr1HDyic{q1r1718>;4364ivvq
2.MySQL实战文章(非常全的基础入门类教程)Mysql我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。MySQL数据库MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发jvzquC41yy}/lk:30pku1jwvkerf1;=5877/j}r
3.关于SQL学习教程篇一:SQL学习教程 SQL 简介SQL 是用于访问和处理数据库的标准的计算机语言。什么是 SQL?? SQL 指结构化查询语言 ? SQL 使我们有能力访问数据库 ? SQL 是一种 ANSI 的标准计算机语言编者注:ANSI,美国国家标准化组织SQL 能做什么?? SQL 面向数据库执行查询 ? SQL 可从数据库取回数据 ? SQL 可在数据库中插入jvzquC41yy}/qq6220ipo8ugkz{o1\VN16882@60jvsm
4.SQL基础教程DML(Data Manipulation Language):数据操作语言,用于添加、删除、更新和查询数据库记录,并检查数据完整性。 主要的语句关键字包括INSERT、DELETE、UPDATE、SELECT等。 SELECT是SQL语言的基础,最为重要。 DCL(Data Control Language):数据控制语言,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表jvzquC41dnuh0lxfp0tfv8vsa5?55@:351gsvrhng1jfvjnnu171:?<6669
5.《SQL必知必会第5版》([美]本·福达(BenForta))简介1.SQL入门经典教程全新升级,麻省理工学院、伊利诺伊大学等众多大学的参考教材,中文版累计销量超15万; 2.本书没有过多阐述数据库基础理论,而是专门针对一线软件开发人员,直接从SQL SELECT开始,讲述实际工作环境中常用的SQL知识,实用性极强; 3.新版对书中的案例进行了全面的更新,并增加了章后挑战题,便于读者巩固所学jvzq<84rtqjve}3fcpmecwl0eqs04A>;95850qyon
6.SQL基础教程(豆瓣)图灵程序设计丛书·数据库系列(共67册), 这套丛书还有 《MongoDB权威指南 第3版》《SQL Server 2008基础教程》《Oracle Database 12c性能优化攻略》《Oracle SQL高级编程》《Oracle Solaris 10系统管理基础教程》 等。 喜欢读"SQL基础教程"的人也喜欢的电子书· ··· 支持WebjvzquC41dqul0mtwdct/exr1uwhkgly146>53;8;1
7.SQLite教程|菜鸟教程SQLite 教程 SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。 本教程将告诉您如何使用 SQLite 编程,并让你迅速上手。 现在开始学习 SQLite! 谁jvzquC41yy}/t~sqqd4dqv4usnoug8xsnkzf/}zvqtobn7mvon