Python全栈 MySQL 数据库 (简述 、安装、基本命令)
MySQL概述:
1.什么是数据库:
存储数据的厂库
2.有哪些公司在用数据库
金融机构、游戏网站、购物网站、论坛网站...
3.提供数据库服务的软件:
1.软件的分类:
MySQL、Oracle、SQL_Server、DB2、MongoDB、MariaDB
2.生产环境中,如何选择使用哪些数据库软件:
1.是否开源
1.开源软件:MySQL、Mariadb、MongoDB
2.商业软件:Oracle、DB2、SQL_Server
2.是否跨平台
1.不过平台:SQL_Server
2.跨平台:......
3.公司的类型:
商业软件:政府部门、金融机构
开源软件:游戏网站、购物网站、论坛网址站
4.MySQL的特点:
1.关系型数据库
1.关系型数据库的特点
1.数据是以行和列(表格)的形式存储的
2.表格到的每一行是一条记录 ,没一列叫一个字段
3.表与表之间的逻辑关联叫关系
2.示例:
1.关系型数据库:
表1 学生信息表
姓名 年龄 班级
张三 25 三班
李四 25 六班
表2 班级信息表
班级 班主任
三班 大空翼
六班 松人
寻找张三的班主任是谁
通过两张表的关联关系能查询出来(查询功能强大)
2.非关系型数据库
{”姓名“:“张三”, ”年龄“:25, “班主任”}
以字典的形式存储 键值对形式纯在的
如果没有则则无法找到 (查询速度快)
2. 跨平台:
可以在Windows、Unix、Linux、上运行数据库服务
3. 支持多种编程语言
Python、Java、PHP....
5.数据库软件、数据库、数据厂库的概念
1.数据库软件:
就是一个软件,看的见、可操作、是现实数据的逻辑功能
2.数据库:
是一种逻辑概念,用来存放数据的厂库,侧重于存储
3.数据厂库
从数据量来说,比数据库庞大的多,主要用于数据分析和数据挖掘
那个时间段用户登录最多,那个用户一年购物最多
MySQL的安装
1.Ubuntu安装MySQL服务
1.安装服务端
sudo apt-get install mysql-server
apt-get系统自带到的安装服务
2.安装客户端
sudo apt-get install mysql-client
3.Ubuntu安装软件:
1.sudo apt-get update
访问源列表中的每个网址,读取软件列表,保存到本地 /var/lib/apt/lists
2.sudo apt-get upgrade
把本地已安装的软件与刚下的列表进行对比
如果发现已安装的软件版本低 则全部更新
3.sudo apt-get -f install
修复依赖关系
2.启动和链接MySQL服务
1.服务端启动
1.查看状态
sudo /etc/init.d/mysql status (查询)
2.启动
sudo /etc/init.d/mysql start (启动)
sudo /etc/init.d/mysql stop (停止)
sudo /etc/init.d/mysql restart(重启)
sudo /etc/init.d/mysql reload(重新加载配置文件)
2.客户端链接
1.命令格式
mysql -h主机地址 -u用户名 -p密码
mysql -hlocalhost -uroot -p123456
SQL命令的使用规则:
1.没填命令必须以 ; 结尾
2.SQL不区分大小写
3.使用\c 来终止当前命令执行
2.库的管理:
1.库的基本操作
1.查看已有的库
show databases;
2.创建库
create database 库名;
create database 库名 character set utf8;(字符编码)
3.查看创建库的语句(字符集)
show create database 库名;
4.查看当前所在的库:
select database():
5.切换库
use 库名;
6.查看库中已有的表
show tables;
7.删除库
drop database 库名;
库名的命名规则:
1.数字、字母、下划线,但是不能使用纯数字
2.库的名字区分大小写
3.不能使用特殊字符和MySQL关键字
3. 表的管理
2.表的基本操作
1.查看表
show tables
2.创建表
create table 表名(
字段名 数据类型,
字段名 数据类型,
.......
);
3.查看已有表的字符集
show create table 表名;
4.查看表结构
desc 表名;
5.删除表
drop table 表名;
3.注意:
1.所有的数据都是以文件的形式存放在数据库根目录下
2.数据目录:/var/lib/mysql
4.mac安装mysql
1.cd
2.vi.bash_profile
添加:PATH=“$PATH”:/usr/local/myswl/bin
3.source .bash_profile
5.表记录管理
1.插入(insert)
1.insert into 表名 values(值1),(值2).....;
2.insert into 表名(字段1,.....)values(值1),....;
2.查询(select)
select * from 表名 [where 条件] 查询所有字段;
select 字段名1,字段名2,... form 表名 [where 条件];
6.如何更改默认字符集
1.方法(通过更改mysql配置文件实现)
2.步骤
1.获取root权限
sudo -i
2.cd /etc/mysql/mysql.conf.d/
3.备份:cp mysql.cnf mysqld.cnf.bak
4.subl mysqld.cnf
[mysqld]
character_set_server = utf8
5.重启mysql服务
/etc/init.d/mysql
7. 客户端把数据存储到数据库服务器上的过程
1.链接到数据库服务器 mysql -uroot -p123456
2.选择一个库 use 库名
3.创建表/修改表 update 表名...
4.断开与数据数据库链接 exit;| quit; | \q
8.数据类型
1.数字类型
1.整型
1.int 大整型(4个字节)
取值范围:2**32 - 1()
2.tinyint 微小整型(一个字节)
1.有符号(signed默认):-128 ~ 127
2.无符号(unsigned):0 ~ 255
3.smallint 小整型(2字节)
4.bigint 极大整型(8字节)
2.浮点型
1.float(4个字节,最多显示个有效位)
1.用法:
字段名 float(m,n) m:总位数 n:小数位数
float(5,2)取值范围? -999.99 ~ 999.99
2.decimal(最多显示个有效位)
decimal(m,n)
存储空间(整数、小数分开存储)
规则:将9的倍数包装成4个字节
余数 字节
0 0
1-2 1
3-4 2
5-6 3
7-9 4
示例decimal(19,9)
整数部分: 10/9 = 1 % 1 4字节+1字节=5字节
小数部分: 9/9 = 1 % 0 4字节+0字节=4字节
共占:9字节
2.字符类型
1.char(定长)
1.取值范围:1~255
2.varcahr(变长)
1.取值范围:1~65535
3.text / longtext(存储范围:4G)/blob /longblob(4G)
char和varchar的特点:
1.cahr:浪费储存空间,性能高
2.varchar:节省储存空间,性能低
3、练习
1、创建库testdb,指定字符集为 utf8
2、进入到库 testdb
3、查看当前所在库
4、创建库 testdb2,指定字符集为 latin1
5、进入到库 testdb2
6、查看 testdb2 的字符集(查看创建库的语句)
7、删除库 testdb
8、删除库 testdb2
答案:
create database testdb character set utf8;
use testdb;
select database();
create database testdb2 character set latin1;
use testdb2;
show create database testdb2;
drop database testdb;
drop database testdb2;
2、练习
1、创建库python1
2、在python1库中创建表 pymysql并指定字符集为utf8,字段有三个:id 、name char(15) 、 age
3、查看创建表pymysql的语句
4、查看pymysql的表结构
5、删除表pymysql
6、创建库python2
7、在python2中创建表t1并指定字符集为utf8,字段有 id 、name 、score,数据类型自己定义
8、查看t1的表结构
9、删除表t1
10、删除库 python2
答案:
create database python1;
use python1;
create table pymysql(
id int,
name char(15),
age int
) character set utf8;
show create table pymysql;
desc pymysql;
drop table pymysql;
create database python2;
use python2;
create table t1(
id int,
name char(15),
score float(5,2)
) character set utf8;
desc t1;
drop table t1;
drop database python2;
3、练习
1、查看所有的库
2、创建新库 studb
3、在 studb 中创建表 tab1 ,指定字符集utf8,字段有 id 、name、age
4、查看tab1的表结构
5、在tab1中随便插入2条记录
6、在tab1中的name、age两个字段插入2条记录
7、查看tab1中所有记录
8、查看tab1表中所有人的姓名和年龄
9、查看tab1表中年龄大于20的信息
答案:
show databases;
create database studb;
use studb;
create table tab1(
id int,
name char(10),
age int
)character set utf8;
desc tab1;
insert into tab1 values
(1,"张三丰",100),(2,"张无忌",30);
insert into tab1(name,age) values
("金毛狮王",88),("紫衫龙王",87);
select * from tab1;
select name,age from tab1;
select * from tab1 where age>20;
3、练习
1、创建库 studb2 ,并在库中创建表 stuinfo,要求:
id :大整型
name :字符类型,宽度为15
age :微小整型,不能为负数
height :浮点型,小数位为2位(float)
money :浮点型,小数位为2位(decimal)
2、查看stuinfo的表结构
3、查看stuinfo的默认字符集
4、在表中插入1条完整记录
5、查询所有表记录
6、在表中id 、name两个字段插入2条记录
7、查询所有学生的id和姓名
答案:
create table stuinfo(
id int,
name char(15),
age tinyint unsigned,
height float(5,2),
money decimal(20,2)
);
desc stuinfo;
insert into stuinfo values (1,"Bob",23,176,88888.88);
select * from stuinfo;
insert into stuinfo(id,name) values
(2,"Jim"),(3,"Tom");
select id,name from stuinfo;
8、作业
1、MySQL中数据类型有:____ ____ 枚举类型 日期时间类型
整数型、字符型
2、关系型数据库中的核心内容是 ___ 即 二维表
关系
3、简述客户端把数据存储到数据库服务器上的过程
链接数据库
切换的相应的库
找到相应的表格进行操作
断开数据库链接
4、char和varchar的区别,各自的特点
char:浪费储存空间 但性能高
varcchar:节省存储空间 但性能低
5、操作
1、创建一个学校的库 school
2、在库中创建表 students 用来存储学生信息:
id 大整型
姓名、年龄(不能为负)、性别、成绩(浮点)
3、查看students的表结构
4、在表中随意插入3条记录
5、在表中的 姓名、成绩两个字段插入3条记录
6、查看所有学生的姓名和成绩
8、查看成绩及格(>60分)的学生的姓名和成绩
答案:
create database school;
use school;
create table students(
id int,
name char(15),
age tinyint unsigned,
gender char(2),
score float(5,2)
);
desc students;
insert into students values
(1,"张三",20,"男",95.56),
(2,"李四",21,"男",98.30),
(3,"王浅",21,"女",100); insert into students (name,score) values
("tom",60),
("lili",56),
("zhao",58.56);
select name,score from sutdents;
select name,score from students where score>=60;
Python全栈 MySQL 数据库 (简述 、安装、基本命令)的更多相关文章
- Python全栈 MySQL 数据库 (引擎、事物、pymysql模块、orm)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 存储引擎(处理表的处理器) 基本操作: ...
- Python全栈 MySQL 数据库(SQL命令大全、MySQL 、Python调用)
为了梦想与了信仰 开局一张图 主要三个方面: 1.Linux终端命令 2.MySQL语句 3.Python调用 先删库 再跑路..... ...
- Python全栈 MySQL 数据库 (索引、数据导入、导出)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 表字段重命名(change) alter table 表名 ...
- Python全栈 MySQL 数据库 (SQL查询、备份、恢复、授权)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 今天接着昨天的说 索引有4种: 普通 索引 :ind ...
- Python全栈 MySQL 数据库 (表字段增、删、改、查、函数)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 查询SQL变量 show variables 1.表字 ...
- Python全栈 MongoDB 数据库(概念、安装、创建数据)
什么是关系型数据库? 是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据, 同时也是一个被组织成一组拥有正式描述性的表格( ...
- Python全栈 MongoDB 数据库(聚合、二进制、GridFS、pymongo模块)
断网了2天 今天补上 聚合操作: 对文档的信息进行整理统计的操作 返回:统计后的文档集合 db.collection.aggregate() 功能:聚合函数,完成聚合操作 参数:聚合条件,配 ...
- 巨蟒python全栈开发数据库攻略1:基础攻略
1.什么是数据库? 2.数据库分类 3.数据库简单介绍 4.安装数据库 5.修改root密码 6.修改字符集 7.sql介绍 8.简单sql操作
- 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解
1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...
随机推荐
- hdu-2844&&POJ-1742 Coins---多重背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 题目大意: Tony想要买一个东西,他只有n中硬币每种硬币的面值为a[i]每种硬币的数量为c[ ...
- 缓冲区溢出实战教程系列(三):利用OllyDbg了解程序运行机制
想要进行缓冲区溢出的分析与利用,当然就要懂得程序运行的机制.今天我们就用动态分析神器ollydbg来了解一下在windows下程序是如何运行的. 戳这里看之前发布的文章: 缓冲区溢出实战教程系列(一) ...
- spfa判负权边
spfa判负环 如果一个点在spfa中被入队了大于n次 那么,我们就能肯定,有负环出现. 因为一个点入队时,他肯定被更新了一次. 所以........ 如果不存在负权环.这个点最多被更新节点数次 我们 ...
- Android笔记(预安装APK)
一般一个安卓的产品在出厂时,会预安装许多APK,关于这些APP,主要分为下面这几类 1.系统级别APK 这一类应用一般是:电话/设置或者厂家自己特定的应用. 2.系统预安装APK 因为商业原因,产品出 ...
- malloc动态分配字符串数组“ 一个月内的提醒”
//输出一个月提醒 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_R ...
- 泛型&&枚举
1.枚举类型 JDk1.5中新增了枚举类型,可以使用该功能取代以往定义常量的方式,同时枚举类型还赋予程序在编译时进行检查的功能. 1.1 使用枚举类型设置常量 以往设置常量,通常将常量放在接口中(fi ...
- 转 IOS7开发错误收集
转自:http://blog.csdn.net/smallsky_keke/article/details/16117653 1. fatal error: file '/Applications/X ...
- pod 指令无效
到了新公司,配置pod,死活找不到pod指令,用了很多方法之后,找到了解决办法 sudo vim .bash_profile 然后添加 export PATH=/usr/local/bin:$PATH ...
- 基于asp.net MVC 的服务器和客户端的交互(一)
架构思想 三层架构 提出了一种基于ASP.NET开发方式的三层架构的Web应用系统构造思想.其基本内容是:将面向对象的UML建模与Web应用系统开发 相结合,将整个系统分成适合ASP.NET开发方式的 ...
- 【树链剖分 ODT】cf1137F. Matches Are Not a Child's Play
孔爷的杂题系列:LCT清新题/ODT模板题 题目大意 定义一颗无根树的燃烧序列为:每次选取编号最小的叶子节点形成的序列. 要求支持操作:查询一个点$u$在燃烧序列中的排名:将一个点的编号变成最大 $n ...