目录
第一轮复习 时间:
所学知识来自《Java学习指南系列》-邵发
一、创建数据库
CREATE DATABASE `my_test`;
数据库:
数据库DataBase,就是存储数据的仓库
MySQL自带了四个数据库
其中,test是测试用的,其他三个是系统库
注意:
1、在MySQL里面,可以创建多个数据库
2、数据库的命名规则:
-用有意义的名字
-多个单词用下划线连接,如company_project
-全部小写
3、不要操作MySQL自带的系统库
二、创建表
在SQLyog进行如下操作
varchar-字符串-必须指定其长度/显示宽度
三、数据类型
大致分为5类
整数类型:用于保存整数
tinyint(1字节)
smallint(2字节)
mediumint(3字节)
int(4字节)
bigint(8字节)
注:如果不确定,就用int,一般足够大了
浮点类型:用于保存小数
double(8字节)
float(4字节)
注:如果不确定,就用double类型
字符串类型:用于存储短字符串
char 固定长度字符串
varchar 可变长度字符串
注:1-必须指定最大长度
2-如果不确定,就用varchar
3-10K以下的适合varchar
日期/时间类型
日期时间相关类型如下:
datetime 日期时间 2019-10-10 22:50:48
date 日期
time 时间
timestamp时间戳(自1970-01-01 00:00:00)
year 年份
注:如果不确定,就用datetime类型
大块数据类型
BLOB(binary large object),二进制大对象
text 存储大段文本数据
blob 存储大段字节数据
其中,
text分为tinytext,text, mediumtext,longtext
text(65K), mediumtext(16M),longtext(4G)
四、列的属性
创建表时,可以设置列的属性
列名:列的名称
数据类型:该列存储何种格式的数据
长度:对于varchar/text来说,指最大空间
默认值:添加一行时该列的默认值
非空:是否允许空值
主键----
自增----
列名
原则上,列名可以是中文,但通常用英文或拼音的命名规范:
-不要使用SQL里的关键字database table.......
-使用有意义的单词或简写
-第一个单词小写(与Java兼容,减少麻烦)
如:realName,fileSize,storePath
数据类型
上方说过
长度
对于varchar/text字段,需要设置最大长度
- 不区分中英文,按照字符数统计
- 太长的字符串,不适合用varchar存储
对于其他类型,不需要设置长度(意义不大)
例如:int(4)表示最小宽度为4,不足时凑空格或0(需要勾选ZeroFill属性)
非空Not NULL
默认值Default Value
默认值:指的是当添加一行时,若某列的值未设置,则自动填一个默认值
五、主键与自增
主键 Primary Key
当创建一个表时,可以将某个字段设置为主键
主键:Primary Key,即唯一标识
主键设计遵循以下原则:
- 可以唯一标识一条记录(不允许重复)
- 通常为由整型或字符串型(短字符串)
- 一个表最多有一个主键
- 主键可以是第1列,也可以是最后一列,数据库里的列的顺序是不重要的(顺序无关)
- 建议所有的表都设置主键(并非必须)
主键的作用
- 主键唯一标识一行记录
- MySQL会把主键单独拿出来,存为一个索引,排序后存储(方便后续的查找)
- 显然,整数主键的查找速度更快
自增 Auto-Increment
当以整型字段为主键时,可以同时设置为自增,,即插入记录时,有MySQL自动生成ID,保证id是自增的(每次加1)
自增的起点:
- 新建的表,默认从1开始
- 或表中有数据,从上一个最大值开始
- 过的号作废,不重复
- 可以指定起点