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. hdu-2844&&POJ-1742 Coins---多重背包

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 题目大意: Tony想要买一个东西,他只有n中硬币每种硬币的面值为a[i]每种硬币的数量为c[ ...

  2. 缓冲区溢出实战教程系列(三):利用OllyDbg了解程序运行机制

    想要进行缓冲区溢出的分析与利用,当然就要懂得程序运行的机制.今天我们就用动态分析神器ollydbg来了解一下在windows下程序是如何运行的. 戳这里看之前发布的文章: 缓冲区溢出实战教程系列(一) ...

  3. spfa判负权边

    spfa判负环 如果一个点在spfa中被入队了大于n次 那么,我们就能肯定,有负环出现. 因为一个点入队时,他肯定被更新了一次. 所以........ 如果不存在负权环.这个点最多被更新节点数次 我们 ...

  4. Android笔记(预安装APK)

    一般一个安卓的产品在出厂时,会预安装许多APK,关于这些APP,主要分为下面这几类 1.系统级别APK 这一类应用一般是:电话/设置或者厂家自己特定的应用. 2.系统预安装APK 因为商业原因,产品出 ...

  5. malloc动态分配字符串数组“ 一个月内的提醒”

    //输出一个月提醒 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_R ...

  6. 泛型&&枚举

    1.枚举类型 JDk1.5中新增了枚举类型,可以使用该功能取代以往定义常量的方式,同时枚举类型还赋予程序在编译时进行检查的功能. 1.1 使用枚举类型设置常量 以往设置常量,通常将常量放在接口中(fi ...

  7. 转 IOS7开发错误收集

    转自:http://blog.csdn.net/smallsky_keke/article/details/16117653 1. fatal error: file '/Applications/X ...

  8. pod 指令无效

    到了新公司,配置pod,死活找不到pod指令,用了很多方法之后,找到了解决办法 sudo vim .bash_profile 然后添加 export PATH=/usr/local/bin:$PATH ...

  9. 基于asp.net MVC 的服务器和客户端的交互(一)

    架构思想 三层架构 提出了一种基于ASP.NET开发方式的三层架构的Web应用系统构造思想.其基本内容是:将面向对象的UML建模与Web应用系统开发 相结合,将整个系统分成适合ASP.NET开发方式的 ...

  10. 【树链剖分 ODT】cf1137F. Matches Are Not a Child's Play

    孔爷的杂题系列:LCT清新题/ODT模板题 题目大意 定义一颗无根树的燃烧序列为:每次选取编号最小的叶子节点形成的序列. 要求支持操作:查询一个点$u$在燃烧序列中的排名:将一个点的编号变成最大 $n ...