数据库的作用:
统合整理方便数据的存储,大大提高数据的操作效率.
而sql就是操作数据库的语法
数据库常用的类型对应java
注意:
整型 一般不指定范围
- 小数型: 货币优先选用BECIMAL
- 字符类型:
char(size)是定长字符,若超过会截取并警告
varchar(size)是变长字符,非严格模式(非严格MySQL自身就不会对数据进行严格的校验(格式、长度、类型等))会截取并警告 - 日期类型: mysql日期时间使用单引号引起来
数据库操作
DDL表的操作CREATE TABLE product (
id bigint NOT NULL AUTO_INCREMENT,主键自动递增
productName varchar(50) DEFAULT NULL,默认为空
dir_id bigint DEFAULT NULL,
salePrice double(10,2) DEFAULT NULL,
supplier varchar(50) DEFAULT NULL,
brand varchar(50) DEFAULT NULL,
cutoff double(2,2) DEFAULT NULL,
costPrice double(10,2) DEFAULT NULL,
PRIMARY KEY (id)
设置主键);
大体上就是这些吧
- NOT NULL 非空
- DEFAULT 设置默认值
- UNIQUE 唯一约束
- PRIMARY KEY 主键约束,非空且唯一
- AUTO_INCREMENT 主键自增长, 从1开始
- FOREIGN KEY 外键约束,A参照B某一列
DML(插入,修改,删除)操作
插入INSERT INTO 表名(列名1,列名2,.....) values(列名1,列名2,.....)
修改UPDATA 表名 set column1=values1,column3=values3,column2=values2 WHERE [条件]
删除DELETE FROM 表名 where [条件]
DQL查询操作SELECT * FROM 表名 [WHERE]
推荐使用这种,根据需求查询自己需要的列,可以减少对数据库的性能损耗(反正好像时间上操作是少了:)SELECT 列名1,列名2,..... from 表名 [where]
这样就完成了基本介绍了一下sql
那么下面说一下
第一范式
关系模式基本要求,一个列不能有多个值
每个列的都是不可分割的基本数据
第二范式
通过主键加快查询,唯一区分
第三范式
不包含已在其他表中已包含的非主键字段
(不一定,假设你是经常使用,且不经常修改,可以在其他表中以包含的非主键字段)