ParisGabriel
 
 
         每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰
 
  开局一张图
 
 
一个月的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.float4个字节,最多显示个有效位
      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 数据库 (简述 、安装、基本命令)的更多相关文章

  1. Python全栈 MySQL 数据库 (引擎、事物、pymysql模块、orm)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图     存储引擎(处理表的处理器)     基本操作:         ...

  2. Python全栈 MySQL 数据库(SQL命令大全、MySQL 、Python调用)

    为了梦想与了信仰    开局一张图   主要三个方面: 1.Linux终端命令 2.MySQL语句 3.Python调用   先删库 再跑路.....                         ...

  3. Python全栈 MySQL 数据库 (索引、数据导入、导出)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图     表字段重命名(change)   alter table 表名 ...

  4. Python全栈 MySQL 数据库 (SQL查询、备份、恢复、授权)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图   今天接着昨天的说   索引有4种:      普通 索引 :ind ...

  5. Python全栈 MySQL 数据库 (表字段增、删、改、查、函数)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图         查询SQL变量 show variables 1.表字 ...

  6. Python全栈 MongoDB 数据库(概念、安装、创建数据)

    什么是关系型数据库?           是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,             同时也是一个被组织成一组拥有正式描述性的表格( ...

  7. Python全栈 MongoDB 数据库(聚合、二进制、GridFS、pymongo模块)

    断网了2天  今天补上     聚合操作: 对文档的信息进行整理统计的操作 返回:统计后的文档集合 db.collection.aggregate() 功能:聚合函数,完成聚合操作 参数:聚合条件,配 ...

  8. 巨蟒python全栈开发数据库攻略1:基础攻略

    1.什么是数据库? 2.数据库分类 3.数据库简单介绍 4.安装数据库 5.修改root密码 6.修改字符集 7.sql介绍 8.简单sql操作

  9. 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解

    1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...

随机推荐

  1. 【转】Mac 程序员的十种武器

    http://chijianqiang.baijia.baidu.com/article/3733 上 在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 M ...

  2. MAC卸载/删除 Parallels Desktop虚拟机的方法

    一些MAC用户在自己的电脑上安装了虚拟机之后,想要将它卸载,但是不知道该怎么做.今天小编就为大家带来了这个问题的解决方法. 解决方案(删除/卸载虚拟机 (VM): 1.启动Parallels Desk ...

  3. 单源最短路模板(dijkstra)

    单源最短路(dijkstra算法及堆优化) 弱化版题目链接 n^2 dijkstra模板 #include<iostream> #include<cstdio> #includ ...

  4. git常用命令(二)

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  5. typeid操作符

    typeid() operator返回type_info,返回值不可拷贝.不可赋值 // Illustrates the typeid operator. #include <iostream& ...

  6. 项目配置中 提示access denied的问题 解决方案

    项目配置中 提示access denied的问题,一般原因是你的服务器或虚拟主机的pathinfo没开.... 具体解决办法如下 在PHP安装文件夹下找到php.ini.在文件中搜索cgi.fix_p ...

  7. JZOJ 3534. 【NOIP2013提高组day1】货车运输

    Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的 ...

  8. php+MySQL(存储过程) +yii2完整的增删改查

    1在MySQL中创建存储过程 a 我将添加和修改 作为 一起 ), ), ), )) BEGIN FROM t_boss_role WHERE id = _id) THEN UPDATE t_boss ...

  9. Ajax全解析

    什么是Ajax Ajax基本概念 Ajax(Asynchronous JavaScript and XML):翻译成中文就是异步的JavaScript和XML. 从功能上来看是一种在无需重新加载整个网 ...

  10. Python分布式爬虫抓取知乎用户信息并进行数据分析

    在以前的文章中,我写过一篇使用selenium来模拟登录知乎的文章,然后在很长一段时间里都没有然后了... 不过在最近,我突然觉得,既然已经模拟登录到了知乎了,为什么不继续玩玩呢?所以就创了一个项目, ...