python中对数据库的理解--------MySQL数据库

好久不见. 提交于 2019-12-05 10:56:27

数据库:按照数据结构来组织、存储和管理数据的仓库。

数据库的分类:关系型数据库和非关系型数据库
MySQL------关系型数据库。
关系型数据库的特点 :
将数据保存在不同的表中,再将这些表放入数据库中,而不是将所有数据统一放在数据库里。
优点:这样不仅增加了Mysql的读取速度,灵活性和可管理型也得到了很大的提高,访问以及管理Mysql数据库的最常用标准化语言为SQL结构化查询的语句,竟而让数据持久化存储在硬盘中;
关系图表:
在这里插入图片描述
关系型数据库的设计规则:遵循ER模型和三范式
在这里插入图片描述
了解什么是ER模型:(实体—联系----属性)
ER模型组成分为实体和联系,实体是对现实生活中的抽象,实体与实体之间的信息传输是通过联系来实现的。属性是实体与联系共享的一个名片。属性从分类上讲有简单属性和复合属性,有单值属性和多值属性,储存属性和派生属性。在复合属性中,各个属性之间存在一定的逻辑依赖关系,或者说是层次关系,比如书地址属性,它可以分为省,市,县…。而对峙属性它们之间不存在一定的联系,比如说学位,它可以有硕士,博士,学士等等。

对ER模型的操作其实就是对ER模型元素的操作,就是对实体,联系,属性之间的操作,操作的目的是实现对用户的需求的同时还要减少数据的冗余。

E:Entity代表实体的意思,对应到数据库当中的一张表。
R:Relationship代表关系的意思。

三范式:1、列不能拆分 2、唯一标识 3、关系引用主键

数据表的设计:
原理:在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。
1) 字段类型
在mysql中包含的数据类型很多,这里主要列出来常用的几种。
数字:int , decimal(小数的),
例如:decimal(5,2)的意思是,最大5位数,其中小数2位,1.2和2.33都行,但10000.21就不行,超出位数了。
字符串:char ,varchar,text。
例如:text存储比较多的字符串,比如商品的描述信息 char存储的是固定的字符串数据 varchar存储的是可变的数据 存储的是字符
char(8)存储的数据不满8个字符会在右侧自动补上空格字符–>"abcd "
使用场景:存手机号码固定的就可以使用char(11)
varchar(8)存储数据不满8个字符,不会自动空格字符–>“abcd”
例如:存姓名用varchar(8)
日期:datetime,date,time 1987-07-24
布尔:bit(比如性别,数据是否删除)

2) 约束–主键、非空、惟一,默认值,外键,自动增长
约束就是限制的条件
主键primary key;不能重复,唯一标识,物理的存储方式,速度快
非空not null;比如要姓名不能为空,当保存为null的时候就会报错。
惟一unique;这个值是唯一的。有重复的了会报错(比如身份证)
默认default;如果不写就会有个默认值,这种叫默认,只有类型。
外键foreign key

数据库的安装
安装MySQL服务端和客户端
检查mysql安装情况。
ps -ajx|grep mysql 查看进程方式查看

Mysql -uroot -p你的密码 进入mysql代表安装成功
sudo service mysql start 开启服务
sudo service mysql stop 停止服务
Sudo service mysql restart 重启服务

1、 进入数据库
mysql –u用户名 –p你的密码
2、 查看所有的数据库
show databases
3、使用mysql数据库
use mysql
4、查看mysql库中所有的表
show tables
5、在user 这个表里面查看用户和用户权限字段
select user,host from user;
6、为数据库创建新用户并且赋予权限允许外部链接
grant all privileges on . to 用户名@"%" identified by “用户名密码” with grant option;
7、 删除原来初始创建的root用户
delete from user where user=’root’ and host = ‘localhost’;
8、刷新数据库特权
flush privileges;
9、打开配置文件,将bind_address修改为0.0.0.0
sudo vi /etc/mysql/mysql.conf.d/mysqld.conf
10.重启mysql服务,使用windows下客户端进行连接

数据库命令行操作:
1.查看所有数据库
show databases;
2.切换数据库
use [数据库名];
3.创建数据库
create database [数据库名] ;
4.删除数据库
drop database [数据库名];
5.对表的操作
查看所有表
show tables;
6.创建表
create table [表名](字段1 类型1 约束1,字段2 类型2 约束2);
7.删除表
drop table [表名]
8.修改表名字
rename table [表名] to [新名]

对字段的操作
9.查询字段(表结构)
desc [表名]
10.增加表的字段
alter table [表明]add [字段名 类型 约束]
11.删除字段
alter table [表名]drop[字段名]
12.修改字段
alter table [表名] change [字段名] [新字段名 类型 约束]
① 、alter table students change id id int;
②、alter table students drop primary key;

对数据的操作
13.增加数据
插入一个全字段
insert into students values(0,’xxx’,31,1)
插入多个全字段
insert into students values(0,’liudehua’,24,0),(0,’yangmi’,31,0)
插入一个部分字段
insert into students(id,name) values(0,’zhaoliying’)
插入多个部分字段
insert into students(id,name) values(0,’liushishi’),(0,’linzhiling’)
14.删除某一条
delete from students where id=1;
15.清空
delete from students;
16.修改数据
update student set name=’xxx’ where name=’liudehua’
17.查找所有数据
select * from students
18.数据库备份和恢复
备份: sudo mysqldump –u数据库名 –p数据库密码 备份文件夹名> ~/Desktop/文件夹名back.sql
恢复:进入mysql先要创建一个新的数据库,注意字符集
然后退出mysql
sudo mysql –u数据库名 –p数据库密码 < ~/Desktop/备份文件夹名back.sql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!