zoukankan      html  css  js  c++  java
  • 【2020Python修炼记】初识数据库——MySQL

    【目录】

    一 数据库管理软件的由来

    二 数据库概述

    三 mysql介绍

    四 下载安装

    五 mysql软件基本管理

    六 初识sql语句

    一、数据库管理软件的由来

    # 我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),

    于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,

    但mysql解决的不仅仅是数据共享的问题,还有查询效率数据安全性等一系列问题,

    总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

    二、数据库概述

    1、什么是数据(Data) 

    描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可为文字、图片,图像、声音、语言等,数据由多种表现形式,

    它们都可以经过数字化后存入计算机  在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容

    2、什么是数据库(DataBase,简称DB)

    数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的 

    过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用 

    数据库是长期存放在计算机内、有组织、可共享的数据即可。 

    数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享

    3、什么是数据库管理系统(DataBase Management System 简称DBMS) 

    # 在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键 

    这就用到了一个系统软件---数据库管理系统  如 MySQL、Oracle、SQLite、Access、MS SQL Server

    # 数据库管理软件分类

    ## 分两大类:   

    关系型:如sqllitedb2oracleaccesssql serverMySQL

    注意:sql语句通用   

    非关系型:mongodbredismemcache

    ## 可以简单的理解为:

    关系型数据库需要有表结构

    非关系型数据库是key-value存储的,没有表结构

    4、 数据库服务器、数据管理系统、数据库、表与记录的关系

    数据库服务器-:运行数据库管理软件

    数据库管理软件:管理-数据库

    数据库:即文件夹,用来组织文件/表

    表:即文件,用来存放多行内容/多条记录

    三、mysql介绍、下载、安装

    安装教程:https://www.cnblogs.com/bigorangecc/p/12807816.html

    五、mysql软件基本管理

    https://www.cnblogs.com/bigorangecc/p/12828442.html

    六、初识SQL语句

    SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
    
    #1、DDL语句    数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
    #2、DML语句    数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
    #3、DCL语句    数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
    #1. 操作文件夹
            增:create database db1 charset utf8;
            查:show databases;
            改:alter database db1 charset latin1;
            删除: drop database db1;
    
    
    #2. 操作文件
        先切换到文件夹下:use db1
            增:create table t1(id int,name char);
            查:show tables
            改:alter table t1 modify name char(3);
                  alter table t1 change name name1 char(2);
            删:drop table t1;
    
    
    #3. 操作文件中的内容/记录
            增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
            查:select * from t1;
            改:update t1 set name='sb' where id=2;
            删:delete from t1 where id=1;
    
            清空表:
                delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
                truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,
    
                auto_increment 表示:自增
                primary key 表示:约束(不能重复且不能为空);加速查找
    SQL语言分类

    针对库的增删改查(文件夹)

    #
    create database db1;
    create database db2 charset='gbk';
    #
    show databases;  # 查所有
    show create database db1;  # 查单个
    #
    alter database db2 charset='utf8';
    #
    drop database db2;

    针对表的增删改查(文件)

    """
    在操作表(文件)的时候 需要指定所在的库(文件夹)
    """
    # 查看当前所在的库的名字
    select database();
    # 切换库
    use db1; 
    
    #
    create table t1(id int,name char(4));
    #
    show tables;  # 查看当前库下面所有的表名
    show create table t1;
    describe t1;  # 支持简写 desc t1;
    #
    alter table t1 modify name char(16);
    #
    drop table t1;
    
    """
    create table db2.t1(id int);  也可以用绝对路径的形式操作不同的库
    """

    针对数据的增删改查(一行行数据)

    """
    一定要先有库 有表 最后才能操作记录
    """
    #
    insert into t1 values(1,'jason');
    insert into t1 values(1,'jason'),(2,'egon'),(3,'tank');
    #
    select * from t1;  # 该命令当数据量特别大的时候不建议使用
    select name from t1;
    #
    update t1 set name='DSB' where id > 1;
    #
    delete from t1 where id > 1;
    delete from t1 where name='jason';
    # 将表所有的数据清空
    delete from t1;

    参考资料:

    https://zhuanlan.zhihu.com/p/112222578 

  • 相关阅读:
    Educational Codeforces Round 88 (Rated for Div. 2) D. Yet Another Yet Another Task(枚举/最大连续子序列)
    Educational Codeforces Round 88 (Rated for Div. 2) A. Berland Poker(数学)
    Educational Codeforces Round 88 (Rated for Div. 2) E. Modular Stability(数论)
    Educational Codeforces Round 88 (Rated for Div. 2) C. Mixing Water(数学/二分)
    Codeforces Round #644 (Div. 3)
    Educational Codeforces Round 76 (Rated for Div. 2)
    Educational Codeforces Round 77 (Rated for Div. 2)
    Educational Codeforces Round 87 (Rated for Div. 2)
    AtCoder Beginner Contest 168
    Codeforces Round #643 (Div. 2)
  • 原文地址:https://www.cnblogs.com/bigorangecc/p/12807794.html
Copyright © 2011-2022 走看看