Mysql入门

目录

一、数据库

二、关系型数据库

 三、非关系型数据库

四、MySQL数据库

4.1 SQL语言

五、MySQL的三种连接方式

六、常用的SQL

 七、数据类型

 7.1 日期和时间类型

7.2 字符串类型

八、约束


一、数据库

数据库是存放数据的仓库

         它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界[IT时代---DT时代],充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。

        在数据库的发展历史上,数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展,数据库技术在各个方面的快速的发展。现在只剩下关系型数据库和非关系型数据库(NoSQL)

二、关系型数据库

        关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。

        常见的关系型数据库: MySQL  Oracle  SQLServer

 三、非关系型数据库

        非关系型数据库:NoSQL最常见的解释是“non-relational”, “Not Only SQL”也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。NoSQL是一项全新的数据库革命性运动,其拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

        NoSQL的出现并不是为了取代关系型数据库 而是作为关系型数据库的有效补充。

分类Examples举例典型应用场景数据模型优点缺点
键值(key-value)Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。Key 指向 Value 的键值对,通常用hash table来实现查找速度快数据无结构化,通常只被当作字符串或者二进制数据
列存储数据库Cassandra, HBase, Riak分布式的文件系统以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限
文档型数据库CouchDB, MongoDbWeb应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)Key-Value对应的键值对,Value为结构化数据数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构查询性能不高,而且缺乏统一的查询语法。
图形(Graph)数据库Neo4J, InfoGrid, Infinite Graph社交网络,推荐系统等。专注于构建关系图谱图结构利用图结构相关算法。比如最短路径寻址,N度关系查找等很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

四、MySQL数据库

                MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
                MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

4.1 SQL语言

        结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

        一、数据查询语言(DQL:Data Query Language): 其语句,也成为“数据检索语句”,用以从表中获得数据,确定数据怎么样在应用程序给出。保留字SELECT是DQL(也是SQL)用得最多的动词,其他DQL常用的保留字有where,order by,group byhaving.这些DQL保留字常与其他类型的SQL语句一起使用.

        二、数据操作语言(DML:Data Mainpulatoin Language):其语句包括动词 insertupdatedelete。它们分别用于添加、修改和删除。

        三、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得一更新。包括commit(提交)命令、savepoint(保存点)命令、rollback(回滚)命令。

        四、数据库语言(DCL):它的语句通过grant或者revoke实现权限控制,确定单个用户和用户组对数据库对象的访问。某些rdbms可用grant或者revoke控制对表单个列的访问。

        五、数据定义语言(DDL):其他语句包括动词 create,alterdrop。在数据库中创建新表或者修改、删除(create tabledrop table);为表加入索引等;

        六、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTOUPDATE WHERE CURRENT 用于对一个或多个表单独进行操作

五、MySQL的三种连接方式

1、 MySQL自带的黑窗口
          开始--MySQL--MySQL server5.7---cmd  输入密码即可

2、 MySQL的命令
          找到MySQL安装目录/bin文件夹
          C:\Program Files\MySQL\MySQL Server 5.7\bin  在地址栏cmd
           mysql -uroot  -p123456  命令链接MySQL

 

3、 Navicat图形工具  sqlyoung 

连接数据库

六、常用的SQL

-- 查询所有的数据库
show databases
-- 新建数据库
create database mytest
-- 使用数据库
use mytest

-- 创建表
create table map(
	id int primary key auto_increment     comment'主键',
	name varchar(20)					  comment'姓名',
	age int 							  comment'年龄',
	address varchar(20)					  comment'地址'
)
-- 查看表
show tables
-- 查看表结构
desc map


-- 查看表中的数据
select * from map

-- 添加
insert into map (id,name,age,address) values(1,'八嘎',18,'日本')

insert into map(age,address) values(18,'日本')

insert into map values(null,'鬼子',18,'大阪')

-- 修改表中的数据
update map set name='八嘎牙路',age = 81 where id=1

-- 删除表中的数据
delete from map where id=2

-- 删除表中所有数据
delete from map

-- 删除表
drop table map

-- 删除数据库
drop database mytest

 七、数据类型

        数值类型

        MySQL支持所有标准SQL数值数据类型。

        这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

        关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

        BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。

        作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型大小范围(有符号)范围(无符号)用途
TINYINT1 byte(-128,127)(0,255)小整数值
SMALLINT2 bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度 浮点数值
DOUBLE8 bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度 浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

                如果我们要在数据库中存储 钱 等数据 此时不能使用 float double 因为这些类型会丢失精度 要使用DECIMAL  

 7.1 日期和时间类型

        表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

        每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

        TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型大小 ( bytes)范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳

7.2 字符串类型

        字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

                注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。  

        CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

        BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

        BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

        问题: MySQL能不能存储音频 视频图片文件 ?

        可以的 将音视频图片 转换成流 存储到数据库 blob 但是我们数据库 不存文件

        文件一般存到磁盘 然后数据库中存储文件路径

        有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

八、约束

约束的分类:
    非空约束:保证列中的所有数据不能有null值            NOT NULL
    唯一约束:保证列中的所有数据各不相同                UNIQUE
    主键约束:逐渐是一行数据的唯一标识,要求非空且唯一   PRIMARY KEY(1 非空且唯一 2 主键索引功能)
    检查约束:保证列中的值满足某一条件           CHECK (MySQL不支持检查约束)
    默认约束:保存数据时,未指定值则采取默认值     DEFAULT
    外键约束:外键用于让两表建立链接,保证数据一致性、完整性 FOREIGN KEY
(主键自增长时,不添加或者添加NULL上面数据递增)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值