什么是数据库
-
数据库(database)是用来组织、存储和管理数据的仓库
-
为了方便管理互联网世界中的数据,就有了数据库。用户可以对数据库中的数据进行增删改查等操作
数据库分类
-
传统类型数据库(关系类型数据库或者SQL数据库) 比如:MySQL、Oracle、SQL Server,这三者的设计理念相同,用法比较类似
-
新型数据库(非关系数据库或NoSQL数据库) 比如:Mongodb,它在一定程度上弥补了传统型数据库的缺陷
传统型数据库的数据组织结构
我们这里主要讲解传统类型数据库,以下都是一些概念性的东西
1.在传统的类型的数据库中,数据的组织结构分为数据库(database)、数据表(table)、数据行(row)、字段(field) 这 4 大部分组成.

-
数据库类似于 Excel 的工作簿
-
数据表类似于 Excel 的工作表
-
数据行类似于 Excel 的每一行数据
-
字段类似于 Excel 的列
-
每个字段都有对应的数据类型
实际开发中库、表、行、字段的关系
-
在实际项目开发中,一般情况下,每个项目都对应独立的数据库
-
不同的数据,要存储到数据库的不同表中,例如:用户数据存储到 users 表中,图书数据存储到 books 表中
-
每个表中具体存储哪些信息,由字段来决定,例如:我们可以为 users 表设计 id、username、password 这 3 个字段
-
表中的行,代表每一条具体的数据
SQL 语句
SQL是 结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据
三个关键点:
-
SQL是一门数据库编程语言 -
使用
SQL语言编写出来的代码,叫做 SQL 语句 -
SQL语言只能在关系型数据库中使用(例如MySQL、Oracle、SQL Server)。非关系型数据库(例如Mongodb)不支持SQL语言
SQL 能做什么
-
从数据库中查询数据
-
向数据库中插入新的数据
-
更新数据库中的数据
-
从数据库删除数据
-
可以创建新数据库
-
可在数据库中创建新表
-
可在数据库中创建存储过程、视图
SQL基本语法(增删改查...)
首先SQL语句对大小写不敏感.返回的数据集合叫做结果集
SELECT语句,查询所有列
-- 通过 * 把 jager 表中的所有的数据查询出来 (* 这个符号代表所有列)
SELECT * FROM jager
--从指定的表中,查询指定的列的数据
SELECT username FROM jager
-- 获取名为username和password的列的内容 多列之间,使用英文逗号进行分隔
select username, password from users


INSERT INTO 语句
-- 往指定的表中,增加新的数据,值要使用英文引号包裹,多个列之间使用逗号分隔
-- 方法1:
INSERT INTO 表名 SET 列名1="值1",列名2="值2"
-- 方法2: 这种方法要注意列和值之间要一一对应
INSERT INTO jager (列名1,列名2) VALUES ("值1","值2")

UPDATE语句
--用于修改表中的数据 set后面跟的是要修改的结果,where语句后面跟的是修改的条件
UPDATE 表名 set 列名="值" WHERE 列名=值
-- 示例:UPDATE jager set username="lux" WHERE id=27
--翻译过来就是把id为27的那一列里面的username改为lux

信息栏提示如下信息就表示操作成功了.
注意:
-
多个更新的列之间使用英文逗号隔开
-
where 后面跟的是限制条件,不提供的话,会更新整个表的数据,长点心!!!
DELETE语句
-- 根据where条件删除指定的数据 值为字符串时加引号包裹
DELETE FROM 表名 WHERE 列名=值
信息栏提示如下信息就表示操作成功了.
注意
-
跟UPDATE语句一样,where语句后面不写条件会删除整个表里面的数据!!!!千万注意
WHERE 子句
WHERE子句可用于以上三种语句中来限定条件,在WHERE语句中可以使用运算符,下面列举了一些常用的运算符的用法:

示例:
-- 查询id大于20的用户
SELECT * FROM jager WHERE id>20
--LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
--查询id以2开头的用户 %用于定义通配符,匹配缺少的字符
SELECT * FROM jager WHERE id LIKE '2%'
--查询id以2结尾的用户
SELECT * FROM jager WHERE id LIKE '$1'
总结(增删改查)

SQL中的AND和OR运算符
-
AND和OR可以把WHERE子语句中的多个条件合起来
-
AND类似于&&运算符(逻辑与),需要同时满足所有的条件
-
OR类似于 || 运算符(逻辑或),多个条件满足一个即可
示例:
-- 查询id大于15且小于24的所有用户
SELECT * FROM jager WHERE id>15 AND id<24
-- 查询id大于15且status等于1的所有用户
SELECT * FROM jager WHERE id>15 OR status=1
SQL中的ORDER BY子句
-
ORDER BY子句可以根据指定的列的搜索结果进行升序或者降序排列
-
ASC 表示升序 DESC 表示降序
-
当不指定字段时,默认按照升序排列
示例:
-- 语法
SELECT * FROM 表名 ORDER BY 列名 ASC(DESC)
-- 可以把通过where子句指定条件的数据按序排序,如下
-- 查询id大于15且status等于1的所有用户 并且把结果集按照username字段进行升序排列
SELECT * FROM jager WHERE id>15 OR status=1 ORDER BY username ASC

ORDER BY子句进行多重排序
对表中的数据,先按照password字段进行降序排序,再按照 username的字母顺序,进行升序排序
SELECT * FROM jager ORDER BY password DESC , username ASC
SQL 的 COUNT(*) 函数
COUNT(*) 函数返回在给定的选择中被选的行数
SELECT COUNT(*) FROM 表名
-- 示例 如下图
SELECT COUNT(*) FROM jager
--本例返回"jager"表中的行数:

-- 示例 返回id大于20的用户
SELECT COUNT(*) FROM jager WHERE id>20

使用AS为count(*)查询出来的列设置名称
SELECT COUNT(*) AS 要设置的名称 FROM 表名 WHERE 条件
-- 示例:
-- 查询id小于20的用户,并把返回的列名称改为elk
SELECT COUNT(*) AS elk FROM jager WHERE id>20

本文介绍了数据库的基本概念,如数据库、数据表、数据行和字段,并重点讲解了SQL语言,包括SELECT、INSERT INTO、UPDATE和DELETE语句用于数据的增删改查,以及WHERE子句、AND和OR运算符、ORDER BY子句进行数据筛选和排序。此外,还提到了COUNT(*)函数在统计行数中的应用。
715

被折叠的 条评论
为什么被折叠?



