数据库的相关概念

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 ServerMySQL 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点击对应的数据数,输入数据库密码

sql和mongodb一样吗 mongodb数据库和sqlserver区别_数据库


2.

了解MySQL Workbench主界面的组成部分

sql和mongodb一样吗 mongodb数据库和sqlserver区别_数据库_02

3.

创建数据库

sql和mongodb一样吗 mongodb数据库和sqlserver区别_sql和mongodb一样吗_03

创建数据表

sql和mongodb一样吗 mongodb数据库和sqlserver区别_mysql_04

设计表里面的字段

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和mongodb一样吗 mongodb数据库和sqlserver区别_数据_05

使用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

sql和mongodb一样吗 mongodb数据库和sqlserver区别_MySQL_06


示例代码如下:

-- 从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