• mysql数据库管理、常用命令及函数(10.10 第十八天)


    数据库管理:

    MYSQL 轻量级数据库,适用于中小型企业,性能好,开源的(免费的)

    MSSQL 微软开发的,需要安装在NT系统中,不支持跨平台,适用于中大型企业

    ACCESS 小巧方便,适用于小型企业 小型项目

    ORACLE 收费的,适用于大型企业,甲骨文开发的,跨平台,性能高 需要良好的硬件支持

    常用框架组合:

    mysql+php

    mssql+asp、aspx

    access+asp

    oracle+java

    oracle+jsp

    数据库模型

    关系型数据库(结构化数据库)mysql mssql oracle db2等

    非关系型数据库(非结构化数据库) redis mongodb nosql postgresql Hbase等等

    管理musql数据库的方式

    DOS:需要配置mysql的环境变量 mysql -uroot -proot

    phpmyadmin:基于网页的数据库管理平台

    mysql-front:开源的C/S模式的数据库管理平台

    Navicat:收费的,功能强大的数据库管理平台

    mysql数据库结构:数据库名--》数据库表--》表头(字段名)--》数据内容

    表中有几个字段就会有几列数据

    一行数据叫记录

    管理mysql数据库的常用命令:(注意:在DOS-mysql命令中需要加;)

    mysql -uroot -p 登录 (二进制方式) 退出:exit

    select version(); 查看当前运行的数据库版本

    show databases; 查看所有的数据库

    information_schema 它是5.0以后的mysql数据库自带的,汇总数据库信息

    mysql 存放当前数据库信息,如登录信息、权限设置、安全设置等

    use mysql; 使用mysql,表示进入到选中的数据库中

    show tables; 查看当前数据库中的所有表

    select * from uses; 查看uses表下所有的数据内容 *(要查找的内容 *代表全部)

    修改密码:知道原密码修改:

    1、进入到数据库

    2、use mysql;

    3、alter user "root"@"localhost" identified by "新密码";

    (低版本)

    update mysql.user set password=[assword('新密码')where user='root' and host='127.0.0.1';

    4、flush privileges;

    mysql系统之外去修改密码

    mysqladmin -u root 0p password "新密码"

    忘记密码去修改(Linux中)

    1、关闭mysql服务,修改配置文件mysql.ini/mysql.cnf

    2、打开mysql配置文件,找到[mysqld]加上:skip-grant-tables (跳过密码验证)

    3、重启mysql服务,直接免密码登录mysql数据库,利用上述方法修改密码就好

    4、再把修改的配置文件注释掉

    5、重启MySQL服务,使用修改的密码登录

    mysql数据库中添加账号并授权

    添加账号:create user "用户"@"主机IP" identified by "密码";

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

    添加权限

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

    权限: insert drop update select all

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

    grant all on *.* to "hqw"@"192.168.1.1"

    注意:外联的话在配置中bind 127.0.0.1 需要注释掉,或者根据需求进行修改

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

    update user set host="%" where user="root" and host="localhost";

    flush privileges;

    注意:外联的话在配置中bind 127.0.0.1 需要注释掉,或者根据需求进行修改

    mysql常用函数

    select version();=select @@version mysql当前版本

    select user(); 当前所在数据库

    select @@hostname; 当前用户名

    select @@tmpdir; 当前临时目录

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

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

    数据库文件格式:

    opt 编码

    frm 存储表结构

    myd 存储数据,数据内容

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

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

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

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

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

    group_concat() 分组并拼接字符串

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

    SQL语法

    创建数据库

    create database te; (交互模式)

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

    删除数据库

    drop database te

    mysql -uroot -proot drop te

    数据库中数据类型

    int 整型

    bigint 大整型

    float 浮点型

    date 日期

    time 时间

    char 单个字符

    varchar 变长字符

    text 文本

    timestamp 时间戳

    double 双进度浮点型 3.00

    bit 比特

    tinyint 布尔

    创建表:use 表

    create table 表名(字段名1 数据类型primary key(主键) auto_increment(自增,看情况使用 not null(不为空),字段名2 数据类型,,,,,)DEFAULT CHARSET=utf8

    表中需要一个大哥作为代表,该代表是唯一的,能够表示某个人、事物,将大哥称为主键,通过该主键能够确定一个记录

    注意:字段名不需要加引号,数据类型中根据需求说明长度 VARCHAR(100)

    删除表:drop table 表名

    查看表中字段:show create table 表名; desc 表名

    后续添加主键:

    alter table 表名 add primary key(字段) 注意:主键字段名不为空

    插入数据:

    insert into 表名(字段名1,字段名2)value(值1,值2);

    注意:自增的主键可以不插入数据

    查询数据:

    select 字段 from 表名;

    select 字段 from 表名 where 字段名=指定值; (一个条件)

    select 字段 from 表名 where 字段1=值1 and/or 字段2=值2;

    限制查询

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

    limit a(从0开始选择a个记录)

    更新数据

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

    update 表名 set 字段1=值1,字段2=值2 where 条件

    删除表中数据 delete from 表名

    like字句

    通配符:% 任意字符 _单个字符

    select * from stu where name like “shijie%” *(模糊查询

    union联合查询

    语法:查询语句1 union 查询语句2 将他们查询出来的结果放在一张表中显示 他们查询出来的字段个数必须一致

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

    语法:Order by 的使用

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

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

    asc升序

    desc降序

    select * from 表 order by 数字 表示对第n列数据进行排序,如果数字超过表格的列数,则会报错,可以根据数字来有推断表中列数

    删除字段

    alter table 表名 drop 字段名;

    添加字段

    alter table 表名 add 字段名 字段类型

    修改表名

    alter table 原表名 rename to 新表名;

    去重查询

    select distinct name from 查询的字符;

    注释符:# --

    数据的导入导出

    导入数据:

    方法1

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

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

    (1)mysql -uroot -proot

    (2)create database 数据库

    (3)use 数据库

    (4)source 数据库文件

    方法2:使用phpmyadmin等平台导入数据,如果导入文件还不能创建数据库,则手动创建

    方法3:mysqlimport -uroot -proot --local 数据库名 teacher.txt

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

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

    导出数据

    • 方法1:借助平台(phpMyAdmin、mysql-fornt、navicat等等)
    • 方法2:
    1 mysqldump -uroot -proot 要导出的数据库名 > 路径./data.sql  导出数据库
    2 mysqldump -uroot -proot 数据库名 要导出的数据表名 > 路径  导出数据表 
    • 方法3:
    1 select 字段 from 表名 into outfile “文件名”;  将数据库中的字段内容导入到文件中
    2 select * from mysql.user into outfile “./123.txt”;
    3 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
      • 首次从数据库中导出文件,数据库会运行--secure-file-priv安全机制,会限制导入导出文件。查看该安全项的值:
    1 show global variables like ‘%secure_file_priv%’;
    2     secure_file_priv为NULL,表示MySQL限制导入导出
    3     secure_file_priv没有值,表示MySQL不限制导入导出
    4     secure_file_priv值为目录,表示MySQL只能在目录下执行导入导出,其他目录不允许
      • 修改该安全选项:
        • 临时方法:
    1 set global secure_file_priv=’’;
    2 ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable  表示不能通过SQL语句更改 
        • 长久方法:修改配置文件,在配置文件中找到[mysqld],在后面添加secure_file_priv=’’,保存退出,重启服务

  • 相关阅读:
    为什么使用Redis
    [Apache Pulsar] 企业级分布式消息系统-Pulsar快速上手
    [Apache Pulsar] 企业级分布式消息系统-Pulsar入门基础
    JDK源码分析系列---ArrayList和LinkList
    JDK源码分析系列---String,StringBuilder,StringBuffer
    单点登录
    单例模式的几种实现方式
    Bloom’S Taxonomy
    Python 字符串多替换时性能基准测试
    软件开发的生产力vs质量
  • 原文地址:https://www.cnblogs.com/liujizhou/p/11649929.html
Copyright © 2020-2023  润新知