iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql数据库理论基础二
  • 182
分享到

Mysql数据库理论基础二

2024-04-02 19:04:59 182人浏览 泡泡鱼
摘要

 Mysql数据库理论基础二一、简介由mysql AB公司开发,是最流行的开放源码sql数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软件,且有大

 Mysql数据库理论基础二

一、简介

mysql AB公司开发,是最流行的开放源码sql数据库管理系统,主要特点:

  • 1、是一种数据库管理系统

  • 2、是一种关联数据库管理系统

  • 3、是一种开放源码软件,且有大量可用的共享MySQL软件

  • 4、MySQL数据库服务器具有快速、可靠和易于使用的特点

  • 5、MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中


  • InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。


二、MySQL相关概念:MySQL是单进程多线程接收应用的请求

2.1. SQL/MySQL

1.事务,隔离,并发控制,

2.用户和权限

3.监控

   STATUS

4.索引类型:查询

   VARIABLES

5.备份和恢复

6.复制功能

7.集群


2.2. DML:数据操作语言

   INSERT:插入

   DELETE:删除

   SELECT:挑选,选择,查询

   UPDATE:更新,修改


2.3. DDL:数据定义语言

   CREATE:创建

   DROP:删除

   ALTER:修改


2.4. DCL:数据控制语言

  GRANT:授权

  REVOKE:取消权限


2.5. MySQL插件式存储引擎:

 1.MyISAM:  不支持事务处理,应用于查询比较多,但修改比较少的数据存储仓库

   该引擎中,每个表有三个文件:

         .frm: 表结构文件

         .MYD: 表数据文件

         .MYI: 表索引文件

 2.InnoDB支持事务处理,查询没有那么快,应用于经常需要修改的,比如论坛数据存储

   该引擎所以表共享一个表空间文件;

   建议:每表一个独立的表空间文件;

         .frm:表结构文件

         .ibd:表空间(包含表数据和表索引文件)

   ----------------------------------------------------------------------

   为mysql打开innodb每表建立一个独立表空间文件的设置:

   编辑配置文件/etc/my.cnf添加一行后重启mysql服务:

   #vim /etc/my.cnf

   ....

   innoda_file_per_table = 1    #1为启用,0为禁用

   ----------------------------------------------------------------------


2.6. MYSQL数据库功能:

   1、数据库创建、删除

   2、创建表、删除表、修改表

   3、索引的创建、删除

   4、用户和权限

   5、数据增、删、改

   6、查询


2.7. MySQL二进制程序:mysql数据库的database存放路径为/var/lib/mysql目录中


2.8. 客户端命令:mysql

       -u USERNAME     #以那个用户连接mysql (不指定默认用户为root)

       -p           #指定输入用户密码   (不指定默认是空密码)

       -h MYSQL_SERVER  #指定mysql服务器主机 (不指定默认为localhost本机)

       -D DATA       #连接mysql的时候指定默认的数据库


eg1: mysql -D mydb -uroot -p -h 10.109.134.249 -D mydb

  -uroot 指定用户 -p:输入用户密码  -h:指定连接那台mysql服务器(ip地址)

  -D: 指定登录mysql默认的数据库(相当于在客户端内输入USE mydb;命令)


MySQL客户端:

    交互式模式:一步一步的手动输入执行

    批处理模式:执行mysql脚本,批处理执行


MySQL客户端工具:

    mysql

    mysqldump:常见的mysql备份工具

    mysqladmin:mysql管理工具 

      mysqladmin extended-status  显示状态变量

       mysqladmin status

                  --sleep N   显示频率

                  --count N   显示多个状态

       mysqladmin variables     显示服务器变量;

       mysqladmin flush-privileges  mysqld重读授权表,等同于reload;

       mysqladmin flush-status    重置大多数服务器状态变量;

       mysqladmin flush-logs    二进制和中继日志滚动;

       mysqladmin flush-hosts   刷新主机列表;

       mysqladmin refresh  刷新日志和主机列表,相当于同时执行flush-hosts和flush-logs;

       mysqladmin shutdown    关闭mysql服务器进程;

       mysqladmin version     服务器版本及当前状态信息;

       mysqladmin start-slave  启动复制,启动从服务器复制线程

       mysqladmin stop-slave  关闭复制,关闭从服务器复制线程。

    格式:mysqladmin [option] command [arg] [command [arg]] ...

      eg: mysqladmin -uroot -p passWord 'NEW_PASS' 


[root@lamp ~]# mysqladmin create hellodb;

[root@lamp ~]# mysql

.........

mysql> SHOW DATABASES;

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

| Database       |

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

| infORMation_schema |

| hellodb        |  #通过mysqladmin可以直接管理mysql

...

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

7 rows in set (0.00 sec)


       mysqlcheck:检查工具   

       mysqlimport:接口工具


2.9. MySQL非客户端工具:

        myisamchk

        myisampack


2.10. 交互式模式中的命令类别:

  客户端命令:

?      (\?) Synonym for `help'.  获取帮助

quit    (\q) Quit mysql.  退出mysql客户端 

clear   (\c) Clear the current input statement.

       \c:提前终止语句执行,但是必须在结束符前,否则该条指令依旧执行。

Go     (\g) Send command to mySQL Server.

        \g:无论语句结束符是什么,直接将此语句送至服务器端执行;

ego    (\G) Send command to mysql server, display result vertically.

        \G:无论语句结束符是什么,直接将此语句送至服务器端执行,而且结果以竖排显示;

system   (\!) Execute a system shell command.

         \! COMMAND:执行shell命令;

warnings  (\W) Show warnings after every statement.

         \W:语句执行结束后显示警告信息;

  服务器端命令:

必须使用语句结束符,默认结束符为分号;SHOW DATABASES; #查看数据库 

delimiter  (\d) Set statement delimiter.

         \d:定义语句结束符 (默认语句结束符为分号,可以设定为其他)

help KEYWORD: 获取关键字命令的帮助信息;

   eg: mysql>help SELECT;  #获取SELECT命令的相关帮助信息;

    

--------------------------------------------------------------------------

在mysql客户端中,名称补全命令: rehash

# vim /etc/my.cnf        #修改配置文档,使得命令补全永久有效;

[mysql]

#no-auto-rehash

auto-rehash = 1

# Remove the next comment character if you are not familiar with SQL

#safe-updates

mysql> rehash   #若不改配制,用命令rehash可tab键补全命令,但重新打开mysql将失效

mysql> u    #按tab键就有很多以U开头的命令出来

unlock tables      user.Execute_priv     user.Shutdown_priv

updates       user.File_priv      user.Super_priv

...

--------------------------------------------------------------------------



三、MySQL关系数据库对象:

   库、表、索引、视图、约束、存储过程、存储函数、触发器、游标、用户、权限、事务。


   数据库最基本的对象-->表:行(row),列(field,column)

   服务端命名:mysqld 

   Mysql常用命令不区分大小写,但是需保持一致(都大写或者都小写):


 

3.1. DDL:定义数据对象  (Data Definition Language)
   3.1.1关键字:CREATE(创建)、ALTER(修改)、DROP(删除)
  主要作用的范围:数据库,表,表的字段
    创建用户:
             
CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD';  #可以不指定密码
               USERNAME:用户名        HOST:主机   IDENTIFIED:指定密码   BY‘密码’
   删除用户:
               DROP USER 'USERNAME'@'HOST';  删除用户(需具体指定删除那个用户)
       
--------------------------------------------------------------------------
   为用户设定密码方法:(建议用1和3这两种)
*1、mysql>SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('PASSWORD')
   eg. SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456')  
#设定root@localhost用户名密码为123456

2、直接在linux下输入,不需要进入mysql客户端输入(易导致修改同user不同host的密码):
  # mysqladmin -uUSERNAME -hHOST -p password 'password'
  eg: [root@johntest ~]#mysqladmin -uroot -h20.109.13.9 -p password '123456'
 
*3、直接修改表中的内容:
  mysql>UPDATE user SET password=PASSWORD('password') WHERE USER='root'  AND Host='10.109.13.9';
  #AND与关系(需同时满足) OR或关系(两者满足一个即可) NOT非关系(取反)
--------------------------------------------------------------------------


3.1.2. HOST可以使用的格式:
       IP , HOSTNAME(主机名),NETWORK(网络地址),通配符(需用'通配符'引号)
      通配符包含:
                  _:匹配任意单个字符,172.16.0._
                 %:匹配任意字符
                 
3.1.3. 新建数据库:
       创建数据库:CREATE DATABASE IF NOT EXISTS db_name;   同名数据库不存在时创建
       创建表:  CREATE TABLE tb_name(col1,col2,...);    创建tb_name表  col表示字段
       查看库中的表: SHOW TABLES FROM db_name     查看db_name数据库中的表
       查看表的结构: DESC tb_name                 查看tb_name表的结构      
       删除表:DROP TABLE IF EXISTS tb_name    如果表存在删除tb_name表    
       
3.1.4. 修改表:ALTER TABLE tb_name
                  MODIFY:  修改某字段 (变更属性,权限)
                 CHANGE:   改变某字段 (变更字段名称)
                 ADD:       增加某字段
                 DROP :      删除某字段
  eg: ALTER TABLE students ADD course VARCHAR(100);      #新增空间长度为100course字段

 
3.2. DML:数据操纵语言 (Data Manipulation Language)
   关键字:   INSERT (插入)、  DELETE (删除)、 UPDATE (更新、修改)
  主要作用范围:针对表中字段的值进行操作
     插入数据:  col表示字段
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING',NUM,...),   ('STRING',NUM,...);   

     更新、修改数据: 
WHERE表示修改那个具体数据,并不是把column整个这个字段的值修改为value.
 UPDATE tb_name SET column=value WHERE ..... ;   
 
   eg: UPDATE students SET Course='Jiuyinzhenjing' WHERE Name='LHC';                                      #表示修改表students中Name值为LHC的Course字段的值变为‘Jiuyinzhenjing’
                     
3.3. DCL:数据库控制语言 (Data Control Language)
   关键字:  GRANT (允许、授权)、 REVOKE  (取消权限)
   ALL PRIVILEGES:  表示所有权限
 
3.3.1   GRANT:      给用户授权
   eg: GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'  
   #在数据库DB_NAME中的表TB_NAME中,用户USERNAME@'HOST'授予pri1,pri2等权限也可以设定密码IDENTIFIED BY 'PASSWORD',若此用户不存在则直接新建该用户并授权

 3.3.2  REVOKE :    取消用户权限
   eg: REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';
#在数据库DB_NAME中的表TB_NAME中,取消用户'USERNAME'@'HOST'的pri1,pri2等权限
      
   3.3.3  查看用户的授权: SHOW GRANTS FOR 'USERNAME'@'HOST';
   
  3.3.4  刷新用户权限列表: FLUSH PRIVILEGES;


 3.4. DQL:数据库查询语言 ( Data Query Language )
关键字:SELECT  (挑选,选择)
      SELECT 字段 FROM tb_name WHERE CONDITION;
      *:表示所有字段
      WHERE:没有条件表示显示所有行;
     eg: SELECT Name,Course FROM students WHERE Gender='M';
       #表示只选择表students中的Gender字段值为M的Name和Course字段的信息



---end---

您可能感兴趣的文档:

--结束END--

本文标题: Mysql数据库理论基础二

本文链接: https://www.lsjlt.com/news/35842.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql数据库理论基础二
     Mysql数据库理论基础二一、简介由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软件,且有大...
    99+
    2022-10-18
  • MYSQL——二、理论基础
    Mysql 一、什么是数据库二、数据库管理系统(DBMS)三、数据库与文件系统的区别四、数据库技术构成及发展史1、技术构成2、发展史 五、常见数据库1、关系型数据库2、ACID原则3、关系...
    99+
    2023-09-30
    mysql oracle 数据库 ansible web安全 服务器
  • Mysql数据库理论基础之十二 ---- 备份与还原
    一、简介由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软件,且有大量可用的共享MySQL软件4、MySQ...
    99+
    2022-10-18
  • 数据库系统基础理论
    写在前面关于数据库这个模块,我决定仔细将数据库的各个模块,像数据库基础概念、关系模型、关系型型数据库、关系数据库标准语言SQL、数据库的安全性、数据库的完整性以及数据库的设计、数据库编程。最后还会介绍一些关...
    99+
    2022-10-18
  • Mysql数据库理论基础一:MySQL编译安装
     Mysql数据库理论基础一:编译安装一、简介由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软...
    99+
    2022-10-18
  • Mysql数据库理论基础之四 --- 表和索引的管理
     一、简介由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软件,且有大量可用的共享MySQL软件...
    99+
    2022-10-18
  • 【MySQL】 MySQL数据库基础
    文章目录 🐱‍👓数据库的操作📌显示当前的数据库📌创建数据库🎈语法:🎈语法说明🎈示...
    99+
    2023-09-18
    数据库 mysql 基础操作 oracle
  • 【MySQL】数据库基础
    文章目录 1. 登陆选项的认识2. 什么是数据库3. 存储数据为什么不用文件?4. 见一见数据库创建数据库创建表 5. SQL语句分类6. 查看MysQL存储引擎 1. 登陆选项的认识...
    99+
    2023-10-18
    数据库 mysql
  • 一、MySQL数据库基础
    1.1、数据库模型  数据库由一批数据构成有序集合,这些数据被存在结构化的数据表中。数据表之间互相关联,反应客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。数据库的发展大致划分为...
    99+
    2022-10-18
  • DBA成长之路---mysql数据库服务基础(二)
    管理表记录 增加insert into 库.表 values(字段值列表);insert into 库.表(字段值列表) values(字段值列表);insert into 库.表 values(...
    99+
    2022-10-18
  • MySQL数据库基础(二)——MySQL字符集与乱码解析
    MySQL数据库基础(二)——MySQL字符集与乱码解析 一、字符集与编码 1、字符集简介 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Charac...
    99+
    2022-10-18
  • Oracle数据基础(二)
    一. SQL基础查询基本查询语句    1. FROM子句          SELECT * FROM T...
    99+
    2022-10-18
  • 【MySQL】数据库基础知识
    文章目录 一. 什么是数据库二. 为什么要有数据库三. 数据库分类四. 数据库的基本使用1. MySQL安装2. 检查MySQL后端服务器是否启动3. 连接MySQL服务器4. 服务器,数据库...
    99+
    2023-09-03
    数据库 mysql
  • MySQL数据库基础笔记
    数据库 数据库就是存储和管理数据的仓库,用户可以对数据库中的数据进行增删改查等操作。 数据库的分类 关系型数据库(Oracle、MySQL、SQLite等) 非关系型数据库(Redis、MongoDB等) MySQL简介 M...
    99+
    2019-07-29
    MySQL数据库基础笔记
  • 数据库(mysql)基础操作
     声明:    1)仅作为个人学习,如有冒犯,告知速删!    2)不想误导,如有错误,不吝指教! ------------------------------------分隔符--------------------------...
    99+
    2021-09-02
    数据库(mysql)基础操作
  • MySQL数据库基础知识
    day02 MySQL数据库基础知识一、基础知识概述:    基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如。才能够对数据库有更深入的...
    99+
    2022-10-18
  • Mysql数据库理论基础之五--SELECT单多表查询、子查询、别名
    一、简介由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软件,且有大量可用的共享MySQL软件4、MySQ...
    99+
    2022-10-18
  • java数据结构基础:绪论
    目录基本概念和术语数据数据元素数据项数据对象结构数据结构逻辑结构与物理结构逻辑结构物理结构抽象数据类型总结基本概念和术语 要想知道数据结构是什么,我们首先得去知道,数据和结构是什么;...
    99+
    2022-11-12
  • MYSQL数据库基础之Join操作原理
    Join使用的是Nested-Loop Join算法,Nested-Loop Join有三种 select * from t1 join t2 on t1.a = t2.a; -- a 100条数据, ...
    99+
    2022-05-27
    mysql的join用法 mysql join查询 mysql的join原理
  • YOLOv5车牌识别实战教程(二)理论基础
    目录2.1 目标检测概念2.2 YOLO系列发展历程2.3 YOLOv5网络结构2.4 YOLOv5损失函数2.5 数据集划分2.6 标注格式转换2.7 数据增强2.8 数据加载与预...
    99+
    2023-05-14
    YOLOv5 YOLOv5车牌识别 YOLOv5实战教程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作