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;

  • 相关阅读:
    遗传算法(Genetic Algorithm, GA)及MATLAB实现
    CCF CSP 201809-2 买菜
    PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)
    PAT (Basic Level) Practice (中文)1006 换个格式输出整数 (15 分)
    PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)
    PAT (Basic Level) Practice (中文)1002 写出这个数 (20 分)
    PAT (Advanced Level) Practice 1001 A+B Format (20 分)
    BP神经网络(原理及MATLAB实现)
    问题 1676: 算法2-8~2-11:链表的基本操作
    问题 1744: 畅通工程 (并查集)
  • 原文地址:https://www.cnblogs.com/guanchao/p/10846273.html
Copyright © 2011-2022 走看看