数据库管理

一、常用数据库
  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列数据进行排序,如果数字超过表格的列数,则会报错

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

posted @ 2019-10-09 20:51  远书  阅读(379)  评论(0编辑  收藏  举报