从开源项目若依的两张数据库表中学习到的一点数据库知识。
项目地址:https://gitee.com/y_project/RuoYi
两张数据库表就存在sql文件夹下,分别为quartz.sql和ry_20210210.sql。
表中所含知识点:
-
drop table if exists 表名;
创建表之前判断是否有旧表,有则删除 -
create table 表名()
创建新表 -
列名 类型 no null,
no null强制约束列不接受null值,即若不向该列的字段添加值就无法更改记录 -
列名 类型 null
null表示该列可选,若不添加值则默认以null保存 -
列名 类型 default 值
default用于向列中插入默认值,如果没有规定其他的值,那么会将默认值添加到所有的新记录 -
类型中blob(binary large object)存放最多66535字节的数据
-
date类型(YYYY-MM-DD);datetime类型(YYYY-MM-DD HH:mm:ss)
-
primary key (列名,列名,···)
primary key(主键)唯一标识数据库表中的每条记录,是一个特殊的索引,不允许null值 -
foreign key (列名,列名,···) references 表名 (主键列名,主键列名,···)
一个表中的foreign key(外键)指向另一个表中的primary key,用于预防破坏表之间连接的动作,也能防止非法数据插入外键列 -
engine=innoddb
为建表引擎 -
commit;
显式提交 -
列名 类型 not null auto_increment comment 'xxx'
auto_increment会在新纪录插入表中时生成一个唯一的数字(可以用于定义主键列);comment用于添加字段或列的注释 -
create table 表名()engine=innodb auto_increment=200
auto_increment默认开始值为1,每条新纪录递增1,auto_increment=200设置其序列以200起始 -
insert into 表名 values (值1,值2,···)
用于向表格中插入新的行 -
insert into 表名 (列1,列2,···) values (值1,值2,···)
指定所要插入数据的列
过程中的其他知识点:
- sql对大小写不敏感
- 分号是在数据库系统中分隔每条sql语句的标准方法
- sql分为两个部分:数据操作语言(DML)和数据定义语言(DDL)
- sql的DML部分:
- select - 从数据库表中获取数据
- update - 更新数据库表中的数据
- delete - 从数据库表中删除数据
- insert into - 向数据库表中插入数据
- sql中最重要的DDL语句:
- create datebase - 创建新数据库
- alter database - 修改数据库
- create table - 创建新表
- alter table - 变更(改变)数据库表
- drop table - 删除表
- create index - 创建索引(搜索键)
- drop index - 删除索引
- sql通配符(配合like运算符使用
where 列名 like '通配符和字符'
):- % 替代一个或多个字符
- _ 仅替代一个字符
- [charlist] 匹配字符列中的任何单一字符
- [^charlist]或[!charlist] 匹配不在字符列中的任何单一字符