mysql数据库介绍及应用
一、数据库定义
数据库系统
DataBseSystem=数据库管理系统(DBMS,DateBaseManangementSystem)+数据库(DataBase)+管理员
DBS=DBMS+DB
定义:对大量信息进行管理的高效解决方案,按照数据结构来组织、存储和管理数据的库
关系型数据库系统(对应的是非关系型数据库,nosql,如redis)
建立在关系模型上的数据库系统,
关系模型:
当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存到数据库中时,应该如何处理该实体结构
1、数据结构可以规定,同类数据、结构一致,就是一个二维的表格,
2、数据之间的关系可以设置,实体之间的联系
sql:数据库管理系统,用来管理数据的语言,结构化查询语言(sql,StructuredQueryLanguage)
mysql是c/s模型,客户端/服务器, client/sever (客户端,服务器端,数据库)
查看字符集 show variables like '%char%';
show variables(显示字符集)
二、sql数据库的类型
可使用unsigned控制是否有正负
可以使用zerofill来进行前导填充
也存在布尔bool类型,但是就是tinyint(1)的别名
tinyint;
1个字节
-128-127
0-255
在定义时,不写unsigned就是有符号
定义显示宽度:通过规定数据的显示宽度,达到统一显示的目的
类型(M)M表示显示的最小宽度是多少,
需要使用前导零的填充达到目的,称之为zerofill
例:alter table xxx add c tinyint(2) zerofill; (显示宽度是2)
注意:1、不影响数的范围 2、宽度大的不影响,不会截取
类型 字节 最小值(有符号/无符号) 最大值(有符号/无符号)
tinyint 1 -128/0 127/255
smallint 2 -32768/0 32767/65535
mediumint 3 -8388608/0 8388607/16777215
int/intege 4 -2147483648/0 2147483647/4294967295
bigint 8
float(单精度) 4 (默认精度位数为6位左右)
double(双精度) 8 (默认为16位左右)
支持,控制数值的范围 type(M,D) M表示所以的数值位数(不包括小数点和符号)D表示允许的小数位数
a float(5,2)
999.99 -999.99
b double(8,3)
-99999.999 99999.999
浮点数支持科学计数法 1.1234E3 相当于 1.1234*1000
定点数: decimal(M,D)M总位数 D小位数 M默认为10,默认为0
日期时间
年月日时分秒 时间戳 年月日 时分秒 年
Datatime Timestamp Data Time Year
Time类型:表示意义:1、一天中的时间 2、表示时间间隔
字符串类型
类型 最大长度
char 255
varchar 65535(整条记录长度+保存是否为null(占一个字节)+保持记录的长度信息(占2个字节))
text 不用指定长度,和varchar差不多,也不用保存长度信息,可以完全保持信息
enum(枚举型) 例 gender enum('female','male');
set('basket','football','pingpang');
insert into xx value('basket,football');