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. Windows 7下的ARP

    关于Windows 7和Windows XP下的ARP绑定的不同之处网络上已经很多,没空就不多说,注意用这样的方式绑定的arp项是动态的,动态的意思就是这个项不受任何保护,Windows想什么时候更改 ...

  2. python剑指offer数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  3. Thinkphp 5 使用DOMDocument

    每一个载入浏览器都会生成一个 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问.Document 对象是 Window 对象的一部分. 我们项目 ...

  4. 旋度定理(Curl Theorem)和散度定理(Divergence theorem)

    原文链接 首先说说格林公式(Green's theorem).对于一段封闭曲线,若其围城的区域D为单连通区域(内部任意曲线围城的区域都属于院区域),则有如下公式: 其中其中L为D的边界,取正方向.如果 ...

  5. JS获取页面传过来的值

    利用JS获取页面的传值,此方法只适应Get传值. 获取页面之间的传值,在后台我们很容易获取,那我们在前台只利用JS怎么写呢? 在看代码之前你需要了解的 ① 参考:W3C Location 对象 Loc ...

  6. 3.Netty的粘包、拆包(二)

    Netty提供的TCP数据拆包.粘包解决方案 1.前言 关于TCP的数据拆包.粘包的介绍,我在上一篇文章里面已经有过介绍. 想要了解一下的,请点击这里 Chick Here! 今天我们要讲解的是Net ...

  7. javascript入门笔记2-window

    1.JavaScript-输出内容(document.write) <script type="text/javascript"> document.write(&qu ...

  8. 写一个addEventListener以及removeEventListener

    第一步:对象属性赋值为函数,对象内部函数控制年龄这一参数变化,同时成长事件也执行. class Person{ constructor(){ this.name = ''; this.age = 0; ...

  9. Selenium页面加载策略

    https://blog.csdn.net/wkb342814892/article/details/81611737 https://blog.csdn.net/ouyanggengcheng/ar ...

  10. B1008 数组元素循环右移问题 (20分)

    B1008 数组元素循环右移问题 (20分) 思路 1 2 3 4 5 6 5 6 1 2 3 4 6个数,循环右移2位. 也可以理解为 先翻转 6 5 4 3 2 1 然后再两部分,分别翻转 5 6 ...