• Python学习之数据库初识


    9 数据库

    9.1 数据库的初识

    ​ 数据库是可以独立运行的,并且可以对数据的增删改查提供高效便捷方式的工具。

    数据库解决的问题:

    ​ 解决了操作文件的效率和便捷问题

    ​ 解决了多个服务同时使用数据时的一致性问题

    ​ 解决了安全问题

    ​ 解决了并发问题

    数据库的优点:

    ​ 程序稳定性:应用服务器的崩溃不会影响数据的安全

    ​ 数据的一致性:将所有数据的管理统一,所有对数据的操作统一

    ​ 并发:数据库支持并发的网络操作,不需要我们自己写socket

    ​ 效率:使用数据库对数据进行增删改查的效率比操作文件的效率高甚多

    常见概念

    DataBase

    数据库,简称DB,存放数据的仓库,数据按照一定的格式存放
    数据库中的数据按照一定的模型组织、描述和纯属,具有较小的冗余,较高的数据独立性和易扩展性,可为各种用户共享数据

    DBMS

    数据库管理系统 ,对数据进行科学的组织和存储,以及能够高效的获取和维护数据

    常见数据库分类:

    【关系型数据库】通过某些条件都可以同一条目;数据之间关联性比较紧密;存取效率相对低;MySQL Oracle SQL server SQLlite(轻量级) access

    【非关系型数据库】速度快;通过key找数据;数据之间关联关系是K-V模式;存取效率相对高;redis mongodb(轻量级) memcache(内存级别,断电消失)

    数据库管理员 DBA

    各个概念之间的关系

    记录:多个字段的信息组成一条记录

    表:stable,文件,用来存放多条信息或记录

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

    数据库管理系统:管理数据库

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

    9.2 MySQL的安装

    卸载数据库:

    停止数据库服务: net stop mysql 停止MySQL服务,还可以在服务里找到停掉

    删除服务: mysqld remove

    删除安装文件

    删除环境变量

    清除注册表或者重启电脑

    安装数据库:

    安装包下载:

    找到安装包:路径不能有中文;路径中不能由特殊字符  1 2 ;

    修改配置文件:utf-8;所有配置项后面不要由特殊的符号;修改两个路径basedir,datadir

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [mysqld]
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=D:mysqlmysql-5.6.45-winx64
    # 设置mysql数据库的数据的存放目录
    datadir=D:mysqlmysql-5.6.45-winx64data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    

    配置环境变量:把bin目录的路径添加到环境变量中

    以管理员身份打开CMD: mysqld install net start mysql

    9.3 常用命令

    数据库命令分类

    SQL:Structured Query Language,结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新、管理关系型数据库

    【按功能分类】

    • DDL语句 数据库定义语言:数据库、表、试图、索引、存储过程
    • DML语句 数据库操纵语言:增删改查
    • DCL语句 数据库控制语句:控制用户权限等

    进入与退出MySQL

    mysql
    mysql> select user() # 查看当前用户
    mysql> exit  # 退出
    
    # 指定用户密码登录
    mysql -uroot -p    
    Enter password:    # 第一次使用root用户登录时,默认是没有密码的,回车直接登录
    mysql> set password = password('root'); # 给当前数据库设置密码
       
    # 远程登陆
    mysql -utest -p -h 192.168.13.121 
    

    创建账号

    格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"

    权限包括:select,insert,update,delete == all

    数据库名.*:与该数据库里的所有表建立连接; *.* 表示所有数据库的所有表

    # 创建本地账户
    mysql> create user 'admin'@'localhost' identified by 'admin';
    
    # 创建可用于远程登陆账号
    mysql> create user 'test'@'192.168.10.%'   IDENTIFIED BY '12345'   #'192.168.10.%' 指的是一个网段,可以指定单独一台主机的IP
    mysql> create user 'test1'@'%'   # 表示所有机器都可以连接
    
    # 给账号赋权限
    mysql> grant all on *.* to 'admin'@'localhost';  # 权限全开
    mysql> grant select on *.* to 'test1';   # 开部分权限,给test1用户赋予查询所有数据库所有表的权限
    mysql> flush privileges;  # 赋权立马生效
    
    # 查看用户权限
    mysql> show grants for 'admin'@'localhost';
    

    操作文件夹(库)

    操作 命令
    创建数据库 create database 数据库名 charset utf8 ;
    删除数据库(千万别用) drop database 数据库名;
    查看所有数据库 show databases;
    查看当前数据库 select database();或者status;
    连接数据库 use 数据库名
    修改数据库 alter database 数据库名 charset latin1;

    进入到其他数据库时使用:  use 数据库名

    操作文件(表)

    操作 命令
    创建数据表 create table 表名([字段1] [类型],[字段2] [类型]);
    删除数据表 drop table 表名;
    清空表 delete from 表名;或者 Truncate 表名;
    查看表的结构 desc 表名; 或者 describe 表名 ;
    查看建表语句 show create table 表名;
    重命名数据表 aletr table 现表名 rename 新表名;
    增加列 alter table 表名 add 列名 列类型 ;
    删除列 alter table 表名 drop 列名;
    重命名列 alter table 表名 change 现列名 新列名 类型;
    修改列的属性 alter table 表名 modify 列名 新属性;
    添加索引 alter table 表名 add index 索引名(字段名 1,字段名 2…);
    查看索引 show index from 表名;
    删除索引 alter table 表名 drop index 索引名

    表中的每一行叫做一个字段

    操作数据

    操作 命令
    增加 insert into 表名 values(字段1),(字段2),(字段3);字段内部数据以,隔开
    查看 select 内容 from 表名 ;
    修改 update 表名set 修改的内容 where 条件 ;
    删除 delete from 表名 where 条件 ;
    清空表 delete from 表名; truncate table 表名;(比第一条运行速度快)
    删除字段自增长 alter table 表名 change 列名 列名 类型 ;注意列名称要重复一次,即需要将列的名称写两次
    增加字段自增长 alter table 表名 modify 列名 类型 auto_increment;
    (反方向)alter table 表名 change 列名 列名 类型auto_increment;
    修改自增长起始值 alter table 表名 auto_increment=[value];

    文章参考:https://www.cnblogs.com/Eva-J/articles/9676220.html

    仅供参考,欢迎指正
  • 相关阅读:
    jQuery形式可以计算,它包含了无线电的变化价格,select价格变化,删除行动态计算加盟
    Codeforces 420 B. Online Meeting
    网站压力测试工具Webbench介绍
    【设计模式】外观模式
    Saiku一个简短的引论
    【iOS】MD5数据加密和网络安全
    FFmpeg资料来源简单分析:libswscale的sws_getContext()
    Unity3D脚本--真实1
    [Android]BaseExpandableListAdapter实现可折叠列表
    如何解决android logcat不打印信息在android开发中
  • 原文地址:https://www.cnblogs.com/jjzz1234/p/11272722.html
Copyright © 2020-2023  润新知