Python全栈开发之 Mysql (一)
一:
1.什么是数据库?
- 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
别说我们在写程序的时候创建的database就是一个数据库
2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?
- 他们均是一个软件,但是都有2个主要的功能
- 1.将数据保存到文件或内存
- 2.接受待定的命令,然后对文件进行相应的操作
如果有了以上软件,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作,
他们统称为数据库管理系统(DBMS,Database Management System)
3.3、什么是SQL ?
上述提到MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。SQL是结构化语言(Structured Query Language)的缩写,SQL是一种专门用来与数据库通信的语言。
一下是上课简单的总结,大概流程就是这个样子的,
- 一、数据库管理系统DBMS
- 软件
- bin
- config
- db (保存数据)
- - admin
- - 123asdfasd.txt {用户名, 密码,类型...}
- - 123asdfasdb.txt{用户名, 密码,类型...}
- - course
- - school
- src
- 写程序:
- a. 数据库在本地
- 1、找到目录
- 2、添加数据
- b. 数据库在远程
- 1、socket连接上远程机器
- 2、socket发送{命令} # add|asdfasdfadf
- 做些什么????
- a.
- A,程序
- 程序,socket客户端
- B,数据
- socket服务端
- C,制作一套规则
- add|阿德法撒旦发射点发
- delete|asdfasdf
- ....
- D,socket客户端和服务端用户认证,授权,限制
- 有人搞了一套软件:
- socket客户端
- B,数据
- socket服务端
- C,制作一套规则
- add|阿德法撒旦发射点发
- delete|asdfasdf
- ....
- D,socket客户端和服务端用户认证,授权,限制
- -- SqlServer(收费),Oracle,sqlite,access...,,,, MySQL
- MySQL,SqlServer(收费),Oracle,sqlite,access..
- 服务端和客户端
- mysql:
- add|asdfasd
- SqlServer:
- a|asdfasdf
二:下载和安装
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
想要使用MySQL来存储并操作数据,则需要做几件事情:
a. 安装MySQL服务端
b. 安装MySQL客户端
b. 【客户端】连接【服务端】
c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)
下载地址:
http:
//dev.mysql.com/downloads/mysql/
安装:
Windows:就是一直点点按照提示默认就行了
Linux: 执行这个命令
yum install mysql-server
Mac: 也是一直按照提示进行操作
点点点
- MySQL Community Server 5.7.16
http:
/
/
dev.mysql.com
/
downloads
/
mysql
/
2.解压
如果我们不想装在C盘,我们可以将解压后的文件移动到指定的文件夹去,如D:\mysql-5.7.16-winx64
3.初始化:
Mysql解压后的 bin 目录下有一大堆的可执行文件,执行如下命令初始化数据
- cd c:\mysql-5.7.16-winx64\bin
- mysqld --initialize-insecure
4.启动MySQL服务
- 通过执行命令去启动MySQL服务
- # 进入可执行文件目录
- cd d:\mysql-5.7.16-winx64\bin
- # 启动MySQL服务
- mysqld
5.启动MySQL客户端并连接MySQL服务
由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码
- #进入可执行文件目录 cd c:\mysql-5.7.16-winx64\bin
- # 连接MySQL服务器 mysql -u root -p # 提示请输入密码,直接回车
6.但是我们以后总不可能每用一次就这样操作一次,太麻烦了可以通过下面开解决
- 到此为止,MySQL服务端已经安装成功并且客户端已经可以连接上,以后再操作MySQL时,只需要重复上述4、5步骤即可。但是,
在4、5步骤中重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。【右键计算机】
-
-
》【属性】
-
-
》【高级系统设置】
-
-
》【高级】
-
-
》【环境变量】
-
-
》【在第二个内容框中找到 变量名为Path 的一行,双击】
-
-
> 【将MySQL的
bin
目录路径追加到变值值中,
用 ; 分割】如:C:\Program Files\MySQL
# 启动MySQL服务,在终端输入
mysqld
# 连接MySQL服务,在终端输入:
mysql
-
u root
-
p
差不多就这么多 有待补充,以后会补上
Linux版本
安装:
1
|
yum install mysql - server |
服务端启动
1
|
mysql.server start |
客户端连接
1
2
3
4
5
6
7
|
连接: mysql -h host -u user -p 常见错误: ERROR 2002 (HY000): Can 't connect to local MySQL server through socket ' /tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running. 退出: QUIT 或者 Control+D |
三:数据库操作
3.1
- 1、概念
- 数据库, 文件夹
- 数据库表, 文件
- 数据行, 文件中的一行数据
- 2、
- 启动服务器:
- net start mysql
- 或
- C:\mysql-5.7.16-winx64\mysql-5.7.16-winx64\mysql
- mysql.server start
- /etc/init.d/mysql start
- 客户端连接:
- C:\mysql-5.7.16-winx64\mysql-5.7.16-winx64\mysql -u root -p
3.2
1. 显示数据库
show databases; # 查看当前Mysql都有那些数据,根目录都有那些文件夹
2. 创建数据库
create database 数据库名; # 创建文件夹
3. 使用数据库
use 数据库名; # 使用选中数据库,进入目录
show tables; # 查看当前数据库下都有那些表,
5. create table 表名(nid int,name varchar(20), pwd varchar(64)); # 创建数据库表
6. select * from 表名; # 查看表中的所有数据
7. insert into 表名(nid,name,pwd) values(1,'alex','123'); # 插入数据
8. -- select * from 表名;再次查看表中信息
以上这些命令是我们在进行数据操作的时候用到的一些简单基本命令,
3.3 用户管理
我们正常是mysql -uroot -p 进入到用户,如果用户不存在,就会提示错误,那么我们先这样
show database; 然后看到MySQL这一个数据库,即进入里面,use mysql,然后show tables,选择user这一个表,select * from user,也可以这样查看,desc user,select host,user from user ,就可以拿到我们需要看的东西,
- 用户管理特殊命令:
- 创建用户
- create user '用户名'@'IP地址' identified by '密码';
- 删除用户
- drop user '用户名'@'IP地址';
- 修改用户
- rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
- 修改密码
- set password for '用户名'@'IP地址' = Password('新密码')
- c:\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysql -u
3.4 授权管理
show grants
for
'用户'
@
'IP地址'
-- 查看权限
grant 权限 on 数据库.表 to
'用户'
@
'IP地址'
-- 授权
revoke 权限 on 数据库.表 from
'用户'
@
'IP地址'
-- 取消权限
- 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
Python全栈开发之 Mysql (一)的更多相关文章
一:Navicate的安装 1.什么是navicate? Navicat是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小 ...
一:视图 1:什么是视图? 视图是指存储在数据库中的查询的SQL语句,具有简单.安全.逻辑数据独立性的作用及视点集中简化操作定制数据安全性的优点.视图包含一系列带有名称的列和行数据.但是,视图并不在数 ...
从学习python开始,一直是自己摸索,但是时间不等人啊,所以自己为了节省时间,决定报个班系统学习,下面整理的文章都是自己学习后,认为重要的需要弄懂的知识点,做出链接,一方面是为了自己找的话方便,一方 ...
OS模块 1. os.name() 获取当前的系统 2.os.getcwd #获取当前的工作目录 import os cwd=os.getcwd() # dir=os.listdi ...
一.简介 前面我们学习了html和css,但是我们写的网页不能动起来,如果我们需要网页出现各种效果,那么我们就要学习一门新的语言了,那就是JavaScript,JavaScript是世界上最流行的脚本 ...
Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...
http://www.cnblogs.com/wupeiqi/articles/5237704.html http://www.cnblogs.com/wupeiqi/articles/5246483 ...
一.Python基础 python简介 python数据类型(数字\字符串\列表) python数据类型(元组\字典) python数据类型(集合) python占位符%s,%d,%r,%f prin ...
一.模块 1.import导入模块 #1.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑),本质就是.py结尾的python文件,实现一个功能 包:python package 用 ...
随机推荐
#############################脚本功能及说明##################################################该脚本用来收集磁盘分区总大小 ...
Array类 ns:System Array是一个抽象类 表示数组 提供了创建.查找.删除.排序.修改等应用于数组的操作 此类没有公有的实例构造函数 可以使用静态方法CreateInstance创建A ...
Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
Socket描述了一个IP.端口对.它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息.所以,Socket一定包含了通信的双发,即客户端(Clien ...
六 keystone架构 6.1 Keystone API Keystone API与Openstack其他服务的API类似,也是基于ReSTFul HTTP实现的. Keystone API划分为A ...
好吧 QQ群里被问到这种问题,还是这里写一下吧. DECLARE @date DATETIME = getdate(); SELECT EOMONTH (@date) AS 'Last Day Of ...
No.1466 代码:https://code.csdn.net/snippets/192091 No.1202 代码:https://code.csdn.net/snippets/192110 ...
在PHP 5之前,想要连接MySQL数据库就需要使用mysql或mysqli等一系列函数来操作数据库.例如,我们使用mysql系列数据库函数进行查询操作,对应的示例代码如下: <?php //创 ...
http://www.cnblogs.com/luotaoyeah/p/3860292.html Servlet相关接口和Servlet的生命周期 创建一个Servlet类最直接的方式是实现javax ...
1:slider 控件 2:x:名称空间的使用 3:事件处理器 event handler { <Button x:Name="button1" Click=" ...