2020-09-26 数据库知识点

数据库知识点

1. 数据库服务概念介绍

    数据库: 主要用于对大量数据信息可以进行有效的分析处理

数据库服务器:  MySQL Maridb

    数据库:  存储数据分类  用户信息--用户信息库  商品信息---商品  交易信息---支付业务

    数据表:  数据表信息   

    数据字段: 存储具体内容信息,存储信息规范

    数据行:  真实每一条合法的数据信息

2. 数据库服务环境安装部署

    windows系统中部署数据库:  mysql

    https://dev.mysql.com/downloads/installer/

PHPstudy 程序包  --- 包含了数据库服务 --- 进行启动开启

方式一: 连接数据库(命令行操作管理)

连接数据库服务: cmd ---> 切换到PHPstudy数据库程序目录中 ---> 连接数据库

mysql.exe -uroot -proot

d:

    cd D:\phpstudy\phpstudy_pro\Extensions\MySQL5.7.26\bin

mysql.exe -uroot -proot

方式二: 连接数据库(图形界面操作)

安装连接数据库程序软件: Navicat 安装部署

实现远程连接数据库:

本地建立连接:  localhost == 127.0.0.1

    Linux系统中部署数据库: mysql

    https://dev.mysql.com/downloads/mysql/

准备Linux环境: vmware虚拟软件  --- 加载虚拟主机  --- 启动

    部署数据库服务: mariadb        ---  yum install -y  mariadb(操作数据库命令)  mariadb-server

    启动数据库服务: systemctl startmariadb


  方式一: 连接数据库(命令行)

    虚拟主机环境 --- mysql -uroot 

3. 数据库操作管理知识

    1) 操作数据库相关SQL命令

· 创建数据库信息: 

  语句格式: CREATE DATABASE 数据库名称;

  操作命令: CREATE DATABASE PHP;

· 查看数据库信息: 

  语句格式: show databases;

· 选中指定数据库信息:

  语句格式: use 数据库名称;

  操作命令: use php;

· 查看库中具有表信息:

  语句格式: show tables;

· 删除指定数据库信息:

  语句格式:  drop database 数据库名称;

  操作命令:  drop database php;


2) 操作数据表相关SQL命令

    · 创建表信息:

      语句格式: CREATE TABLE 表名(字段名1 字段类型,字段名2 ....字段名n 字段类型n);

      操作命令: 

  create table rap(name varchar(10),sex char(5),age int(5),hobby char(20));


    · 查看表中字段信息:

      语句格式: desc 表名称

      操作命令: desc rap;

      +-------+-------------+------+-----+---------+-------+

    | Field | Type        | Null | Key | Default | Extra |

    +-------+-------------+------+-----+---------+-------+

    | name  | varchar(10) | YES  |    | NULL    |      |

    | sex  | char(5)    | YES  |    | NULL    |      |

    | age  | int(5)      | YES  |    | NULL    |      |

    | hobby | char(20)    | YES  |    | NULL    |      |

    +-------+-------------+------+-----+---------+-------+


    · 查看表信息创建方法:

      语句格式: SHOW CREATE TABLE 表名称;

      操作命令: SHOW CREATE TABLE xueyuan\G;

    *************************** 1. row ***************************

        Table: rap

    Create Table: CREATE TABLE `rap` (

  `name` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,

  `sex` char(5) COLLATE utf8_unicode_ci DEFAULT NULL,

  `age` int(5) DEFAULT NULL,

  `hobby` char(20) COLLATE utf8_unicode_ci DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

1 row in set (0.00 sec)


    · 删除表信息:

  语句格式: drop table 名名称;

  操作命令: drop table rap;


· 创建表设置引擎信息和默认字符编码信息:

      mysql> create table test(

      name varchar(15),

      sex char(5),

      age int(5),

      xueli char(10),

      jingyan bool,

      xinzi float(10,2)

      )ENGINE=InnoDB DEFAULT CHARSET=utf8;

3) 操作数据字段相关SQL命令

· 修改字段数据类型信息

  语句格式: alter table 表名 modify 字段名 修改后的数据类型;

  操作命令: alter table rap  modify sex varchar(10);


· 增加表中字段信息:

  语句格式: alter table 表名 add column 字段名 字段类型;

  操作命令: alter table test add column oldboy date;

· 增加表中字段信息: 可以指定控制字段添加的位置

  语句格式: alter table 表名 add 字段名 bool after 在哪个字段后添加;

  操作命令: alter table test add oldgirl bool after age;


  增加表中字段信息: 将指定字段插入到第一列

  语句格式: alter table 表名 add 字段 类型 first;

  操作命令: alter table test add oldbaby char first;


· 删除表中字段信息:

  语句格式: alter table 表名 drop column 字段名称;

  操作命令: alter table test drop column oldbaby;


· 修改字段名称信息:

  语句格式: alter table 表名 change 原字段名称 修改后字段名 字段类型;

  操作命令: alter table test change xueli edu varchar(15);


· 修改已有字段顺序:

  语句格式:

  alter table 表名 modify 字段名 类型 first;        --- 直接将指定字段移到第一列

  alter table test modify 字段名 类型 after 字段名; --- 将字段移动到指定列之后


    · 修改数据库中表的名称:

      语句格式: alter table 旧表名 rename 新的表名;

      操作命令: alter table test rename new_test;

4) 数据库索引操作

  索引概念介绍: 可以提升查找指定数据检索效率

  索引分类介绍: 普通索引 唯一索引(不能有字段信息重复)  主键索引(字段信息不能为空)


  索引创建方法:

  普通索引创建: MUL

  语法格式: alter table 表 add index(字段);

  操作命令: alter table xueyuan add index(name);


  唯一索引创建: UNI

  语法格式: alter table 表  add UNIQUE(字段)

  操作命令: alter table xueyuan add UNIQUE(xueli);


  主键索引创建: PRI

  语法格式: alter table 表  add PRIMARY KEY(字段)

  操作命令:  alter table xueyuan add primary key(jingyan);

删除普通索引: alter table xueyuan drop index name;

  删除唯一索引: alter table xueyuan drop index xueli;

  删除主键索引: alter table xueyuan drop primary key;



    5) 增删改查插入数据信息记录

  · 增加数据信息:

  方式一: 添加数据信息

  语法格式: insert into 表名 value(字段01数据,字段02数据,字段03数据,..,字段n数据);

      操作命令: insert into xueyuan value("张三","男",23,"本科",0,9000);

  方式二: 添加数据信息

  语法格式: insert into 表(字段01,字段02,字段03) value(字段数据01,字段数据02,字段数据03);

  操作命令: insert into xueyuan(name,sex,jingyan) value("李四","女",1);

      · 查看数据信息:

  语法格式: select 字段信息/* from 表信息  where  查询字段条件

  操作命令: select name,sex,age from xueyuan where age=23 and sex="女" or sex="男";

  匹配条件符号信息  >、<、>=、<=、!= 

  匹配条件逻辑符号  and  or

  取消重复信息:

  语法格式: select distinct 字段 from 表;

6) 表数据信息排序功能

      准备环境:

  create table chengjibiao(

    id  int(5),

name char(10),

chengji int(5)

  );


  insert into chengjibiao value("01","张三",90);

  insert into chengjibiao value("02","赵四",80);

  insert into chengjibiao value("03","王五",95);

  insert into chengjibiao value("04","周明",75);

  insert into chengjibiao value("05","高亮",100);


  语法格式: select 字段信息/* from 表名称 order by 排序列信息 desc降序/asc升序;

      操作命令: select id,name,chengji from chengjibiao order by chengji desc/asc;  


    7) 限制数据库表输出信息行数

      语法格式: select 字段信息/* from 表信息 limit 限制显示行数;

      操作命令: select id,name,chengji from chengjibiao limit 3;

      PS: 以上SQL查询语句信息字段可以进行整合使用,根据实际需求  


    8) 数据库数据信息运算方法

      sum 求和

  count 统计总数 

      max     最大值

      min     最小值

      avg     平均值



  count统计总数:

  语法格式: select count(字段信息) from 表名;

  操作命令: select count(chengji) from chengjibiao;

  操作命令: select count(chengji) as "班级学院数" from chengjibiao;  --- as 设置别名功能


  avg平均数值:

  语法格式: select avg(字段信息) from 表名;

  操作命令: select avg(chengji)  from chengjibiao;


  sum求和运算:

  语法格式: select sum(字段信息) from 表名;

  操作命令: select sum(chengji)  from chengjibiao;


  max取最大值:

  语法格式: select max(字段信息)  from 表名;

  操作命令: select max(chengji)  from chengjibiao;


  min取最小值:

  语法格式: select min(字段信息)  from 表名;

  操作命令: select min(chengji)  from chengjibiao;  


    9) 修改表中数据信息

      语法格式: update 表名 set 修改字段=修改后信息,字段2=值2,字段n=值n where 修改哪一行信息

  语法操作: update user set username="李四" where uid=4;

  PS: 只要修改表中信息,一定要加上where;

10) 删除数据信息

        语法格式: delete from 表信息 where 删除条件;

操作命令: delete from user where username="李四";

    11) 清空表信息:

    语法格式: TRUNCATE TABLE 表名;

操作命令: TRUNCATE TABLE user; 


4. mysql多表查询(联表查询)

    准备环境:

CREATE TABLE IF NOT EXISTS user (

      uid int(11) NOT NULL,

      username varchar(30) NOT NULL,

      password char(32) NOT NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    CREATE TABLE IF NOT EXISTS order_goods (

      oid int(11) NOT NULL,

      uid int(11) NOT NULL,

      name varchar(50) NOT NULL,

      buytime int(11) NOT NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

user表添加数据信息:

INSERT INTO user(uid,username,password) values('1','jintian','123456');

    INSERT INTO user(uid,username,password) values('2','zhangsha','1234f56');

    INSERT INTO user(uid,username,password) values('3','wangwu','1234fs56');

    INSERT INTO user(uid,username,password) values('4','lisi','123s456');

    INSERT INTO user(uid,username,password) values('5','xiaotian','123d456');

    INSERT INTO user(uid,username,password) values('6','wangfei','123f456');

    INSERT INTO user(uid,username,password) values('7','oldboy','123w456');

    INSERT INTO user(uid,username,password) values('8','oldboyww','123w45ee6');


联表查询语句: select u,第一张表字段信息,o.第二张表字段信息 from 第一张表 标识u,第二张表 标识o where u.字段 = o.字段;  两张表的字段相同

联表查询操作: select u.uid ,u.username as username ,o.oid,o.uid,o.name as shopname from user u,order_goods o where u.uid = o.uid;

5. 数据库权限操作说明:

    添加权限信息语法:

grant 权限 on 库.表 to '用户'@'主机' identified by '密码';

                                  白名单 允许哪些主机或者网段可以和数据库服务建立连接

    手机微信: 黑名单  禁止通讯连接

手机安全: 白名单  特定信息允许

grant all  on php.* to 'oldboy'@'10.0.0.%'  identified by 'oldboy123';

作用:

1) 可以让指定用户拥有相应权限来管理数据库  root 皇帝--数据库

2) 可以让远程主机连接数据库进行管理

回收/删除权限:

revoke 权限 on 库.表 from '用户'@'主机';

revoke select,insert on test.* to 'oldboy'@'localhost' identified by '4311';

revoke update,delete on php.user to 'oldgirl'@'192.168.1.%';

你可能感兴趣的:(2020-09-26 数据库知识点)