MySQL 数据库 初识

---------------------------------------------确定目标,认准目标,前进,克服困难,前进,克服困难,前进克服困难,前进.

# # ------------------------------------------------------------------------------------------------------------#


为什么要使用数据库:海量存储高速查询
1.登录与服务:
登录: mysql -uroot -proot (登录本机 mysql 服务器 )
mysql -uroot -proot -h 192.168.10.1 ( 登录 ip 为 192.168.10.1 的 mysql 服务器 )
退出: exit \q quit Ctrl+c
服务:
net stop mysql 停止 mysql 服务
net start mysql 启动 mysql 服务
net restart mysql 重启 mysql 服务
C:> 注意最后没有封号。
2:mysql编码:
set names gbk|utf8 :临时编码设置,当再次进入 mysql 中的时候将再次转变为默认编码:
status; \s :查看编码
show variables like 'charac%' :查看编码
Server characterset: utf8 服务器编码
Db characterset: utf8 当前数据库编码
Client characterset: utf8 客户编码
Conn. characterset: utf8 客户连接编码
character_set_client | utf8 客户编码
character_set_connection | utf8 连接编码
character_set_database | utf8 当前数据库编码
character_set_results | utf8 结果集
character_set_server | utf8 服务器
character_set_system | utf8 系统
3.database 操作:
1 查看和切换:
显示当前所有数据为名称: show databases; show schemas();
查看当前使用的数据库: select database();
切换或进入当前数据库: use db_name;
2 创建: create database|schema [if not exists] db_name [default] character set [=] ' 字符集 ';
查看: show create database db_name;
删除: drop database db_name
4.data 类型
数值
tinyint 1 个字节 有符号: -128 到 127 ,无符号: 0-255
smallint 2 个字节 3.27w 正负
mediumint 3 个字节 3000w
int 4 个字节 21 亿正负
int 和 int(5) 都是 4 个字节 21 亿正负,基本无区别。
bigint 8 个字节
总结, int(M) zerofill ,加上 zerofill 后 M 才表现出有点点效果,比如 int(3) zerofill, 你插入到数据库里的
是 10,则实际插入为 010,也就是在前面补充加了一个 0.如果 int(3)和 int(10) 不加 zerofill, 则它们没有什 么
区别.M不是用来限制 int 个数的. int(M) 的最大值和最小值与 undesigned 有关,如下图:
mysql> create table t (t int(3) zerofill);
mysql> insert into t set t = 10;
mysql> select * from t;
+——+
| t |
+——+
| 010 |
+——+
mysql> create table t (t int zerofill);
mysql> insert into t set t = 10;
mysql> select * from t;
+————+
| t |
+————+
| 0000000010 |
+————+
mysql> create table t (t int);
mysql> insert into t set t = 10;
mysql> select * from t;
+——+
| t |
+——+
| 10 |
+——+
其实当我们在选择使用 int 的类型的时候,不论是 int(3)还是 int(11) ,它在数据库里面存储的都是 4 个
字节的长度,在使用 int(3)的时候如果你输入的是 10,会默认给你存储位 010,也就是说这个 3 代表的
是默认的一个长度,当你不足 3 位时,会帮你补全,当你超过 3 位时,就没有任何的影响。他们之间
除了在存储的时候稍微有点区别外,在我们使用的时候是没有任何区别的。 int(10) 也可以代表
2147483647 这个 值 int(11)也可以代表。要查看出不同效果记得在创建类型的时候加 zerofill 这个值,
表示用 0 填充,否则看不出效果的。我 们通常在创建数据库的时候都不会加入这个选项,所以可以
说他们之间是没有区别的。

[结构化数据化]

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,
是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。 结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,
也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。 1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),
1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用.


[常用的关系型数据库]:
 2.1.1  oracle数据库

        Oracle前身叫SDL、由Larry Ellison和两个变成任意在1977创办,他们开发了主机的拳头产品,在市场上大量销售。Oracle公司是最早开发关系型数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率数一数二 。
        Oracle公司是目前全球最大的数据库软件公司,也是近年业务增长极为迅速的软件提供与服务商 
        主要应用范围:传统大企业、大公司、政府、金融、证券等。 
        版本升级:oracle8i,oracle9i,oracle10g,oracle11g,oracle12c

      2.1.2  MySQL

        MySQL被广泛的应用在Internet上的大中小型网站中。由于体积小、速度快、总体拥有成本低,开放源代码

      2.1.3  MariaDB数据库

        MAriaDB数据库管理系统是MySQL数据库的一个分支,主要由开元社区维护,采用GPL授权许可。开发这个MariaDB的原因之一是:甲骨文公司收购了MySQL后,有MySQL闭源的潜在风险,因此MySQL开元社区采用分支的方式来避开这个风险。 

        MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM的存储引擎,它使用了Percona的XtraDB(InnoDB的变体)这个版本还包括了PrimeBase XT (PBXT)和Federated X存储引擎。

      2.1.4 SQL Server数据库

            Microsoft SQL Server是微软公司开发的大型关系数据库系统。SQL Server的功能比较全面,效率高,可以作为中型企业或单位的数据库平台。SQL Server可以与Winodws操作系统紧密集成,不论是应用程序开发速度还是系统事务处理运行速度,都得到较大的提升,对于在Windows平台上开发的各种企业级信息管理系统来说,不论是C/S(客户机/服务器)架构还是B/S(浏览器/服务器)架构。SQL Server都是一个很好的选择。SQL Server的缺点是只能在Windows系统下运行

      2.1.5  Access数据库

        Access是入门级小型桌面数据库,性能安全性都很一般,可供个人管理或小型企业只用 
        Access不是数据库语言,只是一个数据库程序,目前最新版本为Office 2007,其特点主要如下: 
        (1)完善地管理各种数据库对象,具有强大的数据组织,用户管理、安全检查等功能 
        (2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户管理系统具有传统的XSASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Ckient/Server)结构和响应的数据库安全机制,Access具备了许多先进的大型数据管理管理系统所具备的特征。 
        (3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报表 
        (4)作为Office套件的一部分,可以与Office集成,实现无缝连接 
        (5)能够利用Web检索和发布数据,实现与Internet的连接,Access主要适用于中小企业应用系统,或作为客户机/服务器系统中的客户端数据库。

      2.1.6  其他不常用关系型数据库

        DB2,PostgreSQL,Informix,Sybase等。这些关系型数据库逐步的淡化了普通运维的实现,特别是互联网公司几乎见不到
复制代码

   2.2 非关系型数据库  

    非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL” 
    指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。 

    随着互联网Web2.0网站的星期,传统的关系型数据库在应付web2,0网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。 

    例如:传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突破,于是出现了大批针对特定场景,以高性能和使用便利为目的功能特异化的数据库产品。NOSQL(非关系型)类的数据就是在这样的情景下诞生并得到了非常迅速的发展 

    高性能、高并发、对数据一致性要求不高 
    开源的NoSQL体系,如Facebook的Cassandra,Apache的HBase,也得到了广泛认同,Redis,mongb也逐渐越来越受到各类大中小型公司的欢迎和追捧 

    NOSQL非关系型数据库小结: 
    1、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充 
    2、NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能 
    3、NOSQL典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档的数据库) 

    

    非关系型数据库又分为以下4种

(1)键值(Key-Value)存储数据库
        
        键值数据库就类似传统语言中使用哈希表,可以通过key来添加、查询或删除数据,因为使用key主键访问,所以会获得很高的性能及扩展性 
        键值(Key-Value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发 
        k1—>数据 
        k2—>数据 
        典型产品:Memcached、Redis、MemcacheDB、BerkeleyDB 

(2)列存储(Column-oriedted)数据库 ======>了解即可,一般公司用不到 
         这部分数据库通常用来分布式存储的海量数据,键仍然存在,但是他们的特点是指向了多个列。 
        典型产品:Cassandra,HBase 

(3)面向文档(Document-Oriented)数据库
        面向文档数据库会将以文档的形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关系对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或者JSONB等多种形式存储 
        典型产品:MorgoDB、CouchDB 

(4)图形(Graph)数据库
 

猜你喜欢

转载自www.cnblogs.com/dealdwong2018/p/10073771.html