MySQL笔记1、简介、数据库-数据表-数据的操作、列类型、字符集和校验集

it2022-07-04  148

一、数据库简介

1.概念

数据库中持久存储数据的介质。 计算机中的数据库,就是能够高效的组织与管理数据的介质(内存、硬盘)

2.数据库的发展史

网状数据库

是指以处理记录类型为节点的网络模型来存储与管理数据。

层次数据库

层次数据库是网状数据库之后的一种数据库,将数据组织成一种有序有向的树状结构。

关系数据库

就使用二维表模型来存储与管理数据库。

3.关系型数据库(纯理论)

关系型数据库就是使用关系模型来组织与管理数据的数据库。 关系模型就是二维表模型,而一个关系型数据库是由多个二维表及表之间的联系组成的数据库的集合。 关系:关系就是具有行列结构的表格,每个关系都有一个关系名,对应数据库中的数据表。 元组:元组可以理解为二维表中的一行,也就是数据表中的一条记录。 属性:属性可以理解为二维表中的一列,也就是数据表中的一个字段。 域:是限制属性的取值范围,也就是对列的一种约束。 关键字:能够唯一标识元组(记录),一组属性(字段)。

4.常见的关系型数据库

关系型数据库

大型数据库:Oracle(甲骨文)、DB2(IBM公司) 中型数据库:MySQL(甲骨文)、SQL Server(微软公司) 小型数据库:Access(微软公司)

非关系型数据库noSQL

MangoDB、Redis

5.SQL简介

Structure Query Language 结构化查询语言,主要用于对数据进行操作 DML   Date Manuplation Language     数据操作语言   update、insert、delete DQL    Date query Language                 数据查询语言   select DDL    Date Defination Language         数据库定义语言   create DCL    Date Control Language              数据控制语言   grant TCL    Transaction Control Language   事物控制语言


二、访问数据库


三、数据库操作

1.查看数据库

语法

show databases;

说明: 查看当前有多少个数据库存在 information_schema、mysql、performance_schema是系统数据库

2.创建数据库

语法: create database 数据库名 【库选项】; 说明: 用于创建数据库,数据库名不要与MySQL的关键字重复,如果真的需要使用关键字,必须使用反引号(``)将数据库名括起来。 【库选项】: charset 用于设置存储字符集 collate 用于设置校验集 当创建一个数据库后,会在硬盘中创建一个同名的文件夹。 MySQL语句规则: 每条语句后必须使用;结束。分号加回车的作用是将客户cmd窗口中输出的命令或数据传递远程的服务器。

3.查看数据库的创建语句

语法

show create database 数据库名;

说明: 用于查看数据库创建语句,可能获取库选项的相关信息。

4.删除数据库

语法:

drop database 数据库名;

4.选择数据库

语法:

use 数据库名;

说明: 由于表是存储在某个具体的库中,所以要对表操作,需先进入到指定的数据库中 拓展: \s    可以查看数据库信息,其中包含当前所在数据库的信息。


四、数据表的基本操作

1、设置客户端的通讯编码

语法:

set names 客户端的字符集

说明: 用于明确的告诉服务器,当前客户端与之通讯的编码是什么。

2、查看数据表

语法:

show tables;

说明: 查看当前数据库有多少个数据表存在。

3、创建数据表

语法:

create table 表名( 字段名 列类型 【列属性】, 字段名 列类型 【列属性】, ... )【表选项】

说明: 列类型就是所定义的列的取值限制(对应程序中的数据类型) 【表选项】    charset  设置存储字符集    collate   设置校验集    engine  设置引擎 提示: 当创建一个表后,仅仅是创创建了一个表的结构(表头)。

4、查看表结构

语法:

desc 表名;

5、查看表的创建语句

语法:

show create table 表名;

6、删除表

语法:

drop table 表名;

五、数据的基本操作

1、增加数据

语法:

insert into 表名【(字段列表)】 values(值列表);

说明: 字段列表中字段名不需要加引号。 值列表中的字符型的值必须加引号。 字段列表中字段的个数要与值列表中的个数一致,顺序一致。 字段列表可以省略,即表示全部字段插入数据。值列表中值的顺序要与表中字段的顺序一致

2、查看数据

(1)语法:

select *|字段列表 from 表名 【where子句】【group子句】【having子句】【order by子句】【limit子句】

说明: *               所有的字段 字段列表   部分字段

(2)where子句

根据where子句表达式,对记录进行筛选.既然是表达式,就会涉及到运算符 MySQL的运算符: >,<,>=,<=,<>,=,and,or,between m and n,in(值列表),is null,like =              用于判断是否相等,同时也是复制运算符 and,or              逻辑与,逻辑或 between m and n              字段的值介于m和n之间 in(值列表)              字段的值等于值列表中的某一个 is null,is not null              用于判断null值的运算符 like              用于模糊查询,必须与两个占位符匹配使用               占位符:%,_               %              代表当前位置极其后面0个或多个字符               _              代表当前位置的1个字符

3、修改数据

语法:

select 表名 set 字段1=,字段2=,...where子句】;

说明: 根据where子句匹配到的记录进行修改,若省略where则表示所有记录都匹配

4、删除数据

语法:

delete from 表名 【where子句】

说明: 将where子句匹配到的记录删除

总结: 对于结构的查看,使用的是show 对于数据的查看,使用的是select


六、列类型

1、数值型

1、整数型

​​​​

2、小数型

1、浮点型

语法:

float(m,d); double(m,d);

说明: m              表示总数位 d              表示小数位 整数位=m-d 说明: 浮点型会出现精度丢失的问题 对于float类型仅能精确到5到6位,多余的位会用0代替 对于double类型仅能精确到14到15位,多余的位会用0代替

2、定点型(decimal)

语法:

decimal(m,d);

说明: m              表示总数位,最大取值为65 d              表示小数位,最大取值为30 小数一般用decimal

2、字符型

1、定长

语法:

char(len);

说明: len表示字符的个数,最大是255

2、变长

语法:

varchar(max);

说明: max表示字符的个数,最大是65535(有很多限制条件)

表的存储字符集设置的列属性实际存储的数据实际所占的空间utf8char(10)510*3=30utf8varchar(30)55*3=15
3、文本类型

text也是一个系列,包含: tinytext、text、、mediumtext、longtext,唯一的不同就是能存储的字符的多少的不同

4、blob类型

blob也是一个系列,包含: tinyblob、blob、mediumblob、longblob,唯一的不同就是能存储的数据的多少的不同,blob可以存储二进制数据

5、枚举类型

用于规范数据,只允许用户从多个预定义的数据中选取一个 语法:

enum(值列表);

6、集合类型

用于规范数据,允许用户从多个预定义的数据中选取多个 语法:

set(值列表);

3、日期时间类型

year(2或4)年份2表示2位年份,4表示4位年份date日期格式::2019-8-3time时间格式:15:23:30datetime日期时间型格式:2019-8-3 15:23:30timestamp时间戳主要用于记录数据表中最后一次被修改的时间

七、字符集与校对集

1、字符集

查看MySQL所支持的字符集

show charset

2、校验集

校验集就是某一种字符集中的比较规则。也就是是否区分大小写。

查看校验集

show collation

提示: 虽然有很多校验集,但通过观察发现主要以三种方式结尾

_csCaseSensitive大小写敏感(区分大小写)_isCaseInsensitive大小写不敏感(不区分大小写)—bin二进制区分大小写

校验集主要体现在比较上。


最新回复(0)