zoukankan      html  css  js  c++  java
  • 数据库管理

    一、常用数据库
      MYSQL:轻量级数据库,适用于中小型企业,性能好,开源的
      MSSQL:微软,需要安装NT系统,不支持跨平台,适用于中大型企业
      ACCESS:小巧方便,适用于小型企业和小型项目
      ORACLE:甲骨文开发的,收费,适用于大型企业,跨平台,性能高,需要良好的底层硬件支持
    二、常用框架组合
      mysql+php
      mssql+asp、aspx
      oracle+Java、jsp
      access+asp
    三、数据库模型
      关系型数据库(结构化数据库)mysql mssql oracle db2等
      非关系型数据库(非机构化数据库)redis mongodb nosql postgresql Hbase 等
    四、配置MySQL的环境变量
      DOS-mysql:需要配置mysql的环境变量 mysql -uroot -proot
      phpmyadmin 基于网页的数据库管理平台
      mysql-front 开源的基于C/S模式的数据库管理平台
      Navicat 功能强大的数据库管理平台 收费
    五、mysql数据库结构:

      数据库名--->数据库表---->表头(字段名)--->数据内容
      表中有几个字段就会有几列数据
      一行数据叫做记录
    六、管理mysql数据库的常用命令:(注意:在DOS-mysql命令中需要加;)

      mysql -uroot -proot (二进制方式登录)
      exit 退出数据库
      show databases;查看所有的数据库
        information_schema 是5.0版本以后数据库自带的,汇总数据库信息
        mysql 存放当前数据库信息,如登录信息、权限设置、安全设置等
      use mysql;使用mysql,表示进入选中的数据库
      show table;查看当前数据库中所有的表
      select * from users;查看表user中的所有数据内容
      select version(); 查看当前运行的数据库版本

    七、修改密码

      1、知道原密码

        Step1:需要进入到数据库中,mysql -uroot -p

        Step2:  

          1)低版本(5.0 、5.1、5.5、5.6):

    update mysql.user set password=password('新密码') where user='root' and host='127.0.0.1';
    flush privileges;    //刷新数据库

          2)高版本(5.7、8.0)

    use mysql;
    alter user "root"@"localhost" identified by "新密码";
    update mysql.user set authentication_string=Password("root") flush privileges

        Step3:使用新密码登录测试

        在mysql系统之外修改密码

          在mysql/bin  cmd   

          mysqladmin.exe -uroot -p password"新密码"

      2、忘记原密码

        1)Windows中:phpstudy中点击修改。

         2)Linux中

          Step1:关闭mysql服务,修改配置文件my.ini或者my.conf

          Step2:打开mysql的配置文件,找到[mysql]   加上:skip-grant-tables(跳过密码验证),重启服务

          Step3:直接免密码登录mysql数据库,利用上述方法修改密码:

    update mysql.user set password=password('新密码') where user='root' and host='127.0.0.1';
    flush privileges;    //刷新数据库
    exit;

          Step4:修改配置文件,将添加的命令使用#注释掉,重启服务

          Step5:使用新密码测试 

    八、在mysql数据库中添加账户并授权

      1、添加账号

        create user "用户"@"主机IP" identified by "密码";

          主机IP:允许哪个主机可以登录,(localhost:本机可登录;%:任意用户可登录)

      2、添加权限

        grant 权限 on 库名.表名 to "用户名"@"主机IP";

        权限:insert drop update select all;

        库名.表名 :表示能够操作的数据库和表;  *.*  表示所有的数据库以及所有数据表

          例:grant all on *.* to "hqw"@"192.168.1.1";

          注意:配置文件中的 bind 127.0.0.1 需要注释掉,或者根据需求进行修改

    九、数据库外联:(允许远程连接)

    update mysql.user set host="%" where user='root' and host='localhost';
    flush privileges;

      注意:配置文件中的 bind 127.0.0.1 需要注释掉,或者根据需求进行修改

    十、MySQL常用函数

      version();   select  @@version; 查询版本

      user();  select @@hostname;   查询当前用户

      select @@tmpdir;   查询临时目录

      select @@basedir;  数据库服务所在位置

      select @@datadir;   数据存放的位置

      mid(被截取的字符串,开始索引,截取的长度);    截取字符串

      ord();   显示字符ascii  (首字母的)

      concat( ,,…);    拼接字符串 

      concat_ws(分隔符,,…);   使用分隔符拼接字符串

      group_concat();    分组并拼接字符串

      sleep(1);   让数据库等待一秒钟

    十一、数据库文件格式

      .opt   编码方式

      .MYD   存储数据,数据内容

      .frm   存储表结构

      .MYI   存储当前数据的配置信息和索引信息

    十二、SQL语法

      1、创建数据库

        create database db_name; (交互模式)

        mysqladmin -uroot -proot create db_name    在DOS命令中,需要使用mysqladmin.exe

      2、删除数据库

        drop database db_name;

        mysqladmin -uroot -proot drop db_name

      3、数据库中的数据类型

        int   整型

        bigint   大整型

        float  浮点型  3.0

        date   日期

        time  时间

        char   字符

        varchar   变长字符

        text   文本

        timestamp   时间戳

        double  双精度浮点数   3.00

        bit   比特

        tinyint   0/1  表示布尔

      4、创建表:use 表;

        create table 表名(字段名1  数据类型,字段名2  数据类型,……);

        primary key   主键

          表中需要一个主键,该主键唯一,具有代表性,通过该主键能过确定一个记录。

          后续添加主键:alter table db_name add primary key(字段名称);

        auto_increment   自增

        not null    不为空

      5、查看表中字段:

        show create table db_name;

        desc db_name;

      6、插入数据

        insert into db_name(字段1,字段2) value(数据1,数据2);

          注意:自增的字段可以不插入数据

      7、查询数据

        select 字段1,字段2  from  db_name;

        select 字段 from db_name where 字段名1=指定值1 and/or 字段名2=指定值2;

      8、限制查询

        limit a,b       a,b均为数字,a表示记录的索引(从0开始),b表示记录的长度

        limit a        表示从 0 开始选择 a 个记录

      9、去重查询

        select distinct 字段名 from 表名;

      10、更新数据

        update 表名 set 字段1=值1,字段2=值2;    更改字段所有的值

        update 表名 set 字段1=值1 where 字段=指定值;   更改字段指定的值

      11、删除表中的值 

        delete from 表名; 慎用

      12、字段

        删除字段

          alter table 表名 drop 字段名;

        添加字段

          alter table 表名 add 字段名 数据类型;

      13、修改表名

        alter table 原表名 rename to 新表名

      14、like子句

        通配符

          % 任意字符   _单个字符

        select * from stu where name like "pingfan%"   模糊查询    (查找pingfanshijie)

      15、数据的导入导出

        1)导入数据

          方法一:

            mysql -uroot -proot < 需要导入的数据库文件(data.sql)

            注意:data.sql需要自动创建数据库,并且需要选择该数据库。如果data.sql不会自动创建数据库,需手工创建

              mysql -uroot -proot

              create database 数据库

              use  数据库

              source  数据库文件

          方法二:使用phpmyadmin等平台导入数据,如果data.sql不会自动创建数据库,需手工创建

          方法三:mysqlimport -uroot -proot --local 数据库名 数据库文件

              --local   表示本地任意位置均可导入数据   -L

            首先需要创建数据库,创建表(该表的表名、字段名要和导入的数据的保持一致)

        2)导出数据

          方法一:借助平台:(navicat 、phpmyadmin、mysql-fornt等)

          方法二:mysqldump -uroot -proot 数据库名 > ./data.sql

              mysqldump -uroot -proot 数据库名 表名 > ./data.sql

          方法三:select 字段 from 表名 into outfile “文件”;  将数据库中的字段内容导入到文件中。

            首次从数据库中导出文件,数据库会运行“--secure-file-priv”安全机制,会限制导出文件。

             查看该安全项的值:show global variables like '%secure-file-priv%';

              secure-file-priv 为NULL表示mysql限制导入导出

              secure-file-priv 没有值 表示mysql不限制导入导出

              secure-file-priv=/tmp    表示mysql只能在/tmp目录下执行导入导出,其他目录是不允许

            修改该安全选项

              临时方法:set global secure-file-priv='';

                注意:  表示不能通过sql语句修改

              长久方法:修改配置文件,在配置文件中找到[mysql] ,后面添加 secure-file-priv=''  保存   退出  重启服务

    十三、Union 联合查询

      语法:查询语句1 union 查询语句2    

      将他们查询出来的结果放在一张表中显示,他们查询出来的字段个数必须一致

      可以根据查询语句2的字段数判断查询语句1的字段数

    十四、order by 的使用

      order by 条件:根据给定的条件排序,默认情况下表的排序是升序

        select * from 表 order by 字段名 [ASC/DESC]  根据执行的字段名去排序

          ASC  升序

          DESC   降序

        select * from 表 order by n(数字)    表示对第n列数据进行排序,如果数字超过表格的列数,则会报错

          可以根据数字来推断表中的列数  

  • 相关阅读:
    HGOI20191115 模拟赛 题解
    HGOI20191114 CSP模拟赛 反思
    HGOI 20191108 题解
    HGOI 20191107 题解
    HGOI 20191106 题解
    HGOI 20191105 题解
    HGOI 20191103am 题解
    HGOI 20191101am 题解
    HGOI 20191031am 题解
    新的博客!!!
  • 原文地址:https://www.cnblogs.com/yuanshu/p/11644292.html
Copyright © 2011-2022 走看看