数据库基础篇总结
2018-10-15 本文已影响101人
aec367caa311
连接数据库的方式
- 使用命令进入本机数据库(本机需要安装有数据库)
命令:mysql -h localhost -uroot -proot -
客户端连接数据库(需要安装数据库的客户端)
填入ip/域名
填入用户名
填入密码
填入端口
数据库客户端 - 写代码连接数据库
Java代码可以使用JDBC连接数据库用sql脚本使用数据库数据
条件运算符和常用关键字
- ">":大于
- "<":小于
- "<>":不等于
- "!==":不等于
- ">=":大于等于
- "<=":小于等于
- "and":和
- "or":或者
- "between and":两数之间
- "like":模糊查询
- "%":通配符代表任意多个字符
- "_":通配符代表一个任意字符
- "not":非/不是的意思
- "in":一个字段有多个筛选条件是使用
- in:同一个字段有多个筛选条件,每个条件都需要用英文的逗号分隔
- in:对多个字段的多个筛选条件,每个条件都需要用英文的逗号分隔
- in:不能对null进行筛选
- "order by":排序
- asc:升序
- desc:降序
- "limit":指定数据查看
- 只能mysql使用
- 查询结果是以0为其实序号
- limit n,m:n代表起始位置,m代表展示m条数据
- "distinct":去重
- "group by":分组
- "count":统计
- "sum":求和
- "avg":平均
- "max":最大
- "min":最小
- "having":对聚合函数进行过滤
增、删、改、查格式
1. 增
- 关键字insert into
- insert into 表名 (字段名1,字段名2,...) value (值1,值2,...);
insert into table (no1,no2) value (001,002);
- insert into 表名 (字段名1,字段名2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...);
insert into table (no1,no2) values (001,002);
拓展内容
- 把数据从一张表备份到另一张表中
- insert into 目标表 select * from 源表 where 条件;
insert into table1 select * from table where no = 1;
注意:两张表的数据结构必须完全相同,where后面跟的条件最好为表的主键或是唯一的值,不然可能出现备份了很多与其字段名相同的数据
- insert into 目标表 (字段名1,字段名2,...) select 字段1,字段2,... from 源表 where 条件;
insert into table1 (no,name) select id,ip from table where no = 1;
注意:不限制两表结构是否一致,where后面跟的条件最好为表的主键或是唯一的值,不然可能出现备份了很多与其字段名相同的数据
2. 删
- 关键字delete
- delect from 表名 where 条件;
delect from table where name = 'wang';
- 注意:where后面跟的条件最好是该表的主键或唯一的值,不然可能会出现符合该条件的有多个值都会被删除
拓展内容
- 清表
- delect from 表名;
delect from table;
注意:只删除表中的数据,不清楚内存,如果表中字段有自增的值清除表后自增还会存在,添加数据是会在清除表前的数据基础增加
- truncate table 表名
truncate table table;
注意:表中的数据全部清除,如果表中字段有自增的值清除后添加数据会从最开始增加
- 删表
- drop table 表名;
drop table group;
- 删库
- drop database 库名;
drop database table;
3. 改
- 关键字update
- update 表名 set 字段名 = 字段值,字段名 = 字段值,... where 条件;
update table set name = '王',id = 001 where no = 002;
- 注意:where后面跟的条件最好是该表的主键或唯一的值,不然可能会出现符合该条件的有多个值都会被更改
拓展内容
- alter table 表名;
alter table group;
4. 查
- 关键字select
- select 字段名1,字段名2 from 表名 where 字段名 连接符 条件;
select name,id from table where no = 001;
- 详解:
字段名:需要展示的内容
表名:需要查询的库
条件:过滤筛选需要的数据
拓展内容
- 以其他表数据做条件查询
select 字段名 from 表名1 where 字段名 = (select 字段名 from 表名2 where 字段名 = 条件);
select name from table1 where id = (select Id from table2 where no = 001);
多表关联
内连接
- 关键字 join 或 inner join
- select * from 表1 inner join 表2 on 连接条件
- select * from 表1 join 表2 on 连接条件
select * from table a inner join table b on a.no = b.no;
select * from table a join table b on a.no = b.no;
- 注意:内连接会把两表有关联的数据都保留,其他的数据会丢弃掉
左连接
- 关键字left join
- select * from 表1 left join 表2 on 连接条件;
select * from table a left join table b on a.no = b.no;
- 注意:左连接是以左表为主表,保留主表的所有字段,右表只保留与左表有关联的数据,其他的数据都会丢弃掉,主表与右表做关联没有数据的会以null来补全
右连接
- 关键字right join
- select * from 表1 right join 表2 on 连接条件;
select * from table a right join table b on a.no = b.no;
- 注意:右连接是以右表为主表,保留主表的所有字段,左表只保留与右表有关联的数据,其他的数据都会丢弃掉,主表与左表做关联没有数据的会以null来补全
全连接
- 关键字full join
- select * from 表1 full join 表2 on 连接条件;
select * from table a full join table b on a.no = b. no;
- 注意:全连接会保留两表的所有字段,把两表进行组合,有字段没有值的会以null来补全
表备份
备份到临时表
格式:
- 只备份表的结构:create table 临时表名 as select * from 源表名 where 1 = 2;
- 备份表的结构和数据:create table 临时表名 as select * from 源表名 where 1=1;
备份成SQL脚本
- 右键点击需要导出的表
-
点击备份/导出-->导出表数据作为
image.png -
选择SQL-->结构和数据-->设置储存地址
image.png