数据库的相关概念
1.1什么是数据库
数据库是用来组织、存储和管理数据的仓库
为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数据进行新增、查询、更新、删除等操作。
1.2 常见的数据库及分类
- MySQL数据库(目前使用最广泛****、流行度最高的开源免费数据库;Community【社区免费版】+Enterprise【企业收费版】)
- Oracle数据库(收费)
- SQL Server数据库(收费)
- Mongodb数据库(Community+Enterprise)
其中,MySQL、Oracle、SQL Server属于传统型数据库(又叫做:关系型数据库或SQL数据库),这三者的设计理念相同,用法比较类似。
而Mongodb属于新型数据库(又叫做:非关系型数据库或NoSQL数据库),它在一定程度上弥补了传统型数据库的缺陷。
1.3传统数据库的数据组织结构
数据组织结构:指的就是以什么样的结构进行存储
在传统型数据库中,数据的组织结构分为数据库、数据表、数据行、字段这四大部分组成。
实际开发中库、表、行、字段的关系:
- 在实际项目开发中,一般情况下,每个项目都对应独立的数据库。
- 不同的数据,要存储到数据库的不同表中,例如:用户数据存储到users表中,图书数据存储到books表中。
- 每个表中具体存储哪些信息,由字段来决定,例如∶我们可以为users表设计id、username、password这3个字段。
- 表中的行,代表每一条具体的数据。
安装配置MySQL
2.1 需要安装的软件
对于开发人员来说,只需要安装MySQL Server和 MySQL Workbench这两个软件,就能满足开发的需要了。
- MySQL Server:专门用来提供数据存储和服务的软件。
- MySQL Workbench:可视化的MySQL管理工具,通过它,可以方便的操作存储在MySQL Server 中的数据
在Mac环境下安装 MySQL的过程比 Windows环境下的步骤简单很多:
①先运行mysql-8.0.19-macos10.15-x86_64.dmg这个安装包,将MySQL Server安装到Mac 系统
②再运行mysql-workbench-community-8.0.19-macos-x86_64.dmg这个安装包,Workbench工具安装到Mac系统
MySQL在 Windows环境下的安装:
在Windows环境下安装MySQL,只需要运行mysql-installer-community-8.0.19.0.msi这个安装包,就能一次性将MySQL Server 和MySQL Workbench安装到自己的电脑上。
MySQL的基本使用
使用MySQL Workbench管理数据库
连接数据库
打开MySQL Workbench点击对应的数据数,输入数据库密码
2.
了解MySQL Workbench主界面的组成部分
3.
创建数据库
创建数据表
设计表里面的字段
DataType的数据类型:
- int 整数
- varchar(len:最大长度) 字符串
- tinyint(1) 布尔值
字段的特殊标识:
- PK(Primary Key)主键、唯一标识
- NN(Not Null)值不允许为空
- UQ(Unique)值唯一
- B/BIN(binary)二进制数据(比text更大)
- ZF(Zero Fill) 填充0 例如字段内容是1 int(4), 则内容显示为0001
- AI(Auto Increment)值自动增长
- G (Generated column) 基于其他列的公式生成值的列
向表中写入数据
使用SQL管理数据库
什么是SQL?
SQL(Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据。
Tips:
- SQL是一门数据库编程语言
- 使用SQL语言编写出来的代码,叫做SQL语句
- SQL语言只能在关系型数据库中使用(列如MySQL、Oracle、SQL Server)。非关系性数据库(例如MOngoDB)不支持SQL语言
SQL的功能有哪些?
- 从数据库中查询数据
- 从数据库插入新数据
- 更新数据库的数据
- 从数据库中删除数据
- 可以创建新数据库
- 可以在数据库中创建新表
- 可以在数据库中创建存储过程、视图
- …etc
SQL的重点知识
重点掌握如何使用SQL从数据表中:
查询数据(select)、插入数据(insert into)、更新数据(update)、删除数据(delete)
额外需要掌握的4种SQL 语法:
where条件、and和or运算符、order by排序、count(*)函数
SQL具体用法
select语句
select语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。格式语法如下:
--这是注释
--从 FROM指定的【表中】,查询出【所有的】数据。*表示【所有列】
SELECT * FROM 表名称
--从FROM指定的【表中】,查询出指定列名称(字段)的数据。
SELECT 列名称 FROM 表名称
注:
SQL 语句中的关键词对大小写不敏感。SELECT等效于select,FROM等效于from
示例代码如下:
-- 从users表中把username,password查询出来
select username,password from users
insert into语句
insert into语句用于向**数据表中插入新的数据行**,语法格式如下:
--语法解读:向指定的表中,插入如下几列数据,列的值通过values———指定
--注意:列和值要——对应,多个列和多个值之间,使用英文的逗号分隔
INSERT INTO table_name(列1,列2,...) VALUES(值1,值2,....)
代码示例:向users中插入一条username为xh,password为123456的用户数据,代码如下:
-- 项users表中插入新数据
insert into users (username,password)values ("xh",123456)
update语句
update语句用于**修改表中的数据**,语法格式如下:
-- 语法解读:
-- 1.用 UPDATE 指定要更新哪个表中的数据
-- 2.用SET 指定列对应的新值
-- 3.用WHERE指定更新的条件
UPDATE 表名称 SET 列名称=新值 WHERE 列名称=某值
代码示例:把users列表中id=3的用户密码,更新为88888,代码示例如下:
-- 把id=2的用户密码更新成888888
-- update users set password='888888' where id=4
-- 更新某一行中的若干列,把id=2的用户的密码和状态更新为654123和1
update users set password='654123',status=1 where id=3
delete语句
delete语句用于删除表中的行。语法格式如下:
-- 语法解读:
-- 从指定的表中,根据WHERE条件,删除对应的数据行
DELETE FROM 表名称 WHERE 列名称=值
注:
对于初学者来说,经常忘记提供where条件,导致误删整张表,因此,一定要慎重!
代码示例:删除id=2的用户,代码如下:
-- 删除users中id=1的用户
-- delete from users where id=1
where子句
where子句用于限定选择的标准。在select、update、delete语句中,皆可以使用where子句来限定选择标准
-- 查询语句中的 wHERE条件
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
-- 更新语句中的wHERE条件
UPDATE 表名称 SET 列=新值 WHERE 列 运算符 值
-- 删除语句中的 WHERE条件
DELETE FROM 表名称 WHERE 列 运算符 值
可在where子句中你那个使用的运算符:
操作符 | 描述 |
= | 等于 |
<>/!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
between | 在某个范围内 |
LIKE | 搜索某种模式 |
-- 演示where子句的使用
-- select * from users where status=1
-- select * from users where id>=2
-- select * from users where username<>'ls'
select * from users where username!='ls'
and和OR运算符
and和or可以在where子句中把两个或多个条件结合起来使用。and表示必须同时满足多个条件,or表示只要满足任意一个条件即可
-- 使用and
-- select * from users where status=0 and id<3
-- 使用or
select * from users where status=1 or username='zs'
order by子句
order by语句:根据指定的列对结果集进行排序
默认情况下是按照升序对记录进行排序
如果希望按照降序对记录进行排序,需要使用desc关键字
-- 对users中的数据,对status进行升序排序
-- select * from users order by status
-- 对users表中id这个字段进行降序排序
-- desc表示降序排序,asc表示升序排序(默认情况下,就是升序排序的)
select * from users order by id desc
多重排序:
对users表中的数据,先按照status 字段进行降序排序,再按照username的字母顺序,进行升序排序,示例如下:
-- 对uses表中的数据,先按照status进行降序排序,再按照username字母的顺序,进行升序排序
select * from users order by status desc,username asc
count(*)函数
count(*)函数用于返回查询结果的总数据条数,使用格式如下:
-- 使用count(*)来统计user表中,状态为0 用户总数量
select count(*) from users where status=0
使用AS为列设置别名
-- 使用AS关键字为列起别名
-- select count(*) as total from users where status=0
select username as uname,password as pd from users where status=0
select count(*) from users where status=0
使用AS为列设置别名
-- 使用AS关键字为列起别名
-- select count(*) as total from users where status=0
select username as uname,password as pd from users where status=0