zoukankan      html  css  js  c++  java
  • 疫情环境下的网络学习笔记 python 4.30 初识数据库

    4.30

    数据库

    存储数据的演变过程

    1. 随意地存到一个文件中,数据的格式千差万别,完全取决于我们自己

    2. 软件开发目录规范

      限制了存储数据的具体位置:db,lib,conf,core。。。每一个软件的纪录只在当前的计算机上保存,那么其中的数据只在当前计算机有效

    3. 使用数据库服务器,将单机变成联网

    数据库的本质

    数据库本质是一款基于网络通信的应用程序,数据库软件有很多:

    • 关系型:MySql,oracle,db2,sqlserver
    • 非关系型:redis,mongodb,memcache

    关系型:数据之间彼此有关系或约束,存储数据的表现形式通常是表格,每个字段还会有存储类型的限制,比如数据类型,长度

    非关系型:数据通常都是k:v键值对形式

    MySql

    任何基于网络通信的引用程序都是socket
    MySql不单单支持MySql自己的客户端,还支持其他编程语言来充当客户端操作
    任何解决语言沟通的障碍:
    	- 让服务端兼容所有的语言
    	- 采用统一的语言:SQL语句
    

    重要概念介绍

    库:文件夹
    表:文件
    记录:文件里一行行的数据
    name pwd  age
    aaa  123  21
    bbb  321  22
    表头:表格的第一行字段
    字段:name,password,age。。。
    

    MySql安装

    IT界一般不会轻易使用新版本,因为可能出现旧版本没有出现的问题

    1. MySql官网 ---->Downloads
    2. 按照这种方式下载,服务端和客户端一并下载到本地

    MySql服务端与客户端

    在bin文件夹下

    • 服务端:mysqld.exe
    • 客户端:mysql.exe

    配置MySql,cmd尽量用管理员身份运行

    启动

    1. 管理员运行cmd

    2. cd切换到MySql所在的bin目录下

      cd F:MYSQLMYSQL5.7.30MySQL Server 5.7in
      mysqld -uroot -p
      6008
      
    3. 保留原来的cmd窗口,再打开一个cmd

      mysql -h 127.0.0.1 -P 3306 -uroot -p密码
      

      mysql默认端口号3306

      mysql第一次以管理员身份进入没有密码,直接回车即可

    sql语句基本命令

    1. mysql的语句以分号作为结束的标志
    
    2. 基本命令:
    	show databases; 查案所有的库名
    
    3. 链接服务端的命令可以简写为mysql -uroot -p
    
    4. 当输入的命令不正确,但是不想让服务端报错并返回,就在最后加上 c,这一行就不会执行
    
    5. 退出mysql:exit,quit,不用加分号
    
    6. 在链接服务端的时候,只输入mysql也能链接,但是链接的不是管理员身份,只是游客模式
    
    

    环境变量配置及系统服务制作

    小知识点补充:
    如何查看当前具体进程
    	tasklist
    	tasklist|findstr mysqld
    杀死具体进程
    	taskkill F PID 8504
    

    环境变量配置

    每次启动MySQLd还需要切到对应文件路径下才能操作,繁琐:添加环境变量,直接使用mysqld启动服务端
    将mysqld服务端制作成系统服务:mysqld --install
    移除mysqld系统服务:mysqld --remove
    

    设置密码

    mysqladmin -uroot -p原密码 password 新密码
    

    忘记密码

    可以将mysql获取用户名密码校验功能看成一个装饰器,装饰在客户端请求访问的功能上
    如果移除装饰器,那么sql服务端就不会校验密码了
    1. 关闭当前mysql服务端:在任务管理器里关闭
    
    2. 命令行的方式启动,让mysqol跳过用户名密码验证功能
    	mysqld --skip-grant-tables
    	进入管理员账户
    
    3. 修改当前用户的密码:mysql下的user
    	update mysql.user set password=password(123) where user='root' and host ='localhost';
    	真正存储用户表的密码字段,存储的是密文,只有用户自己直到明文是什么,其他人不知道,这样更加安全
    	password方法会加密123,放进where后面指定的用户里
    
    4. 立刻将修改数据刷到硬盘
    	flush privileges
    	
    5. 关闭当前服务端,以正常校验授权表的形式启动
    
    

    统一编码

    mysql默认的配置文件

    my-default.ini
    ini结尾的一般都是配置文件,程序启动会先家咋配置文件中的配置之后才真正启动
    
    

    在my.ini,直接拷贝代码进来,再重启

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    user="root"
    password=123456
    default-character-set=utf8
    
    

    可选偷懒:将管理员的用户和密码加在mysql.ini中的mysql里

    [mysql]
    user="用户名"
    password="密码"
    
    

    基本sql语句

    大部分的业务逻辑都是增删改查:create,alter,drop,show,select

    全部要背下来

    针对库的增删改查

    # 增
    create database db1 charset='gbk'; # 创建新库(文件夹)
    
    # 查
    show databases; # 查所有
    show create database db1; # 查单个
    
    # 改
    alter database db1 charset='utf-8';
    
    # 删
    drop database db1;
    
    

    针对表的增删改查

    # 操作表的时候,要指定表所在的库
    # 查看当前所在的库的名字
    select database();
    # 切换库,相当于双击db1库文件夹,进入
    # 接下来的操作都在db1下进行
    use db1;
    
    
    # 创建表t1
    create table t1(id int,name char(4));
    # 表中包含两个字段,id,name
    # id是整型,name是长度为4的字符串
    
    # 查看当前库下所有的表名
    show tables;
    # 查看表t1,包括表下的数据
    show create table t1;
    # 展开详细描述
    describe t1; # 支持简写:desc t1;
    # 修改表
    alter table t1 modify name char(16);
    # 删除表
    drop table t1;
    
    # 通过绝对路径对表操作
    create table db2.t1(id int);
    # 当前在db1库,可以这样在别的库下操作
    
    

    针对数据的操作

    # 一定要现有库,表,最后才能操作数据
    # 增加数据
    # 增加一行
    insert into t1 values(2020,'aaa');
    # 增加多行,用逗号隔开
    insert into t1 values(2020,'aaa'),(2021,'bbb'),(2022,'ccc')
    
    # 查看数据
    # 查t1表中所有的数据
    select * from t1 # 该命令在数据量很大的时候不要用
    select name from t1 # 查看t1中所有name
    
    # 改数据
    update t1 set name='deimos' where name= 'aaa';
    
    # 删数据
    delete from t1 where name='bbb';
    
    # 将表所有的数据清空
    delete from t1
    
    
  • 相关阅读:
    Ajax基础:3.Json
    Head First Design Patterns State Pattern
    Head First Design Patterns Template Method Pattern
    Articles For CSS Related
    Head First Design Patterns Decorator Pattern
    代码审查工具
    How To Be More Active In A Group
    Head First Design Patterns Factory Method Pattern
    Head First Design Patterns Composite Pattern
    Tech Articles
  • 原文地址:https://www.cnblogs.com/telecasterfanclub/p/12823078.html
Copyright © 2011-2022 走看看