zoukankan      html  css  js  c++  java
  • python全栈开发_day37_数据库1

    数据库概念

    那Mysql能干嘛呢?它就是一款软件,安装在任何一台计算机或者服务器上的时候,只要我告诉它创建一个文件,新增一个数据,删除一个数据它就能帮我去做想要的操作

    那我们暂且能不能理解为mysql就是用来帮我们操作文件的!

    MySQL:用于管理文件的一个软件(两个程序)

    -服务端软件

    -socket服务端

    -本地文件操作

    -解析指令

    -客户端软件

    -socket客户端

    -发送指令

    -解析指令

    客户端可以有很多个,python,java,php,c++都可以编程一个客户端,用代码指定ip port链接上服务端即可操作

    那么问题来了,不同的客户端练我一个服务端,语言不相同无法实现交流。所以应该有共同的语言才行>>>解析指令(sql语句)

     

    技能:

    -安装 服务端和客户端

    -链接

    -学习sql语句规则,指定服务端做任何操作

     

    mysql只是一种能够帮助我们管理数据的软件,还有其他类似的软件也是通过发送指令来帮你管理数据库

    其他类似软件:

    关系型数据库:sqlite,db2,oracle,access,sql server,MySQl

    非关系型数据库:mongodb,redis

    关系型:彼此之间有约束或者有联系

     

    总结:mysql就是帮助我们远程在文件上做相应操作的

     

    MySQL的安装

    mysqld服务端

    mysql客户端

     

    软件目录结构初识

     

    终端最好以管理员身份运行

     

    切换到mysql目录下启动mysqld服务端(阻塞,监听地址,固定的ip和端口)

    cd D:mysql56
    D:

    新开cmd窗口启动mysql客户端

     

    链接mysql:

    mysql -h 127.0.0.1 -P 3306 -uroot -p 密码不输,直接回车

    如果是在本机登陆mysqld服务端,可以简写为mysql -uroot -p

    客户端服务端请求流程分析

    show databases诠释文件夹和库概念

     

    环节变量配置

     

    系统服务制作(制作之前一定要先把mysql关闭)

    # 查看mysqld进程
    tasklist |findstr mysqld
    # 杀死mysqld进程
    taskkill /F /PID 'PID号'

    将mysqld这款软件做成系统服务软件

    mysqld --install

    查看计算机当前运行程序数

    services.msc

    修改密码与破解管理员密码

    mysqladmin -uroot -p password "123"

    # 第一次修改完密码以后,之后还修改密码需要
    mysqladmin -uroot -p123 password "123456"
    # 为了后续调试方便,这里把密码设为空值
    mysqladmin -uroot -p123 password "新密码"

    破解密码

    • 先关闭mysqld服务端

    • 以跳过授权表的方式在命令行中启动mysqld服务端

      mysqld --skip-grant-tables
    • 客户端直接以无密码的方式登陆root用户修改密码

      mysql -uroot -p
    • 修改管理员密码

      update mysql.user set password=password("123") where user="root" and host="localhost";
      flush privileges;  # 刷新权限
    • 命令行杀死mysqld服务

      tasklist |findstr mysqld
      taskkill F PID 'PID'
    • 服务管理正常启动mysqld

     

    统一字符编码

    mysql命令:"s" 查看编码

    修改配置文件,执行时会自动查找my.ini文件

    mysql不输用户名和密码,会默认以游客模式登陆,不好!

    # my.ini配置文件特点
    [mysql]
    #终端输入mysql打头的命令就会加载下面的配置
    username='root'  # 演示确实加载改文件,但是username叫user才正确
    password = '123'
    [mysqld]

    通用配置

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci

    [client]
    default-character-set=utf8

    [mysql]
    default-character-set=utf8

    mac系统

    finder中切换到默认安装路径下/usr/local/mysql

    下面就是一大堆文件目录

    配置文件是my.cnf,没有int等windows上的配置文件

     

     

     

    基本sql语句

    对数据的增删改查

    sql书写错误,只要没加分号,可以加c使前面的sql语句失效

    • 针对文件夹的(库)

      # 增
      create database db1 charset utf8;
      # 改
      alter database db1 charset gbk;
      # 查
      show databases;
      show create database db1;
      # 删
      drop database db1;
    • 针对文件的(表)

      文件首先需要在文件夹下面,所以在操作文件之前,应该先确定操作的是哪个文件夹下面的文件

      # 切换文件夹
      user db1;
      select database();  # 查看当前所在的库
      # 增
      create table t1(id int,name char);  # 创建出来的可能是多个文件,解耦管理
      # 改
      alter table t1 modify name char(16);
      # 查
      show tables;
      show create table t1; # 查看表的详细信息
      describe t1; == desc t1;  # 查看表结构
      # 删
      drop table t1;
    • 针对(记录)

      # 增
      insert into db1.t1 values (1,'egon'),(2,'kevin'),(3,'jason');  # into可加可不加,db1可以不指定,默认就是在当前库下
      # 改
      update db1.t1 set name='DSB' where id > 1;
      update db1.t1 set name='DSB' where id = 2 or id = 3;
      # 查
      select id,name from db1.t1;  # db1可不指定,默认当前库下
      select * from t1;
      # 删
      delete from db1.t1 where id >3;
      delete from db1.t1 where name='egon'  # 这里注意如果少了一个引号,后面无论敲什么都没有用了需要将引号补全

    库相关操作参考egon博客即可

    表操作

    存储引擎

    文件格式有很多种,对应的软件也有很多种txt,pdf等

    针对不同类型的文件,需要对应有不同的软件帮助我们去操作

    # 查看所有的存储引擎
    show engines;

    # 查看不同存储引擎存储表结构文件特点
    create table t1(id int)engine=innodb;
    create table t2(id int)engine=myisam;
    create table t3(id int)engine=blackhole;
    create table t4(id int)engine=memory;

    insert into t1 values(1);
    insert into t2 values(1);
    insert into t3 values(1);
    insert into t4 values(1);

     

  • 相关阅读:
    轻重搭配
    EF的优缺点
    使用bootstrap-select有时显示“Nothing selected”
    IIS发布 HTTP 错误 500.21
    js添加的元素无法触发click事件
    sql server查看表是否死锁
    sql server把一个库表的某个字段更新到另一张表的相同字段
    SQLSERVER排查CPU占用高的情况
    SQL server中如何按照某一字段中的分割符将记录拆成多条
    LINQ to Entities does not recognize the method 'System.DateTime AddDays(Double)' method, and this method cannot be translated into a store expression.
  • 原文地址:https://www.cnblogs.com/xuxingping/p/10857584.html
Copyright © 2011-2022 走看看