MySQL 使用入门 (全)
数据库简介
1.数据库概述
①数据库:是按照某种数据结构对数据进行组织,存储和管理的容器,简单的说就是用来存储和管理数据的容器
②数据库系统:是指在计算机中引入数据库后的系统,一般由数据库,数据库管理系统,应用程序和数据库管理员组成
③数据库管理系统:是一个管理,控制数据库容器中各种数据库对象的系统软件
2.结构化查询语言SQL
①结构化查询语言:是一种用来与数据库通信的语言,其利用一些简单的句子构成基本的语法来存取数据库的内容,便于用户从数据库中获得和操作所需数据
②SQL语言特点:非过程化语言,统一的语言,关系数据库的公共语言
③SQL语言的组成:数据库定义语言(DDL),数据库操纵语言(DML),数据控制语言(DCL)
3.数据库设计基本步骤
①需求分析阶段
②概念结构设计阶段
③逻辑结构设计阶段
④数据库的物理结构设计阶段
⑤数据库的实施阶段
⑥数据库运行与维护阶段
4.MySQL数据库
它是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据存放在一个大仓库,提高了速度和灵活性
特点:
体积小,运行速度快,成本低,开放源码
单进程,多线程架构,属于轻量级的数据库
5.MySQL体系结构
包括连接池组件,管理服务和工具组件,SQL接口组件,查询分析组件,优化器组件,缓存组件,插件式存储引擎以及物理组件
6.数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性
7.数据库的分类
①文档型,如sqlite,就是一个文件,通过对文件的复制完成数据库的复制
②服务型,如mysql、postgresql,数据存储在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作
8.数据库的操作
①数据库的操作,包括创建、删除
②表的操作,包括创建、修改、删除
③数据的操作,包括增加、修改、删除、查询,简称crud
10.常用的可视化操作工具:MySQL-Front,MySQL Workbench及Navicat for MySQL
11. SQL的基本书写规则
①关键字大写
②表名的首字大写
③其余(列名)小写
E-R模型
1.E表示entry,实体;R表示relationship,关系当前物理的数据库都是按照E-R模型进行设计的
2.关系描述两个实体之间的对应规则,包括:
①一对一
②一对多
③多对多
3.三范式
①第一范式(1NF):列不可拆分
②第二范式(2NF):唯一标识
③第三范式(3NF):引用主键
说明:后一个范式,都是在前一个范式的基础上建立的
4.数据完整性
一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束
5.字段类型
①数字:int,decimal:如decimal(5,2),表示数字长度不超过5位,小数不超过2位
②字符串:char,varchar,text:其中char和varchar都是有限字符的,而text是不确定的。char和varchar都是8个字符,但char如果不够会补充空格,varchar是不会补充空格的
③日期:datetime
④布尔:bit
6.约束
①主键primary key
②非空not null
③惟一unique
④默认default
⑤外键foreign key
⑥auto_increment表示自动增长
7. 数据库的选型
①开发人员的熟练程度,费用,数据规模,性能要求,集群能力等,也可参考数据库管理员的建议
②对于有1:1关系的两个表,为两个表设置相同的主键列
③对于有1:N关系的两个表,在N表中添加一个外键列,该列与1表的主键列向关联
④对于M:N关系,生成一个单独的表表示该关系,该关系的列由两个表的主键组成
命令脚本命令
1.远程连接
一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库
运行命令:
-h后面写要连接的主机ip地址
-u后面写连接的用户名
-p回车后写密码
2.数据库操作
①创建数据库
②删除数据库
③切换数据库
④查看当前选择的数据库
3.表操作
①查看当前数据库中所有表
②创建表
③修改表
④删除表
⑤查看表结构
⑥更改表名称
⑦查看表的创建语句
4.数据操作
①查询
②增加
③修改
④删除
⑤逻辑删除,本质就是修改操作update
⑥如果需要删除则
5.备份与恢复
数据备份
①进入超级管理员
②进入mysql库目录
③运行mysqldump命令
④按提示输入mysql的密码
数据恢复
①连接mysql,创建数据库
②退出连接,执行如下命令
③根据提示输入mysql密码
查询(条件)
1.比较运算符
2.逻辑运算符
3.模糊查询
①%表示任意多个任意字符
②_表示一个任意字符
4.范围查询
①in表示在一个非连续的范围内
②between ... and ...表示在一个连续的范围内
5.空判断
①判空is null
②判非空is not null
6.优先级
①小括号,not,比较运算符,逻辑运算符
②and比or先运算,如果同时出现并希望先算or,需要结合()使用
查询(聚合)
1.count(*)表示计算总行数,括号中写星与列名,结果是相同的
2.max(列)表示求此列的最大值
3.min(列)表示求此列的最小值
4.sum(列)表示求此列的和
5.avg(列)表示求此列的平均值
查询(分组)
1.语法:
2.语法:
3.与聚合函数和Group by子句有关的常见错误
在select子句中书写了多余的列
在Group by子句中写了列的别名
①Group by的子句是随机的,不能人为排序
②不能在where子句中使用聚合函数
③只有select子句和having子句以及(order by)中才能够使用count等聚合函数
查询(排序)
语法:
将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推默认按照列值从小到大排列,asc从小到大排列,即升序,desc从大到小排序,即降序查询(分页)
语法:
查询(总结)
1.完整的select语句
From字句是否真的有必要?
并不是,只使用select子句也是可以的,如select(100+300)*3 as calculation,但在oracle中不允许
2.子查询
①子查询就是一次性视图.与视图不同,子查询在select语句执行完毕之后就会消失
②标量子查询:标量就是单一的意思,标量子查询有一个特殊的限制,必须而且只能返回1行1列的结果
③关联子查询:在子查询中添加where子句条件,where p1.product_type=p2.product_type
关系
1.外键
为stuid添加外键约束
2.外键的级联操作
①在删除students表的数据时,如果这个id值在scores中已经存在,则会抛异常
②推荐使用逻辑删除,还可以解决这个问题
③可以创建表时指定级联操作,也可以在创建表后再修改外键的级联操作
语法:
级联操作的类型包括:
①restrict(限制):默认值,抛异常
②cascade(级联):如果主表的记录删掉,则从表中相关联的记录都将被删除
③set null:将外键设置为空
④no action:什么都不做
连接查询
1.连接查询分类
①表A inner join 表B:表A与表B匹配的行会出现在结果中
②表A left join 表B:表A与表B匹配的行会出现在结果中,外加表A中独有的数据,未对应的数据使用null填充
③表A right join 表B:表A与表B匹配的行会出现在结果中,外加表B中独有的数据,未对应的数据使用null填充
④查询学生的姓名、平均分
2.自关联
创建areas表的语句如下:
视图
1.视图:从SQL的角度来看,视图和表是相同的两者的区别在于表中保存的是实际数据,而视图中保存的是select语句(视图本身并不存储数据)
定义视图:
2.视图的用途就是查询
3.视图的优点:
视图无需保存数据,因此可以节省存储设备的容量
可以将频繁使用的select语句保存成视图,这样就不用每次都重写了
4.视图的限制:
①定义视图时不能使用order by子句,这是因为视图和表一样数据行都是没有顺序的
②对视图进行更新(未被汇总得到的视图)
③条件:
select子句未使用Dintinct
From子句中只有一张表
未使用group by子句
未使用having子句
④删除视图(多重视图)
事务
1.事务:是恢复和并发控制的基本单位,什么是事务,就是需要在一个处理单元中执行的一系列更新处理的集合,通过使用事务,可以对数据库中的数据更新处理提交和取消进行<beigin,commit,rollback>视图本质就是对查询的一个封装
2.使用事务的请况:当数据被更改时,包括insert,update,delete,使用事务可以完成退回的功能,保证业务逻辑的正确性
3.事务四大特性(简称ACID)
①原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行
②一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致
③隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明
④持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障
⑤要求:表的类型必须是innodb或bdb类型,才可以对此表使用事务
⑥事务语句:
索引
1.单列索引和组合索引
①单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引
②组合索引,即一个索包含多个列
2.操作
①查看索引:
②创建索引:
③删除索引:
3.缺点
①虽然索引提高了查询速度,同时却会降低更新表的速度,如对表进行insert,update和delete。
②因为更新表时,mysql不仅要保存数据,还要保存一下索引文件
③建立索引会占用磁盘空间的索引文件
4.检测运行时间
①开启运行时间检测:
②执行查询语句:
③查看执行的时间:
谓词
1.就是返回值为真值的函数
like,in,not in,between,is null,is not null
函数
1.根据用途大致分为以下
①算术函数(用来进行数值计算的函数)
②字符串函数(用来进行字符串操作的函数)
③日期函数(用来进行日期操作的函数)
④转换函数(用来转换数值类型和值的函数)
⑤聚合函数(用来进行数据聚合的函数)
2.case表达式
case表达式分为简单case表达式和搜索case表达式两种
搜索case表达式包含简单case表达式的全部功能
集合运算
1.集合运算:集合在数据库领域表示记录的集合,具体来说表,视图和查询执行的结果都是记录的集合
2.集合运算注意事项
①作为运算对象的记录的列数必须相同
②作为运算对象的记录中列的类型必须一致
③可以使用任何select语句,但order by子句只能在最后使用一次
3.表的加法-union并集
4.选取表中的公共部分-intersect交集
5.记录的减法-except差集
6.表的联结
联结join就是将其他表的列添加过来,进行添加列的集合运算,union是以行(纵向)为单位进行操作,而联结则是以列(横向)为单位进行的
与python交互
1.安装引入模块
①安装mysql模块
②在文件中引入模块
2.Connection对象
用于建立与数据库的连接
3.对象的方法
4.Cursor对象
执行sql语句
5.对象的方法
6.对象的属性
①rowcount只读属性,表示最近一次execute()执行后受影响的行数
②connection获得当前连接对象
7.sql语句参数化

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一辈子不用考试?你可能是个假程序员,小心成杠精
程序员,一个凭技术吃饭的职业,似乎不需要任何的证书做支撑,只要你有实力,就可以混得风生水起,可以升职加薪,当上CTO,迎娶白富美,走向人生巅峰。 当一家企业的招聘信息上,写着“通过软考,取得中级以上资格”,你肯定会觉得,这家企业一定是疯了,技术水平达标,不久行了,要什么证书?一定是一家极其不靠谱的,形象工程公司。 即便是有十几年工作经验的“猿老”,都没见过公司招聘要求技能证书的,就算是印上“本科以上学历”,也只不过是为了降低招聘成本,仅此而已。 某公司高级PHP工程师职位要求 关于“程序员要不要证书”,大部分网友,都会告诉你:学习能力和经验更重要,证书什么的,完全没必要,企业也不认这个。当一个程序员,考了软考、拿到了红帽、甲骨文,甚至还会被鄙视:不务正业。 于是,绝大部分人成了“证书无用论”的代言人,“唯技术论”的死忠者。 这样对吗?当然没错,证书再牛,到头来还不是反应你技术水平的高低?可是,如果你真的认为证书毫无用处,恭喜你,你可能成为杠精了。 证书真的没有么,作为一名程序员,一辈子真的可以不考证书么?可以很明确的说,不行!或者现在也许行,未来肯定不行。 这得从我国的“双证书制度”谈...
- 下一篇
MongoDB 使用入门 (全)
MongoDB简介 1.MongoDB ①MongoDB 是一个基于分布式 文件存储的NoSQL数据库 ②由C++语言编写,运行稳定,性能高 ③旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 ④官方网址:https://www.mongodb.com/ 2.MongoDB特点 ①MongoDB可以轻松地布置两个活跃集群,但关系型不容易在两台服务器上同时运行单个数据库 ②MongoDB天然缺少对事物的支持 ③MongoDB并不提供主/主复制,但它支持分片 3.Bson和Json ①Bosn版本是Json的二进制格式,但并不意味着Bson占用的空间就比Json小的多 ②继续使用Bson的原因是因为MongoDB在设计上就是要求快速,而不是节省空间,如果处理数据的速度更快,存储文档时的一点开销是完全可以接受的 ③Bson更易于浏览(即遍历),遍历索引页非常快,第二点是很容易将Bson数据快速转化为编程语言的原生数据格式 4.名词 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 ro...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题