什么是数据库
-
数据库(database)是用来组织、存储和管理数据的仓库
-
为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数据进行新增、查询、更新、删除等操作
常见的数据库以及分类
-
常见的数据库分类下面几种
-
MySQL
数据库(目前使用最广泛、流行度最高的开源免费数据库;Community
+Enterprise
) -
Oracle
数据库(收费) -
SQL Server
数据库(收费) -
Mongodb
数据库 (Community
+Enterprise
)
-
-
数据库分类
-
传统数据库(关系型数据库或SQL数据库)
-
MySQL、Oracle、SQL Server,这三者的设计理念相同,用法比较类似
-
-
新型数据库(非关系数据库或NoSQL数据库)
-
Mongodb,它在一定程度上弥补了传统型数据库的缺陷
-
关系型数据库--数据存储在本地
非关系型--存储在内存---速度更快
传统型数据库的数据组织结构
在传统的类型的数据库中,数据的组织结构分为数据库(database
)、数据表(table
)、数据行(row
)、字段(field
) 这 4 大部分组成
概念对象
-
数据库类似于 Excel 的工作簿
-
数据表类似于 Excel 的工作表
-
数据行类似于 Excel 的每一行数据
-
字段类似于 Excel 的列
-
每个字段都有对应的数据类型
-
实际开发中库、表、行、字段的关系
-
在实际项目开发中,一般情况下,每个项目都对应独立的数据库
-
不同的数据,要存储到数据库的不同表中,例如:用户数据存储到 users 表中,图书数据存储到 books 表中
-
每个表中具体存储哪些信息,由字段来决定,例如:我们可以为 users 表设计 id、username、password 这 3 个字段
-
表中的行,代表每一条具体的数据
-
PHPstudy是MYSQL的集成软件,文章主要介绍 PHPstudy的基本使用:
安装 完成PHPstudy和Navicat之后:(PHPstudy简称为PHP)
启动PHP中的MySQL套件
打开Navicat,点击连接,连接PHP
根据安装提示文档输入信息---点击确定
连接完成后,--双击本地数据库---打开本地数据库---单击右键新建数据库
输入喜欢的数据库名称--确定---就创建了属于自己的数据库
刷新--就能看到刚创建的数据库,点击数据库,就能看到数据库的工具栏
单击右键,根据需求创建文件,这里我们以表格为例介绍.
接下来:设计表格字段名称和数据类型---并保存
刷新之后,我们就可以看到刚才建立的表格,双击即可添加数据
表格设置完成之后,我们就可以对数据进行操作, 我们程序员操作数据使用的是SQL 语句.
完整输入SQL 语句后 --- 回车--点击运行,下放工作区会返回操作结果,如下图
什么是 SQL
-
SQL
是 结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据 -
三个关键点:
-
SQL
是一门数据库编程语言 -
使用
SQL
语言编写出来的代码,叫做 SQL 语句 -
SQL
语言只能在关系型数据库中使用(例如MySQL
、Oracle
、SQL Server
)。非关系型数据库(例如Mongodb
)不支持SQL
语言
-
SQL 能做什么
-
从数据库中查询数据
-
向数据库中插入新的数据
-
更新数据库中的数据
-
从数据库删除数据
-
可以创建新数据库
-
可在数据库中创建新表
-
可在数据库中创建存储过程、视图
SQL 的 SELECT 语句----查询数据
语法介绍
select * from 表名称 // 查询出所有的数据,*表示所有列
select 列名称 from 表名称 // 从表中查询指定字段的数据
-
SELECT 语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。语法格式如下
-
注意:SQL 语句中的关键字对大小写不敏感
点击查询---新建查询,打开查询工作栏
查询语句:
查询所有数据
-- 通过 * 把 users 表中的所有的数据查询出来
select * from users
查询某个指定数据
-- 通过 username 把 users 表中username这一列的数据查询出来
select username from users
查询多个数据
-- 多列之间,使用英文逗号进行分隔
select username, password from users
SQL 的 INSERT INTO 语句 ----插入新的数据行
语法格式
写法一:
insert into table_name (列1,列2...) value(值1,值2...) // 列和值之间要对应准确,使用英文逗号隔开
写法二:
注意:新的数据需要加上引号,否则会报错
insert into users (username, password) values ('mz', '123456')
insert into 表名 set 字段1 = 值1,字段1 = 值1,字段1 = 值1;
补充: -- xxxx 表示注释
SQL 的 UPDATE 语句----更新数据
语法:
update---指定要更新哪个表的数据
set----指定列对应的新值
where---指定更新的条件
update 表名称 set 列名称 = 新值 where 列名称 = 某值
-
多个被更新的列之间, 使用英文的逗号进行分隔
-
where 后面跟着的是更新的条件
-
注意: 初学者经常忘记提供更新的 where 条件,这样会导致整张表的数据都被更新,一定要慎重
update users set password=654321 where id=4 // 更新单列数据
update users set password=888888, status=1 where id=4 // 更新多列数据
SQL 的 DELETE 语句----删除数据
语法:
delete from 表名称 where 列名称 = 值
注意: 初学者经常忘记提供更新的 where 条件,这样会导致整张表的数据都被更新,一定要慎重
delete from users where id=4
WHERE 子句
-
WHERE
子句用于限定选择的标准。在SELECT
、UPDATE
、DELETE
语句中,皆可使用WHERE
子句来限定选择的标准
-
可在
WHERE
子句中使用的运算符
-
注意:在某些版本的
SQL
中,操作符<>
可以写为!=
可以通过 WHERE
子句来限定 SELECT
的查询条件
-- 查询 id 为 1 的所有用户
select * from users where id=1
-- 查询 id 大于 2 的所有用户
select * from users where id>3
--查询 username 不等于 admin 的所有用户
select * from users where username<>'zs'
SQL 的 AND 和 OR 运算符
-
AND
和OR
可在WHERE
子语句中把两个或多个条件结合起来 -
AND
表示必须同时满足多个条件,相当于JavaScript
中的&&
运算符,例如if (a !== 10 && a !== 20)
-
OR
表示只要满足任意一个条件即可,相当于JavaScript
中的||
运算符,例如if(a !== 10 || a !== 20)
and运算符
-- 使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户 select * from users where status=0 and id<3
or 运算符
-- 使用 OR 来显示所有 status 为 1,或者 username 为 zs 的用户 select * from users where status=0 or username='zs'
SQL 的 ORDER BY 子句
---根据指定的列对结果集进行排序
ASC--升序(默认) DESC---降序
因为默认是升序,升序时 asc 可以省略
-- select * from users order by status select * from users order by status asc
ORDER BY 子句 – 降序排序
对 users 表中的数据,按照 id 字段进行降序排序
select * from users order by id desc
ORDER BY 子句 – 多重排序
对 users
表中的数据,先按照 status
字段进行降序排序,再按照 username
的字母顺序,进行升序排序
select * from users order by status desc, username asc
SQL 的 COUNT(*) 函数-----汇总
COUNT(*)
函数用于返回查询结果的总数据条数
select count(*) from 表名称
-- 查询 users 表中 status 为 0 的总数据条数 select count(*) from users where status=0
使用 AS 为列设置别名
如果想给查询出来的列名称设置别名,可以使用 AS
关键字
-- 将列名从 count(*) 修改为 total select count(*) as total from users where status=0