SQL
Structured Query Language (SQL) 结构化查询语言
大部分关系型数据,拥有着基本一致的SQL语法。
- DDL(数据定义语言):操作数据库对象。(Data Definition Language 数据定义语言)
- DML(数据操作语言):操作数据库中的记录(Data Manipulation Language 数据操控语言)
- DCL(数据控制语言):操作用户权限(Data Control Language 数据控制语言)
管理库
- 创建库:
create database 数据库名称(不区分大小写)(或者直接右键点击创建) - 切换当前库:
use 库名(点击查询->新建查询->下拉选择) - 删除数据库:
drop DATABASE 数据库名(或者右键删除) - 创建表:点击表右键新建
- 字段名
- 字段类型
- bit:占1位,0或1,false或true
- int:占32位,整数
- decimal(M,N):能精确计算的实数,M是总的数字位数,N是小数位数
- char(n):固定长度为n的字符
- varchar(n):长度可变,最大长度位n的字符
- text:大量的字符
- date:仅日期
- datetime:日期和时间
- time:仅时间
- 自增:AUTO_INCREMENT
- 是不是null
- 修改表:(右键->设计表->修改)
- 删除表:右键删除或 drop table '数据库名'
主键和外键
- 主键:根据设计原则,每张表都要有主键(为了避免重复的不能区分)
- 唯一
- 不能更改
- 无业务含义
- 外键:用于产生表关系的列,外键列会连接到另一张表(或自己)的主键
表的关系
- 一对一:一个A对应一个B,一个B对应一个A,比如用户和用户信息(把任意一张表的主键同时设置为外键)
- 一对多:一个A对应多个B,一个B对应一个A,A和B是一对多,B和A是多对一,例如班级和学生(在多一端的表上设置外键,对应到另一张表的主键上)
- 多对多:一个A对应多个B,一个B对应多个A,例如学生和老师,(需要创建一张关系表,关系表至少包含两个外键,分别对应到两张表)
三大设计范式
- 要求数据库表的每一列都是不可分割的原子数据项
- 非主键列必须依赖于主键列
- 非主键列必须直接依赖主键列