python mysql text_Python学习日记(三十三) Mysql数据库篇 一

本文介绍了MySQL数据库的背景、安装过程、服务启停、环境变量配置、用户管理、权限设置以及数据表的基本操作,包括创建、查看、删除数据库和数据表,以及数据的增删改查。此外,还涵盖了不同数据类型,如整数、小数、字符串和时间类型。
摘要由CSDN通过智能技术生成

背景

Mysql是一个关系型数据库,由瑞典Mysql AB开发,目前属于Oracle旗下的产品。Mysql是目前最流行的关系型数据库管理系统之一,在WEB方面,Mysql是最好的RDBMS(Relational Database Management System)。Mysql是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

其他类似软件:

关系型数据库:sqllite、db2、Oracle、access、sql sever、Mysql

非关系型数据库:MongoDB、redis

安装

在Windows系统上,我们下载完Mysql后安装到任意目录下,可以看到里面有一个bin文件,打开

bd7a8eedb56d510ba425031088cc3f2e.png

里面有mysql.exe和mysqld.exe两个执行档,它们分别是客户端和服务端

72691a31d3751f58ad6def9233072cab.png

启用

在取得bin目录路径后,初始化服务端

3fd2447d29768783efa9c1f636483dc6.png

输入上面语句后我们会发现原目录下会多出一个data的文件夹

38d2306d69f7415fad3773eaed6dc0ee.png

然后再启动服务端

901615cc311520721c37dff8a20704db.png

之后我们再打开一个新的command,实现客户端连接到服务端

这里默认的用户名是root密码为空,执行时按回车跳过就好

a8ced98cd81aa0a903d124c672befa56.png

使用show databases;去看data文件下的文件:

37665dd09493d01cbe339b62ca265790.png

也可以创建一个新的db文件:

8c6e1ee0ba58830ed82c337a444dd6ea.png

添加环境变量

如果觉得每次执行时都要加上一长串的路径很麻烦我们可以直接在系统上添加环境变量

获取bin的路径:F:\mysql-8.0.11-winx64\mysql-8.0.11-winx64\bin

然后右键计算机->高级系统设置->高级->环境变量->找到系统变量的Path在后面加上;路径

f38045372007686adf1e022b08d5d13b.png

这样我们在执行服务端和客户端就不用再加上路径了

服务端:

8785b6b4d467cdf6a48d71536168be8a.png

客户端:

033648dd377a604a9cf67f33371c3336.png

制作Windows上的Mysql服务

22cb8727776394e06d20d4b37d1a9ec6.png

这样我们就可以在服务的进程上看到了Mysql服务,我们就可以点击左上的启动此服务

6e8848e0b9c34c3f96f8ef63d3b6205c.png

或者我们输入下面语句也可以启动服务

5fe5093a796123eeb21eab98126a4c0e.png

如果要停止Mysql服务

6ba45bb9f71ce0ed2c824fd1f6ab104d.png

移除Mysql服务

9adfaa8271c9178ca1c73f29b393a75e.png

创建用户及授权

首先在data文件夹下的文件夹(比如db1)我们可以称为数据库,而db1文件夹下的文件(Excel文件),我们称为表,在这个表中的一行行排列的就是数据行

默认的用户是root,那么这个root被放在哪里呢?

497f357c6123e248076a307fb7ec7a25.png

16fb18e8d88943bff318683271076fc1.png

Mysql在一个用户登录的时候会在user中查看里面是否有这个用户的信息

那如何创建新的用户?

语法:

create user 'username'@'IP addres' identified by 'password';             #限制只能在这台机器上登录

create user 'username'@'192.168.43.%' identified by 'password';          #%表示在最后一位数没有要求,只需要考虑前三尾数相同即可

create user 'username'@'%' identified by 'password';                  #表示所有机器都可以登入

授权用户

grant 权限名 on db1.t1 to 'username'@'%'; #只能让该用户访问db1文件夹下的表t1

grant 权限名 on db1.* to 'username'@'%'; #能让该用户访问db1文件夹下的所有表

grant 权限名 on *.* to 'username'@'%'; #表示可以让该用户访问所有数据库的内容

权限名称:

all privileges 除grant外的所有权限

select 仅查权限

select,insert 查和插入权限

usage 无访问权限

alter 使用alter table

alter routine 使用alter procedure和drop procedure

create 使用create table

create routine 使用create procedure

create temporary tables 使用create temporary tables

create user 使用create user、drop user、rename user和revoke all privileges

create view 使用create view

delete 使用delete

drop 使用drop table

execute 使用call和存储过程

file 使用select into outfile 和 load data infile

grant option 使用grant 和 revoke

index 使用index

insert 使用insert

lock tables 使用lock table

process 使用show full processlist

select 使用select

show databases 使用show databases

show view 使用show view

update 使用update

reload 使用flush

shutdown 使用mysqladmin shutdown(关闭MySQL)

super 使用change master、kill、logs、purge、master和setglobal。还允许mysqladmin调试登陆

replication client 服务器位置的访问

replication slave 由复制从属使用

使用

创建一个新用户并给他授权

8e37c5cd4a3af4137ed776fdb9f41011.png

然后我们重新开启一个客户端并登入新用户资料查看他能够看到的数据

5b96217d4059e6ca5f17f1d70105ab9e.png

其他用户管理语法:

删除用户:drop user 'username'@'IP address';

修改用户:rename user'username'@'IP address';

修改密码:set passwordfor 'username'@'IP address' = Password('new password')

其他授权语法:

查看权限:show grants for 'username'@'IP address';

取消授权:revoke 权限名 on'Database'.'Table' from 'username'@'IP address';

查看用户登录资料

bd6969d0f51772e12ae8a2ba12a29576.png

操作数据库及数据表

1.操作文件夹

<1>create database 新的数据库名; 创建一个新的数据库

7a783a9f8a33f2266dcd84d7f5008b7b.png

增加编码的要求:create database 新的数据库名 charset utf8; 这样写这个数据库的默认编码是以utf-8

<2>show databases; 显示所有数据库

<3>drop database 数据库名; 删除现有数据库

f5dfcc2cacc19e3c4687689b1bf02171.png

2.操作文件

<1>show tables; 显示出所有表格

<2>create table 表名(第一列数据名 数据类型,第二列数据名 数据类型...); 创建一个新的表名

0b42ff09a63ef623f09c9562e9a0e402.png

①增加编码要求:create table 表名(第一列数据名 数据类型,第二列数据名 数据类型...)default charset=utf8;

②增加引擎要求:create table 表名(第一列数据名 数据类型,第二列数据名 数据类型...) engine= innodbdefault charset=utf8;

innodb:支持事务,能恢复到之前的状态,原子性操作

myisum

③null、not null、default、auto_increment:

null->就是我的数据可以为空

not null->就是我的数据不可以为空

default->可以为我的数据设置一个默认值

auto_increment->用于自增,一般来说要搭配primary key使用;primary key的作用为约束(不能重复也不能为空)、加速查找,一个表里面只能有一个自增列,并且要有一个主键

6930dd178b692dcdd11cff6591049d55.png

3.操作文件中的内容

<1>insert into 表名(第一列数据名,第二列数据名...) values(值1,值2...); 往表内插入数据

4149ffce4a70af8d0be3338fa605d5e4.png

<2>selcet * from 表名; 查看表内所有信息

接上1的步骤结果

8d23cf20544333ea0df5843f9b50a81d.png

再添加一条信息

9f2ffd194754b926eb1802b66600e11e.png

<3>解决中文数据问题

b3963a95535f0a0e9de4dc6baffef4f1.png

<4>delete from 表名; 清空这个表的数据

若一个表只有一个自增数,它的id已经增加到3,若使用delete from 去清空这个表,再之后又新增了一笔资料后,它的自增值不重新开始

8188c5f03498fe3058149fffbadd7877.png

<5>truncate table 表名; 清空这个表的数据,执行速度快

使用trucate table就不会出现自增值不会不重新计算的情况

a78750bf086351d688365213311c7c6e.png

<6>drop table 表名; 删除这个表

48b2f40115a4718eb33bd3cf8eb4a4f0.png

数据表基本数据类型

按整数去分:

1.int

int unsighed:无符号整数 范围:0 ~ 4294967295

int sighed:有符号整数 范围:-2147483648 ~ 2147483647

2.tinyint

tinyint unsighed:无符号小整数 范围:0 ~ 255

tinyint sighed:有符号小整数 范围:-128 ~ 127

3.bigint

bigint unsighed:无符号大整数 范围:0 ~ 18446744073709551615

bigint sighed:有符号大整数 范围:-9223372036854775808 ~ 9223372036854775807

按小数去分:

1.FLOAT[(m,d)]

并不准确的小数 数值越大越不准确,m是数字总个数,d是小数点后个数

FLOAT unsighed:无符号单精度浮点数 范围:

-1.7976931348623157E+308 ~ -2.2250738585072014E-308

0

2.2250738585072014E-308 ~ 1.7976931348623157E+308

FLOAT sighed:有符号单精度浮点数 范围:

0

1.175494351E-38 to 3.402823466E+38

2.DOUBLE[(m,d)]

并不准确的小数 数值越大越不准确,m是数字总个数,d是小数点后个数

DOUBLE unsighed:无符号双精度浮点数 范围:

-1.7976931348623157E+308 to -2.2250738585072014E-308

0

2.2250738585072014E-308 to 1.7976931348623157E+308

DOUBLE sighed:有符号双精度浮点数 范围:

0

2.2250738585072014E-308 to 1.7976931348623157E+308

3.decimal[(m[,d])]

精准的小数值,m是数字总个数(负号不算),d是小数点后个数,m最大值为65,d最大值为30

按字符串去分:

1.char(m)

char数据类型用于表示固定长度的字符串,可以包含最多达255个字符.其中m代表字符串的长度。即使数据小于m长度,也会占用长度。

2.varchar(m)

varchars数据类型用于变长的字符串,可以包含最多达255个字符。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。

虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡

创建数据表时把定长的数据往前放置,把不固定长度的数据往后放

3.text

text数据类型用于保存变长的大字符串,可以组多到65535 (2**16 − 1)个字符

4.mediumtext

范围:16,777,215 (2**24 − 1)个字符

5.longtext

范围:4,294,967,295 or 4GB (2**32 − 1)个字符

将上传文件存硬盘,DB存路径

按时间类型分:

1.DATE

YYYY-MM-DD(1000-01-01/9999-12-31)

2.TIME

HH:MM:SS('-838:59:59'/'838:59:59')

3.YEAR

YYYY(1901/2155)

4.DATETIME

YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)

5.TIMESTAMP

YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

按二进制数据分:

1.TinyBlob

2.Blob

3.MediumBlob

4.LongBlob

其他:

1.bit[(m)]

二进制位(101001),m表示二进制位的长度(1-64),默认m=1

2.enum

枚举类型An ENUM column can have a maximum of 65,535 distinct elements.(The practical limit is less than 3000.)

示例:

CREATE TABLE shirts (

name VARCHAR(40),

size ENUM('x-small', 'small', 'medium', 'large', 'x-large')

);

INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');

3.set

集合类型A SET column can have a maximum of 64distinct members.

示例:

CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));

INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

基本的增删改查

1.插入

insert into 表名(第一列数据名,第二列数据名...) values(值1,值2...);

2.删除

delete from 表名 where id<6; 只删除id小于6的数据

3.修改

①让表中所有的这个列下的值都改成一个固定数据:update 表名 set 列名=修改的固定值;

②基于①但有条件得去修改update 表名 set 列名=修改的固定值 where 列名=值;

4.查看

select * from 表名;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值