一、数据库介绍
- 在python基础班,想要把数据做到永久储存,使用的是文件;数据库也是做永久存储的。
- 数据库分类:关系型数据库(以二维表格形式存储数据);非关系行数据库即nosql(以key-value的方式存储)
数据库是用来管理和存储数据的。读写速度比文件快。 - 如果想使用数据库,就需要安装数据库管理系统(就是一个应用软件)。例如想要使用mysql数据库,就要安装mysql数据库管理系统
关系型数据库管理系统分为:
关系型数据库服务端软件:用来管理多个数据库,各个数据库都有多个数据文件…
关系型数据库客户端软件:用来跟服务端软件进行通信,获取服务端的数据
说明:关系型数据库分为服务端和客户端,那么底层通信使用的是TCP协议
二、关系型数据库的语言:SQL
SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS(即关系型数据库)的数据库的语言。用来实现数据库客户端和服务端的通信。
SQL语言主要分为:
DQL:数据查询语言,用于对数据进行查询,如select
DML:数据操作语言,对数据进行增加、修改、删除,如insert、update、delete
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback-----(事务可以理解为一个团体,这个团体是要么都执行,要么都不执行)
DCL:数据控制语言,进行授权与权限回收,如grant、revoke-----(是对用户权限进行设置,例如该用户对这张表只能查询,对另一张表可以进行增删改等。)
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
三、mysql数据库:
多表关联:多张表通过相同的字段关联
多表关联一定是左表的每条数据都和右表的每条数据进行对比,满足条件的按照要求保留(如inner join 则是两边表都有该字段的才保留,left join则是左边的表内容都表里,右边的表包含坐标中关系字段的才保留)
需求:学生在生日当天放假,查出考试安排冲突的情况
方法一:
select a.user_id,a.name,b.course,b.test from user a inner join test b on a.user_id=b.user_id where a.birth=b.test_date;
方法二:可以将条件一起写在on条件里
select a.user_id,a.name,b.course,b.test from user a inner join test b on a.user_id=b.user_id and a.birth=b.test_date;
注意:
5. on条件一定只能是等于=,如果条件是不等于、大于之类的都不能放在on条件里
6. join … on … 等价于 inner join … on …
MySQL
MySQL是一个关系型数据库管理系统
使用MySQL系统,需要安装服务端和客户端
sudo apt-get install mysql-server #服务端安装命令(ubantu)
sudo apt-get install mysql-client #命令行客户端mysql的安装
apt-cache show mysql-server #显示MySQL服务端安装包信息效果图
查看MySQL服务效果图:
ps -aux | grep myslq
ps 查看当前系统中的进程
-a 表示所有用户
-u 表示显示用户名
-x 表示显示所有的执行程序