引入说明:数据库的操作无非就是增、删、改、查。这里对这个进行总结
数据库、表、以及表内容是嵌套关系,必须先有数据库,再有数据库表,最后才能添加数据
一、数据库操作(就是一个文件夹)
1.创建数据库 create database 数据库名。
2.删除数据库 drop database 数据库名。
二、数据库表的操作
1.创建数据库表:create table 表名(
变量名1 数据类型1,
变量名2 数据类型2
)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='信息';;
其中常用的数据类型有 :int、 double、date(日期)、varchar(非固定长度的变量)、char(固定长度的变量)
说明:varchar跟char的区别,其中varchar是在定义范围内,输入多少内容就占多少空间。但char是定义多少空间就是多少,跟输入的无关。
注意:这些类型在输入值的时候除了整数跟小数不要分号(' ')其他的类型都要加上分号(日期也要)。
2.修改数据库表:
2.1、修改表名:alter table 表名 rename to 新表名;
2.2、添加字段:alter table 表名 add 字段名 数据类型;
2.3、修改某一段的类型:alter table 表名 modify 字段名 新数据类型;
2.4、修改某一段:alter table 表名 change 新字段名 新数据类型;
总结:表的修改的格式为:alter table 表名 后续操作
为user表的name字段添加unique唯一约束
ALTER TABLE USER ADD CONSTRAINT ass UNIQUE(NAME);
3.删除数据库表或某一段内容:
3.1delete from 表名;
3.2删除某一段数据:delete from 表名 where 字段名 = 条件;
4.添加数据:
insert into (变量名1,变量名2)values(值1,值2);
注:当要输入所有变量信息是可以省略变量直接写: insert into values(值1,值2);
三、表约束(主要使用五种)
1.主键约束:primary key 特点:一张表只有一个主键,不重复非空
推荐自动添加:auto_increment默认是从0开始,
也可以自定义起始的值 ALTER TABLE 表名 auto_increment = 给定值;
2.非空约束:限制字段不为空 not null;
3.默认约束:给字段一个默认值,default ;
4.不重复约束:限制某个字段里面的内容不跟其他字段相同 unique;
5.外键约束:
[constraint 外键名] foreign key(要定义的外键)references 主表名(主键)
约束 外 涉及
其中前面的[constraint 外键名]可以省略,没有定义外键名称,系统会自定为外键分配名字
四.数据库表查询(重点)
单表查询:
1.全部查询
select * from 表名(这是查询出整个表的信息)但在公司中不推荐,因为数据量大,会拖慢系统。
2.部分查询
select 变量名1,变量名2 .... from 表名 ;(可以根据自己需求查出内容)
3.加上判断条件:
where :判断条件
order by :排序(默认为降序Desc )升序为(ASC)
group by (要按那个字段分组):分组
聚合函数:通常配合分组
count(字段名或者*):获取某个字段或者表的总数。
max(某字段名):获得某个字段最大值。
min(某字段名):获取某个字段最小值。
avg(某字段名):获得某个字段平均值。
round(7,2):设置要取的数的个数,7代表总共有7个数,2代表有两位小数。通常配合avg()使用,如:round(avg(某字段名),2)获取平均数,取两位小数。
3.多表查询:
1.表查询:
select * from 表一,表二 where 表一.id = 表二.某个字段 可以将两张表联合起来。
2.表链接查询:
将上面的逗号改为inner join,将where改为on(其中的inner可以省略不写)
1.select * from 表一 inner join 表二 on 表一.id = 表二.某个字段
2.左外连接:
select * from 表一 left outer join 表二 on 表一.id = 表二.某个字段
3.右外连接:
select * from 表一 right outer join 表二 on 表一.id = 表二.某个字段
注:通常看是从左往右看,即将字段中有null的移到右边。