目录
1.什么是数据库?
-
数据库(database)是用来组织、存储和管理数据的仓库。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。
2. 常见数据库
-
(1)MySQL 数据库,目前使用最广泛、流行度最高的开源免费数据库
-
(2)Oracle 数据库,收费 安全性是最好的
-
(3)SQL Server 数据库,收费
-
以上三种属于传统型数据库,又叫做:关系型数据库 ,这三者的设计理念相同,用法比较类似。
3. 存储数据的方式
-
存储数据 的 方式 就是 数据以什么格式进行存储
3.2 excel分类存储
计算机中的数据,经常使用类似Excel 表的结构进行管理。每个 Excel 中,数据的组织结构分别为工作簿、工作表、数据行、列这 4 大部分组成。如图:
所有数据都以表格的形式组织 目的是可读性强。
一个表包括行和列
行称为 数据/记录 (data)
列称为 字段。(column)
mysql数据库 也是使用excel格式 对数据进行存储
-
一个数据库 对应一个excel工作簿(excel文件)
-
数据库中 可以包含多个数据表(对应excel中的工作表)
-
每个数据表中 也是通过行和列 来进行数据的存储的
-
行被称为 数据/记录 列被称为字段
3.3安装mysql 参见 word文档
3.4安装数据可视化工具 navicat
3.5navicat链接mysql
-
1.打开navicat 点击左上角的连接按钮
-
2.在新建的连接中 新建数据库
-
3.在数据库中新建数据表
-
4.新建数据表
-
右击 表选项 选择新建表 就会弹出一个设计表的界面
-
-
5.数据表的设计
-
数据类型
-
tinyint 整形 0-255 字节
-
smallint 整形 0-65535
-
int 整形 0 - 4 294 967 295
-
date 时间 yyyy-mm-dd (不常用,一般存储时间戳)
-
char(n) 定长字符串 0-255 设置固定长度 比如手机号11位
-
varchar 变长字符串 0-65535
-
text 长文本数据
-
-
数据表的设计规则
-
1.尽量使用小写名称不要使用一些可能是关键字的名称 table database
-
2.我们可以用 姓名+下划线来避免出现关键字 l_table 表的第1个字符+下划线
-
3.一个表中100% 会有一个id的。这个id会设置成主键,是int类型 额外设置(不为null,自动增长)
-
主键:为了确保每条数据具有唯一性
-
注意:主键在每一个数据表中 只能有一个
-
-
4.编写表
-
-
-
6.存储数据表
-
我们写好的数据表 可以导出为 sql文件(后缀名为.sql的文件)进行保存
-
具体操作方法为
-
1.右击要转储的数据表
-
2.在下拉菜单中 选择 转储sql文件
-
3.在子菜单中 选择结构和数据
-
-
之后 如果其他开发者需要使用我们的数据表 就可以直接获取我们的sql文件 并在navicat中运行sql文件 即可加载出我们之前写好的表
-
具体操作方法为
-
1.右击数据库中的 表 选项
-
2.选择菜单中的 运行sql文件
-
3.在对话框的地址栏中 选择要运行的sql文件
-
-
4.数据库的操作指令
sql语句简介
-
SQL(英文全称:Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据。
4.1增
insert into 表名 (字段名1,字段名2,字段名3,...) values ("值1","值2","值3",...)
作用:在指定的表中 插入一条数据(行) 这条数据中各个字段的对应值 为 后面设置的值
例如:insert into heroes (name,gender,skills) values ("赵云","男","xxxx")
4.2删
delete from 表名 where 条件
作用:从指定表名的表中 删除 满足条件的数据(行)
例如:delete from heroes where id="5"
4.3改
UPDATE 表名 SET 字段名1 = 值1,字段名2 = 值2 ,... [WHERE 条件]
作用:将指定表名的表中 满足条件的数据 进行更新 更新的方式就是 在set后面 将所有指定的字段 的值 设置为指定的值
update heroes set siklls="三英战吕布" where gender="男"
4.4查(重点)
SELECT * FROM 表名 作用:查询指定表中 所有数据
例如:select * from heroes
SELECT 字段名1,字段名2,... FROM 表名 作用:查询指定表中 指定字段的数据
例如:select id,name from heroes
限制条件的查询
SELECT 字段名1,字段名2,... FROM 表名 where 条件 作用:查询指定表名的表中满足条件的数据中指定字段的数据
-
起别名
-
SELECT 字段名1 as 别名,字段名2,... FROM 表名 作用查询指定表中指定字段的数据 并在展示出来的时候 字段名会替换为指定的别名 例如:select id,name,role_tese_voice as 特色语音 from heroes
-
-
拼接
-
SELECT 字段名1,concat(字段名2,"要拼接的内容"),... FROM 表名 作用:查询指定表的指定字段的数据 并在字段2的数据后面 拼接指定的内容 例如:select concat(name,"-三国") as name,gender,skills from heroes 注意:在拼接的时候 一定要记得起别名 否则 查询出来的数据的字段名 会设置为concat(name,"-三国")
-
4.5其他指令
-
where 条件(运算符表)
-
实例代码
-
where 字段名 = 值 表示设置条件为 字段名必须要等于 指定的值 where 字段名 != 值 表示设置条件为 字段名必须要不等于 指定的值 至于> < >= <=等 都和上述运算符差不多
-
between
-
where 字段名 between 值1 and 值2 表示设置条件为 在值1 和 值2 之间都可以满足条件 包括值1 值2
-
-
like
-
主句 WHERE 字段名 LIKE 'a%' -- 在某个列中查询以a为开头的数据 主句 WHERE 字段名 LIKE '%a' -- 在某个列中查询以a为结尾的数据 主句 WHERE 字段名 LIKE '%a%' -- 在某个列中查询包含a的数据
-
-
and和or
-
where 条件1 and 条件2 表示操作两个条件都满足的数据 select id,concat(name,"-三国") as name,gender,skills from heroes where name like "%张%" and name like "%关%" where 条件1 or 条件2 表示操作两个条件中 能满足任意一个的数据 select id,concat(name,"-三国") as name,gender,skills from heroes where name like "%张%" or name like "%关%"
-
-
4.6 排序
order by
主句 order by 排序规则
排序规则:asc(升序排列) desc(降序排列) rand()(随机排列)
升序排列:主句 order by 字段名 asc 根据指定字段的数据 进行升序排列
降序排列:主句 order by 字段名 desc 根据指定字段的数据 进行降序排列
随机排列:主句 order by rand() 随机排序
4.7 分组查询
SELECT *[,聚合函数] FROM 表名 [GROUP BY 字段]
作用:查询指定表中所有数据 并将查询出来的结果 根据group by中指定的字段进行分组 并通过聚合函数进行相应的操作
count用来计算总数量
select 要查询的字段 count(*) from 表名 group by 用来分组的字段
作用:根据指定字段 对查询出来的数据进行分组 并将各个分组中包含的数据 进行计数 显示出来
max 用来计算分组中指定字段的最大值
select 要查询的字段 max(指定的字段) from 表名 group by 用来分组的字段
作用:根据用来分组的字段 对查询出来的数据进行分组 并计算各个分组中 指定字段中数据的最大值 进行显示
min 用来计算分组中指定字段的最小值
select 要查询的字段 min(指定的字段) from 表名 group by 用来分组的字段
作用:根据用来分组的字段 对查询出来的数据进行分组 并计算各个分组中 指定字段中数据的最小值 进行显示
avg 用来计算分组中指定字段的平均值
select 要查询的字段 avg(指定的字段) from 表名 group by 用来分组的字段
作用:根据用来分组的字段 对查询出来的数据进行分组 并计算各个分组中指定字段的数据的平均值 进行显示
sum 用来计算分组中指定字段的数据和
select 要查询的字段 sum(指定的字段) from 表名 group by 用来分组的字段
作用:根据用来分组的字段 对查询出来的数据进行分组 并计算各个分组中指定字段的数据的加和 进行显示
4.8limit 设置查询条数
select * from 表名 limit 起始索引,要查询的条数
作用:从起始索引开始 向后查询 指定条数的数据
select * from 表名 limit 要查询的条数
如果只写了一个参数 表示以0为起始索引 向后查询指定的条数
4.9 join
-
select * from 表1 join 表2 on 条件 完全连接的联表查询 左表和右表的数据都会显示出来
-
select * from 表1 left join 表2 on 条件 左连接的联表查询 左表的数据会完全显示出来 右表数据则不会
-
select * from 表1 right join 表2 on 条件 右连接的联表查询 右表的数据会完全显示出来 左表数据则不会