• 太厉害了MySQL总结的太全面了


    前言

    请添加图片描述

    &#x1F680 一、MySql数据库

    请添加图片描述

    上学期间每次只要上数据库的课程,困得不行,到后来才发现数据库的重要性。

    对于现在的我,让我学习数据库,热情和兴趣逐渐强烈,于是就有了这篇文章。

    &#x1F344 1.介绍

    MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储、更新和存取信息更加容易。MySQL是一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和许多不同的客户程序以及库组成的。MySQL的主要目标是快速、健壮和易用。最初是因为MySQL的创始人需要这样的一个SQL服务器,它能处理与任何不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL因此就开发出来了。它提供C,C++,Java(JDBC),Perl,Python,PHP and TCL的API接口;多平台支持,包括Solaris,SunOS,BSDI,SGI IRIX,AIX,DECUNIX,Linux,FreeBSD,SCO OpenServer,NetBSD,OpenBSD,HPUX,Win9x andNT;多样的数据类型,包括有/无符号1,2,3,4,8字节integers,FLOAT,DOUBLE,CHAR,VARCHAR,TEXT,BLOB,DATE,DATETIME,YEAR,SET,ENUM;非常灵活和安全的权限系统,密码加密;为Windows提供ODBC接口,可通过Access与之相联,另有第三方开发商提供多样的ODBC驱动程序;在MySQL 3.23中使用新MyISAM最大的表大小可达8百万 TB(2^63个字节);多种语言支持,但不支持中文。然而,为了实现快速、健壮和易用的目的,MySQL必须牺牲一部分灵活而强大的功能,如子查询、存储过程与触发器、外键、事物处理等。因而,MySQL在某些应用中缺乏灵活性,但这也使它对数据的处理速度较其它数据库服务器至少快2~3倍。 > MySQL自身不支持Windows的图形界面,因此,所有的数据库操作及管理功能都只能在MS-DOS方式下完成。首先,必须登陆MySQL服务器,即在提示符/MySQL/BIN>下输入MYSQL > –H host –U user –Ppassword,提示符改为mysql>时表示登陆成功。然后,选择所操作的数据库,即mysql> USEdatabasename。接着就可以用SQL语句进行查询了。如果需要退出数据库服务器,可执行QUIT命令,这样就成功退出服务器了。当然,由于MySQL的知名度日益增加,许多第三方软件公司推出了MySQL在Windows环境中的具有图形界面的支持软件,如EMS公司的EMS MYSQL MANAGER就提供了Windows形式的MySQL数据库操作功能。 转帖于 Xue163.com_MySQL

    &#x1F345 2.优点

    MySQL的优点:

    1. 它使用的核心线程是完全多线程,支持多处理器。 2.有多种列类型:1、2、3、4、和8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM类型。 3. 它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。 4. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查询中混来自不同数据库的表。 5. 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。 6. 所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值。 7. MySQL可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCL API。

    &#x1F346 3.缺点

    MySQL的缺点:

    1、 MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。 2、 MySQL的另一个主要的缺陷之一是缺乏标准的RI(Referential Integrity-RI)机制;Rl限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。 3、 MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。 4、 MySQL不支持热备份。 5、 MySQL的价格随平台和安装方式变化。Linux的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。Unix或Linux自行安装 免费 、Unix或Linux 第三方安装需要付费。

    &#x1F33D 4.数据库对比

    常见数据库有<关系数据库系统>: ORACLE(甲骨文)、DB2、SQL
    Server、Sybase、Informix、MySQL、VF、Access等。

    &#x1F449 (1)、性能

    SQL Server 老版本多用户时性能不佳,新版本的性能有了明显的改善,各项处理能力都有了明显的提高。保持了多项TPC-C纪录。具体参见http://www.tpc.org/
    Oracle 性能最高,保持Windows NT下的TPC-D和TPC-C的世界记录。
    SYBASE 性能较高,支持Sun、IBM、HP、Compaq和Veritas的集群设备的特性,实现高可用性。性能接近于SQL Server,但在UNIX平台下的并发性要优与 SQL Server。适应于安全性要求极高的系统。
    DB2 适用于数据仓库和在线事物处理,性能较高。客户端支持及应用模式。
    INFORMIX 性能较高,支持集群,实现高可用性。适应于安全性要求极高的系统,尤其是银行, 证券系统的应用。

    &#x1F463 (2)、可伸缩性,并行性

    SQL Server 以前版本SQL Server并行实施和共存模型并不成熟。很难处理大量的用户数和数据卷。伸缩性有限。新版本性能有了较大的改善,在Microsoft Advanced Servers上有突出的表现,超过了他的主要竞争对手。
    Oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要, 用户可以把数据库移到UNIX中,具有很好的伸缩性。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
    SYBASE 新版本具有较好的并行性,速度快,对巨量数据无明显影响,但是技术实现复杂,需要程序支持,伸缩性有限。虽然有DB SWITCH来支持其并行服务器,但DB SWITCH在技术层面还未成熟,且只支持版本12.5以上的ASE SERVER。DB SWITCH技术需要一台服务器充当SWITCH,从而在硬件上带来一些麻烦。
    DB2 DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点或数据库节点,伸缩性有限。
    INFORMIX 采用单进程多线程的技术,具有较好的并行性。但是仅运行于UNIX平台,伸缩性有限。

    &#x1F46A (3)、安全性

    SQL server Microsoft Advanced Server 获得最高安全认证,服务器平台的稳定性是数据库的稳定性的基础,新版本的SQL的安全性有了极大的提高。
    Oracle Server 获得最高认证级别的ISO标准认证。
    SYBASE 通过Sun公司J2EE认证测试,获得最高认证级别的ISO标准认证。
    DB2 获得最高认证级别的ISO标准认证。
    INFORMIX 获得最高认证级别的ISO标准认证。

    &#x1F4A2 (4)、操作

    SQL Server 操作简单,采用图形界面。管理也很方便,而且编程接口特别友好(它的SQL-DMO让编程变得非常方便!) ,从易维护性和价格上SQL Server明显占有优势。
    Oracle 较复杂, 同时提供GUI和命令行,在Windows NT和Unix, Linux 下操作相同。对数据库管理人员要求较高。
    SYBASE 复杂,使用命令行操作,对数据库管理人员要求较高。同时提供GUI和命令行。但GUI较差,常常无法及时状态,建议使用命令行。
    DB2 操作简单,同时提供GUI和命令行,在Windows NT和Unix下操作相同。
    INFORMIX 使用和管理复杂,命令行操作。对数据库管理人员要求较高。

    &#x1F554 (5)、使用风险

    SQL Server 完全重写的代码,性能和兼容性有了较大的提高,与Oracle,DB2的性能差距明显减小。该产品的出台经历了长期的测试,为产品的安全和稳定进行了全面的检测,安全稳定性有了明显的提高。经历了长期的测试,不断延迟,许多功能需要时间来证明,并不十分兼容。
    Oracle 长时间的开发经验,完全向下兼容,得到广泛的应用,完全没有风险。可以安全的进行数据库的升级,在企业、政府中得到广泛的应用。并且如果在WINNT上无法满足数据的要求,可以安全的把数据转移到UNIX上来。
    SYBASE 向下兼容, 但是ct-library 程序不益移植。开发时间较长,升级较复杂,稳定性较好,数据安全有保障。风险小。在安全要求极高的银行, 证券行业中得到了广泛的应用。
    DB2 在巨型企业得到广泛的应用,向下兼容性好。风险小。
    INFORMIX 开发时间较长,升级较复杂,稳定性较好,数据安全有保障。风险小。在安全要求极高的银行,证券行业中得到了广泛的应用。

    &#x1F4A5 (6)、开放性

    SQL Server 只能在Windows 上运行,C/S结构,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。只支持Windows客户,可以用ADO,DAO,OLEDB,ODBC连接。Windows9X系列产品是偏重于桌面应用,NT server适合各种大中小型型企业。操作系统的系统的稳定对数据库是十分重要的。Windows平台的可靠性,安全性经过了最高级别的C2认证的。在处理大数据量的关键业务时提供了较好的性能。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。
    Oracle 能在所有主流平台上运行(包括 Windows)。完全支持所有的工业标准。采用完全开放策略。多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接。可以使客户选择最适合的解决方案。对开发商全力支持。
    SYBASE 能在所有主流平台上运行,C/S结构,可以用ODBC、Jconnect、Ct-library等网络客户连接。在银行业中得到了广泛的应用。但由于早期Sybase与OS集成度不高,因此VERSION11.9.2以下版本需要较多OS和DB级补丁。在多平台的混合环境中,会有一定问题。
    DB2 能在所有主流平台上运行(包括windows)。有较好的开放性,最适于海量数据。跨平台,多层结构,支持ODBC,JDBC等客户。在大型的国际企业中得到最为广泛的应用,在全球的500家最大的企业中,几乎85%以上采用DB2数据库服务器,而国内到97年约占5%。
    IINFORMIX 仅运行在UNIX平台,包括SUNOS、HPUX、 ALFAOSF/1。在银行中得到广泛的应用。

    &#x1F483 (7)、易维护性和价格

    SQL Server 从易维护性和价格上SQL Server明显占有优势。基于Microsoft的一贯风格,SQL Server的图形管理界面带来了明显的易用性,微软的数据库管理员培训进行的比较充分,可以轻松的找到很好的数据库管理员,数据库管理费用比较低,SQL Server的价格也是很低的,但是在License的购买上会抬高价格。总体来说SQL Server的价格在商用数据库中是最低的。
    Oracle 从易维护性和价格体来说Oracle的价格是比较高的,管理比较复杂,由于Oracle的应用很广泛,经验丰富的Oracle数据库管理员可以比较容易的找到,从而实现Oracle的良好管理。因此Oracle的性能价格比在商用数据库中是最好的。
    SYBASE SYBASE的价格是比较低的,但是SYBASE的在企业和政府中的应用较少,很难找到经验丰富的管理员,运行管理费用较高。
    DB2 价格高, 管理员少,在中国的应用较少,运行管理费用都很高,适用于大型企业的数据仓库应用。
    INFORMIX 价格在这些系统中居于中间,与SYBASE一样,在企业和政府中应用较少,仅在银行中得到了广泛的应用。经验丰富的管理人员较少,运行管理费用高。

    资料来源点击这里

    &#x1F680 二、命令

    &#x1F344 1.命令大全

    &#x1F449(1).常用操作数据库命令

    命令注释
    show databases查询所有库
    show tables查看所有表
    create database name新建一个名交name的库
    use name使用这个库
    drop database删除数据库
    create table 表名(1,2)新建一个表添加字段
    dese 表名查看所有表的字段
    show create database 库名新建库并查看
    show create table 表名新建表并查看

    &#x1F463(2).修改表的命令

    命令注释
    alter table 表名 modify 字段 数据类型修改字段的数据类型
    alter table 表名 add 字段添加新的字段
    alter table 表名 add 字段1 after 字段2添加字段1的位置在字段2后
    alter table 表名 drop 字段删除指定表下的字段
    alter table 表名 change 字段1 字段2将字段2的名改为字段1的名

    &#x1F46A(3).对数据的操作

    &#x1F401 <1>增加数据
    insert into 表名 values(1,2);  //添加数据1和数据2
    insert into 表名(字段1,字段2) values(1,2);//添加数据1和数据2到字段1和字段2
    insert into 表名(字段1,字段2) values(1,2),(3,4);//多数据添加
    
    • 1
    • 2
    • 3
    &#x1F403 <2>删除数据
    delete from 表名 where 条件;
    
    • 1
    &#x1F405 <3>更新数据
    update 表名 set 字段1=1,字段2=2 where 条件
    
    • 1
    &#x1F407 <4>查询数据
    select* feom 表名; //查询表中所有数据库
    select 字段 from 表名; //查询该表下的字段
    select 字段 from 表名 where 条件; //根据指定的条件查询字段(非常常用)
    select 字段 from 表名 id between 1 and 5;//查找字段区间为1-5的数据
    
    • 1
    • 2
    • 3
    • 4
    &#x1F409 <5>对数据进行排序
    select 字段 from 表名 order by 字段 (desc//降序|asc//升序)
    举个例子:
    select* from studentname order by  name,studentid desc, age asc;//很简单是将学生表的学生号进行降序排列,年龄进行升序排列
    
    • 1
    • 2
    • 3
    &#x1F40B <6>数据进行分组
    分组很简单就是group by 的使用学会就可以了
    这里主要讲一点:
    select * from name limit(偏移量,数量); 
    其中    偏移量=(n-1)✖数量
    
    • 1
    • 2
    • 3
    • 4

    &#x1F4A2(4).多表联合查询

    联合这里就需要讲到 and or 的用法,字面意思 and就是和 or就是或

    and:
    select uname,id,passwd from root  and select whoani from admin;//这个肯定同时输出
    
    or:
    select uname,id,passwd from root  or select whoani from admin;//选择起哄一个输出
    
    • 1
    • 2
    • 3
    • 4
    • 5

    &#x1F554(5).权限语句

    控制语句
    创建用户create use
    授权用户grant all on 表名
    刷新用户权限flush privilegs
    取消权限revoke all on 表名
    删除用户drop user

    &#x1F345 2.常用的函数

    函数含义
    version()数据库版本
    database()当前数据库名
    user()用户名
    sysem_user()系统用户名
    current_user()当前用户名
    @@datadir数据库路径
    @@version_compile_os操作系统版本
    length()返回字符串长度
    substr()截取字符串
    mid()left()从左侧开始取字符
    cancat()没有分隔符链接字符串
    concat_ws()含有分隔符连接字符串
    group_concat()连接一个组的字符串
    ord()返回ASCII编码样式
    ascil()转换为ASCII样式
    md5()返回MD5(不可逆的加密方式)
    floor(x)返回不大于x的最大整数
    round(x)返回参数接近x的整数
    rand()返回0-1之间的随机浮点数
    sleep()睡眠时间为指定的秒数
    if(true,t,f)if判断语句

    &#x1F680 三、演示

    &#x1F344 1.基础

    这里我使用的是nivacat工具用的是mysql数据库,下面的演示都在这个环境中进行演示

    &#x1F449(1)建立数据库

    &#x1F401 <1>打开nivacat

    在这里插入图片描述#### &#x1F403 <2>连接数据库

    注意一点,使用这个软件之前需要配置Mysql数据库和任意中间件,我这用的是小皮面板搭建的环境

    在这里插入图片描述

    &#x1F405 <3>建库

    建立一个MySQL数据库

    在这里插入图片描述

    配置需要的东西,这里密码一般都是root或者123456,不知道的可以查看配置文件

    在这里插入图片描述

    建立好之后,点击这几变成绿色说明就成功搭建好数据库。

    在这里插入图片描述

    &#x1F463(2)查询信息

    &#x1F401 <1>查询所有库名

    show databases
    • 1

    在这里插入图片描述

    &#x1F403 <2>查询表

    show tables
    • 1

    在这里插入图片描述

    &#x1F405 <3>查询字段

    select id,pw from member
    
    • 1

    在这里插入图片描述

    &#x1F46A(3)增加数据

    insert into member(username,pw,sex,phonenum,address,email) values('admin','111','man','123','123','123@123.com');
    
    • 1

    在这里插入图片描述

    &#x1F401 <1>添加表

    在这里插入图片描述

    &#x1F403 <2>添加表

    在这里插入图片描述

    &#x1F4A2(4)删除数据

    &#x1F401 <1>删除库

    先看下原来的表里面是存在一个test数据库的
    在这里插入图片描述执行删除命令

    drop database test;
    
    • 1

    我们可以看到test被删掉了

    在这里插入图片描述

    &#x1F403 <2>删除表

    drop table jianyu;
    
    • 1

    在这里插入图片描述

    &#x1F405 <3>删除字段

    delete from jianyu where shijian=2022;
    
    • 1

    在这里插入图片描述

    delete from member where id=25;
    
    • 1

    在这里插入图片描述

    &#x1F554(5)更改数据

    &#x1F403 <1>更改表

    原先表为 massage

    在这里插入图片描述

    输入alter table message rename mg; //修改表名

    在这里插入图片描述

    &#x1F405 <2>更改字段

    原本name=’叮当‘ 修改后name=‘张三’

    update message set name='张三' where age=18;
    
    • 1

    在这里插入图片描述

    &#x1F680 四、小结

    这里抱怨一下下:终于总结完了,1w2q字,小企鹅太难了。
    在这里插入图片描述

    个人感觉自从慢慢结束了数据库,对网站数据传输也开始慢慢的了解了,学习不仅要有深度还需要有广度,各位技术友们,咱们一起加油啊。

    各位小伙伴们咱们高出见

    在这里插入图片描述

  • 相关阅读:
    RPA是什么意思?RPA机器人很厉害吗?
    【Hadoop】YARN容量调度器详解
    JDBC入门
    学习计划
    股神(dp或贪心)
    libcef.dll文件丢失怎么办?丢失对电脑有什么影响?
    【Qt】Qt中关联容器QMap,QMultiMap,QHash,QMultiHash 的理解
    1397. 找到所有好字符串(kmp理解 + 数位dp)(好题!!!)
    [附源码]计算机毕业设计体育器材及场地管理系统Springboot程序
    Pycharm的安装并且连接已有的Python环境实现自由编译(附中文配置)|并通过Pycharm实现增加网站访问
  • 原文地址:https://blog.csdn.net/weixin_50481708/article/details/125010537