zoukankan      html  css  js  c++  java
  • 初识数据库

    一、什么是数据库?

    存放数据的仓库

    为什么会有数据库?因为我们所学的数据管理可以用文件来存储 但存在以下缺陷:

    1.IO操作 效率问题
    2.多用户竞争数据
    3.网络访问
    4.用户的验证

    所以产生了数据库。

    conclusion:

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

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

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

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

    二、常见的数据库

    关系型 数据之间存在某种关联关系 数据存在硬盘内 速度慢
    Oracle ------目前最好关系型数据库,体现在用户管理,分布式,商业用途收费
    Mysql  ------免费开源,功能支持没有Oracle强 但是足以满足中小企业使用,先后被Sun 和 Oracle 收购
    Mysql创始人wedenius担心 Mysql会闭源 于是另起灶炉 搞了MarriaDB
    MariaDB和Mysql 使用方法一模一样
    SqlServer -------属于微软生态链,需要和windows配合使用
    DB2 ------IBM开发的大型关系型数据库 ,收费的,通常与硬件捆绑销售

    非关系型 数据以key -value的形式来存储 数据存在内存中 速度快
    MongoDB
    Redis
    MemCache

    三、数据库的相关概念

    1、age = 18 一个变量 无法描述清楚数据 称之为一个字段 

    2、age = 18,name = Jack,genger = man  一堆变量在一起,可以描述清楚数据  称之为一条记录 对应着文件中的一行  

    3、文件需要分门别类 每个文件存储不同的数 一个文件称之为表  文件越来越多 得分文件夹

    4. 一个文件称之为库

    数据库中包含所有内容:
    字段(列)
    记录
    表
    库

    DBMS 数据库管理系统

    数据库服务器 :一个库可以包含多个表 一个表可以包含多条记录 一条记录中有多个字段

    数据库是什么,本质上就是一套C/S架构得socket软件

     

    四、安装数据库与配置使用环境

    mac安装方法:

    https://www.jianshu.com/p/fd3aae701db9

    win10安装方法:

    https://blog.csdn.net/weixin_41557632/article/details/78943248

    注意:

    1.代码界面版 傻瓜式安装 记住初始密码

    2.绿色解压版
    1. 5.7以后的版本需要先初始化 mysqld --initialize-insecure

    2.启动需要先进入安装目录 比较麻烦 需要添加到环境变量  打开环境变量 将mysql安装目录下的bin加入path变量

    3.将mysqld 加入到windows的系统服

    4.绿色版修改默认密码  修改默认密码需要先登录成功  执行update语句直接修改 user表中的密码

    5.7版本:
    update mysql.user set authentication_string = password("root") where user = "root";
    
    5.6版本: update mysql.user set password = password("root") where user = "root";

    修改密码方式2 不需要登录 需要知道旧密码
    mysqladmin -uroot -p旧密码 password 123

    破解密码,当忘记密码时 无法登录 也就不能值执行update语句

    思路:

    1.启动服务器时 控制它不要加载授权表
    2.无密码登录服务器
    3.执行update mysql.user set authentication_string = password("root") where user = "root"
    4.重启服务器

    用到的系统指令:

    mysqld 直接运行服务器程序
    mysqld --skip-grant-tables 跳过授权表 用于重设密码
    tasklist | findstr mysqld taskkill /f /pid 结束服务器程序
    mysql 运行客户端程序 -u用户名 -p密码 -h主机地址 -P端口号
    mysqld --install 将mysqld注册当windows服务中 在服务中叫MySQL
    windows就是绑定了一个exe程序
    sc delete mysql 删除windows服务
    exit 退出客户端
    配置文件放在安装路径根目录中 就是和bin同级  名称必须叫my.ini
    #客户端的配置
    [client]
    #mysql这个客户端的配置
    [mysql]
    user = root
    password = root
    default-character-set = utf8
    #服务器端的配置
    [mysqld]
    character-set-server = utf8
    修改默认编码
    1. 5.7需要初始化
    2. 5.6游客模式  没有密码可以登录 但是无法操作数据
        只能看到 information_schema mysql
    3. 5.7中 data数据存放目录 是由初始化时决定
        带界面的 在C:ProgramData中
        不带界面的就在安装目录中
        5.6就在安装目录中
    4.密码存储字段名 在5.6中时password  5.7中叫authentication_string
    Mysql5.6版 与5.7版的区别

    五、初识Mysql语句 (每句命令操作后记得加

    库的相关操作:

           增
                create database 库名称 ;
           删
                drop database 库名称 ;
           改
                alter database 库名称 要改的属性名称 ;
                alter database db1 DEFAULT CHARACTER SET utf8;
                alter database db1 CHARSET utf8;
                注意 在mysql中 utf-8 不能带- 写成utf8
           查
                show databases查看所有数据库 ;
                show create databases 库名称 查看建库的语句 ;
    1.不能使用纯数字
    2.可以是数字 字母 下滑线的组合
    3.可以下滑线开头
    4.不能是关键字 如create
    大致和python相同
    不区分 大小写
    库命名规范

    表相关的操作:

        增
            建表时要明确数据库
            use db1;
            create table 表名称(字段名 类型(长度),....);
            create table dog(nikename char(10),gender char(1),age int);
            #创建时同时指定数据库
            create table 库名称.表名称(字段名 类型(长度),....);
        删
            drop table 表名;
    
        改
            alter table 表名称 drop|change|modify|add 
            
    drop 字段名称 alter table dog drop color; change 旧的字段名 新的字段名 新的类型 alter table dog change gender sex char(
    2); modify 字段名 新的类型 alter table dog modify color char(5); add 字段名称 类型 alter table dog add color char(10); 重命名表 rename table 旧表名称 to 新表名称 rename table dog to dogtable; 修改表的属性 alter table 表名 属性名 值 alter table dogtable DEFAULT CHARSET gbk; 查 show tables;查看所有表 desc 表名称; 查看表结构 show create table 表名;查建表语句

    记录相关操作:


                  insert into 表名 values(值1,值n,....)
                  要求值得顺序 个数 必须与表字段完全对应
                  另一种写法
                  insert into 表名(字段名1,字段名n,....) values(值1,值n,....)
                  可以选择性得插入某些字段 要求值得顺序 必须与表名后面声明得字段一致

            删
                delete from 表名 where 字段名称 = 值
                没有条件的话删除全部数据
            改
                update 表名 set 字段名 = 新的值  where 字段名 = 值
                没有条件的话修改全部
            查
                select *from 表名;  *表示通配符 查看所有字段
                select 字段名称1,字段名2..  from 表名;
  • 相关阅读:
    POJ 2411 状态压缩递,覆盖方案数
    POJ 2774 最长公共子串
    POJ 1743 不可重叠的最长重复子串
    POJ 3294 出现在至少K个字符串中的子串
    POJ 3261 出现至少K次的可重叠最长子串
    POJ 1741/1987 树的点分治
    HDU1556 Color the ball
    解决linux系统时间不对的问题
    CentOS 6.9使用Setup配置网络(解决dhcp模式插入网线不自动获取IP的问题)
    Linux网络配置(setup)
  • 原文地址:https://www.cnblogs.com/wanlei/p/9991138.html
Copyright © 2011-2022 走看看