zoukankan      html  css  js  c++  java
  • MySQL-数据库安装及基本SQL语句

    一数据库基本概念

      基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。

      如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。

      但是会出现以下问题:1 数据安全问题,如果电脑挂了怎么办,无法做到集群。

                2 数据格式不统一,数据无法共享;

                3 并发问题。。。

           以上问题是所有开发者都面临的问题,所以有人就站出来说,我给你们开发好一个专门存储管理数据的软件,这就是数据库(RDBMS 数据库管理系统),市面上的数据库软件有很多种类,

    其中大致可以分为两类;  

      1 关系型数据库:oricle, db2, access ,spl server,mysql

      2 非关系型数据库:redis  mongodb memcache

           这两种类型分别又有什么样的特点呢:关系型数据库,存储数据的时候,对于数据条件限制;其次数据与数据之间有关联。

                       非关系型数据库,数据存储方式是k,v键值对的形式存储,数据与数据间么有关联,值没有条件限制。

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

    MYSQL 数据库的安装

      1 启动

         服务端启动 mysqld

         客户端启动 mysql -uroot -p

      2 查看所有库 show databases;

      3 环境变量设置:将bin 文件路径添加到环境变量

      4 将mysql制作成系统服务(开机自启)

        1 关掉服务:查找进程号tasklist |findstr mysql  杀掉进程:taskkill /F /PID 进程号

                  2 执行命令:mysqld --install

             3 重启服务:net start mysql

        查看本机服务:services.msc

            5 更改密码: mysqladmin -uroot -p原密码 password 新密码

       6 破解密码:

         1.先关闭服务端

          cmd找进程:tasklist|findstr mysql

          杀进程:taskkill /PID 进程号


            2.以跳过用户密码认证模式重新启动服务端
                  mysqld --skip-grant-tables
            3.以管理员登录
            4.修改mysql库里面的user表
            update mysql.user set password=password(123) where user='root' and host='localhost';
            5.先关闭跳过验证的服务端,以正常模式启动服务端
            6.输入用户名密码正常登陆

          7.解决编码问题

      

      数据库初始化:mysqld --initialize-insecure

           查询服务器启动错误: mysqld --console
            

    [mysqld]    #服务端配置
    port = 3306      # 默认端口号
    basedir=D:mysql   # 文件目录
    datadir=D:mysqldata   # 数据库目录
    max_connections=200     # 客户端最大连接数
    character-set-server=utf8     # 统一字符编码
    collation-server=utf8_general_ci   # 排序规则
    default-storage-engine=INNODB   # 默认存储引擎为innodb
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [mysql]   
    default-character-set=utf8    # 同一字符编码utf-8
    [client]
    default-character-set=utf8    # 统一字符编码utf-8

    基本的sql语句

      对数据的增删改查

    操作 库(文件夹) 表(文件) 记录
    create database 库名 charset utf8; creat table 表名(name char,age int);

    insert into 库名.表名 values(‘egon’,18);

    into 可加可不加,库名不指定,默认就是在当前库下

    alter database 库名 charset utf8;

    alter table 表名 modify name char(15);

    alter table 表名 column 字段名 字段类型;新增列

    update 库名.表名 set name='dsb' where age=18;

    show databases;

    show create database 库名;

    show tables;

    show create table 表名;查看表详细信息

    describe 表名;查看表结构

    selcet age,name from 库名.表名;

    库名可以不指定,默认当前库下。

    select * from 表名;

    drop database 库名; drop table 表名;

    delete from 库名.表名 where age>3;

    delete from 库名.表名 where name=‘egon’

    这里注意如果少了引号,后面无论敲什么都没有用了需要将引号补全。

           

    表操作

      文件的格式有很多种,对应打开的软件也有很多种,例如 txt,pdf 等等,针对不同类型的文件,需要对应不同的软件帮助我们去操作。

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

           四种需要了解的引擎:innodb myisam blackhole  memory

      

    innodb myisam blackhole memory

    两个文件(frm idb )

    frm 空表

    idb 数据

    三个文件(frm MYd MYI)

    MYI 索引

    一个文件(frm) 一个文件(frm)

    存储引擎
      不同的应用软件处理不同类型的数据
      mysql5.5版本及以上默认的存储引擎是innodb;
      innodb:支持行锁表锁,外键,事物,安全性更高,较myisam数据更安全;
      myisam:仅仅支持表锁不支持行锁,查询速度较innodb更快;
      memory:内存引擎,将所有的数据直接放在内存,一旦断电数据全部消失;
      blackhole:一切存入其中的数据都会消失;
      指定表的引擎:create table t1(id int,name char(16))engine=innodb;

  • 相关阅读:
    【Vijos1159】岳麓山上打水 [迭代加深]
    【POJ3134】 Power Calculus [迭代加深]
    【2019.1.24】 搜索,动规 经典题目体验赛
    【noip2017】
    【poj3311】Hie With The Pie [状压dp]
    [bzoj3938] [Uoj #88] Robot
    [洛谷P4707] 重返现世
    [洛谷P4097] [HEOI2013] Segment
    KD-tree 学习小记
    NOI2019 酱油记
  • 原文地址:https://www.cnblogs.com/guanchao/p/10846273.html
Copyright © 2011-2022 走看看