9 数据库

9.1 数据库的初识

​数据库是可以独立运行的,并且可以对数据的增删改查提供高效便捷方式的工具。

数据库解决的问题:

​解决了操作文件的效率和便捷问题

​解决了多个服务同时使用数据时的一致性问题

​解决了安全问题

​解决了并发问题

数据库的优点:

​程序稳定性:应用服务器的崩溃不会影响数据的安全

​数据的一致性:将所有数据的管理统一,所有对数据的操作统一

​并发:数据库支持并发的网络操作,不需要我们自己写socket

​效率:使用数据库对数据进行增删改查的效率比操作文件的效率高甚多

常见概念

DataBase

数据库,简称DB,存放数据的仓库,数据按照一定的格式存放

数据库中的数据按照一定的模型组织、描述和纯属,具有较小的冗余,较高的数据独立性和易扩展性,可为各种用户共享数据

DBMS

数据库管理系统 ,对数据进行科学的组织和存储,以及能够高效的获取和维护数据

常见数据库分类:

【关系型数据库】通过某些条件都可以同一条目;数据之间关联性比较紧密;存取效率相对低;MySQL Oracle SQL server SQLlite(轻量级) access

【非关系型数据库】速度快;通过key找数据;数据之间关联关系是K-V模式;存取效率相对高;redis mongodb(轻量级) memcache(内存级别,断电消失)

数据库管理员 DBA

各个概念之间的关系

记录:多个字段的信息组成一条记录

表:stable,文件,用来存放多条信息或记录

数据库:文件夹,用来组织文件/表

数据库管理系统:管理数据库

数据库服务器:运行数据库管理软件

9.2 MySQL的安装

卸载数据库:

停止数据库服务: net stop mysql 停止MySQL服务,还可以在服务里找到停掉

删除服务: mysqld remove

删除安装文件

删除环境变量

清除注册表或者重启电脑

安装数据库:

安装包下载:

找到安装包:路径不能有中文;路径中不能由特殊字符\t \n \b \1 \2 ;

修改配置文件:utf-8;所有配置项后面不要由特殊的符号;修改两个路径basedir,datadir

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

#设置3306端口

port = 3306

# 设置mysql的安装目录

basedir=D:\mysql\mysql-5.6.45-winx64

# 设置mysql数据库的数据的存放目录

datadir=D:\mysql\mysql-5.6.45-winx64\data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

配置环境变量:把bin目录的路径添加到环境变量中

以管理员身份打开CMD: mysqld install net start mysql

9.3 常用命令

数据库命令分类

SQL:Structured Query Language,结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新、管理关系型数据库

【按功能分类】

DDL语句 数据库定义语言:数据库、表、试图、索引、存储过程

DML语句 数据库操纵语言:增删改查

DCL语句 数据库控制语句:控制用户权限等

进入与退出MySQL

mysql

mysql> select user() # 查看当前用户

mysql> exit # 退出

# 指定用户密码登录

mysql -uroot -p

Enter password: # 第一次使用root用户登录时,默认是没有密码的,回车直接登录

mysql> set password = password('root'); # 给当前数据库设置密码

# 远程登陆

mysql -utest -p -h 192.168.13.121

创建账号

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

权限包括:select,insert,update,delete == all

数据库名.*:与该数据库里的所有表建立连接; *.* 表示所有数据库的所有表

# 创建本地账户

mysql> create user 'admin'@'localhost' identified by 'admin';

# 创建可用于远程登陆账号

mysql> create user 'test'@'192.168.10.%' IDENTIFIED BY '12345' #'192.168.10.%' 指的是一个网段,可以指定单独一台主机的IP

mysql> create user 'test1'@'%' # 表示所有机器都可以连接

# 给账号赋权限

mysql> grant all on *.* to 'admin'@'localhost'; # 权限全开

mysql> grant select on *.* to 'test1'; # 开部分权限,给test1用户赋予查询所有数据库所有表的权限

mysql> flush privileges; # 赋权立马生效

# 查看用户权限

mysql> show grants for 'admin'@'localhost';

操作文件夹(库)

操作

命令

创建数据库

create database 数据库名 charset utf8 ;

删除数据库(千万别用)

drop database 数据库名;

查看所有数据库

show databases;

查看当前数据库

select database();或者status;

连接数据库

use 数据库名

修改数据库

alter database 数据库名 charset latin1;

进入到其他数据库时使用:  use 数据库名

操作文件(表)

操作

命令

创建数据表

create table 表名([字段1] [类型],[字段2] [类型]);

删除数据表

drop table 表名;

清空表

delete from 表名;或者 Truncate 表名;

查看表的结构

desc 表名; 或者 describe 表名 ;

查看建表语句

show create table 表名;

重命名数据表

aletr table 现表名 rename 新表名;

增加列

alter table 表名 add 列名 列类型 ;

删除列

alter table 表名 drop 列名;

重命名列

alter table 表名 change 现列名 新列名 类型;

修改列的属性

alter table 表名 modify 列名 新属性;

添加索引

alter table 表名 add index 索引名(字段名 1,字段名 2…);

查看索引

show index from 表名;

删除索引

alter table 表名 drop index 索引名

表中的每一行叫做一个字段

操作数据

操作

命令

增加

insert into 表名 values(字段1),(字段2),(字段3);字段内部数据以,隔开

查看

select 内容 from 表名 ;

修改

update 表名set 修改的内容 where 条件 ;

删除

delete from 表名 where 条件 ;

清空表

delete from 表名; truncate table 表名;(比第一条运行速度快)

删除字段自增长

alter table 表名 change 列名 列名 类型 ;注意列名称要重复一次,即需要将列的名称写两次

增加字段自增长

alter table 表名 modify 列名 类型 auto_increment;

(反方向)alter table 表名 change 列名 列名 类型auto_increment;

修改自增长起始值

alter table 表名 auto_increment=[value];

python教学数据库_Python学习之数据库初识相关推荐

  1. mysql数据库python基础知识_python学习之Mysql数据库编程基础知识介绍

    在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Pytho ...

  2. python建立文件数据库_python学习-- Django根据现有数据库,自动生成models模型文件...

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  3. python怎么输入文件数据库_python学习日记——文件及数据库

    一.文件处理 1.文本文件(or二进制文件) with通过__enter__方法初始化,然后在__exit__中做善后以及处理异常,所以使用with处理的对象必须有__enter__()和__exit ...

  4. python增加一行_python 增加一行数据库

    爬虫工作环境配置 磨刀不误砍柴工,在正式爬虫学习前,需要事先配置工作环境,包括如下: python环境.推荐python3,Windows建议用anaconda,Linux用如下代码 sudo apt ...

  5. python自带的数据库_Python小白的数据库入门

    前言 SQL数据库数据库SQL语言入门SQL简介SQL 的作用 SQL语句分类 SQLite 数据库SQLite 中的数据类型 DDL语句创建表 删除表 修改表 DML语句添加 删除 修改 查询 Py ...

  6. python 并发 数据库_python写入mysql数据库

    scrapy爬虫成长日记之将抓取内容写入mysql数据库 前面小试了一下scrapy抓取博客园的博客(您可在此查看scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据),但是前面抓取 ...

  7. python如何查询数据库_python如何访问数据库

    1.背景: python提供了很多数据库接口, 常用的数据库有 MS SQL Server /mysql /oracle 等. 打开链接 https://wiki.python.org/moin/Da ...

  8. python创建sqlite3数据库_Python连接SQLite数据库

    Python连接SQLite数据库 SQLite 是一种嵌入式数据库,它的数据库就是一个文件.由于 SQLite 本身是 C 写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在 iOS 和 ...

  9. python建立sqlite数据库_python sqlite3 创建数据库

    Python标准库14 数据库 (sqlite3) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关 ...

最新文章

  1. Symantec Backup Exec 2012 Agent For Linux安装
  2. mysql全量和增量备份脚本
  3. [CLPR] 定位算法探幽 - 边缘和形态学
  4. 移动机器人平台-ROS和GitHub链接
  5. 2019阿里应届内推编程题
  6. 用微服务和容器替换旧版Java EE应用程序服务器
  7. 一文看懂 | 内存交换机制
  8. line-hieght与vertical-align的区别与联系
  9. Java中获取当前类名和方法名
  10. vs2013代码模板设置
  11. 23种设计模式-装饰模式
  12. SpringBoot(十七)_springboot跨域处理
  13. 计算机二级学科代码,二级学科分和代码表.doc
  14. ios swift5 设置PingFangSC字体
  15. GPS卫星定位基本原理
  16. 优化数据库方法 php,PHP优化MYSQL数据库的方法有哪些
  17. da8da八字排盘官方下载_da8da六爻排盘
  18. 阿里云DDNS+iKuai 软路由+证书安装
  19. PCL学习笔记(20)——remove_outliers
  20. 微医与友邦中国战略合作,智能医务室为职员健康护航

热门文章

  1. CRM exception when customizing download is executed in ERP due to empty table gt_crm
  2. SAP CRM WebClient UI CL_BSP_MESSAGES
  3. why my filter by titleID does not work
  4. SAP UI5加载xml视图的全过程
  5. 一步步在Kubernetes里运行Web应用
  6. 推荐一个markdown格式转html格式的开源JavaScript库
  7. linux添加cmd命令行参数,Windows 终端命令行参数 | Microsoft Docs
  8. windows没有磁盘_Windows硬盘和内存镜像取证
  9. 工业机器人九龙坡区职教中心_山西省襄汾县职教中心“智能工业机器人订单班”学生集体观看直播“2020一带一路暨金砖国家技能发展与技术创新大赛”...
  10. matlab 双音多频 接收端检测到的号码,信号语音论文,关于基于MATLAB的双音多频信号识别相关参考文献资料-免费论文范文...