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. 画X,模拟水题

    题目链接:http://codeforces.com/contest/404/problem/A #include <stdio.h> #include <string.h> ...

  2. 2018.7.31 oracle rownum的理解

    一.Rownum的描述: rownum是一个伪列,数据库中并不保存rownum的列值,它是oracle系统为返回的结果集顺序分配的行编号,rownum是随着结果集生成的,一旦生成,在同一个结果集中就不 ...

  3. Java 文件切割工具类

    Story: 发送MongoDB 管理软件到公司邮箱,工作使用. 1.由于公司邮箱限制附件大小,大文件无法发送,故做此程序用于切割大文件成多个小文件,然后逐个发送. 2.收到小文件之后,再重新组合成原 ...

  4. Win10预览版激活信息

    微软在10月2日零点正式公开了Win10预览版的下载地址,这个时间大家应该逐步开始安装工作了,因此提出下面两个问题的用户特别多,IT之家再稍作告知一下.1.Win10预览版安装密钥是什么?答:NKJF ...

  5. AngularJS THML DOM

    AngularJS为HTML Dom元素属性提供了绑定应用数据的指令. data-ng-disabled指令直接提供了绑定应用程序的数据到HTML元素的disabled属性. <!DOCTYPE ...

  6. 在Linux文件清空的几种方法

    在Linux文件清空的几种方法 1.使用重定向的方法 [root@centos7 ~]# du -h test.txt 4.0K test.txt [root@centos7 ~]# > tes ...

  7. Nodejs 调试方法

    nodejs内部提供一个debug机制,可以让程序进入debug模式,供开发者一步一步分析代码发现问题. 共有3中启动参数可以让程序进入debug模式,假设我们要对app.js进行调试. node d ...

  8. react中内联样式的z-index不起作用.

    <div style={{z-index: -100}} > hello,money. </div> 以上z-index样式如上写法是不起作用,原因是在react中内联样式的写 ...

  9. BZOJ4198: [Noi2015]荷马史诗(哈夫曼树)

    Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1824  Solved: 983[Submit][Status][Discuss] Descripti ...

  10. Centos7上docker的安装和基本使用

    Centos7上Docker的相关操作 Docker的安装 1.检查内核版本 docker使用linux的内核必须是3.10以上,首先需要 # uname -r 2.使用yum安装docker # y ...