数据库总结

引言

数据库是用来存储数据的集合,可以对数据进行持久化存储.

一、数据库(DataBase)

1、常见的数据库管理系统

Orcale数据库是orcale公司开发的,是一个大型收费数据库系统
MySql数据库是orcale公司开发的,是一个中小型数据库 5.xxx免费 6.xxx收费
DB2数据库是IBM公司开发,是一个大型的收费数据库系统
sql Servler数据库是微软公司开发的,是一个大型收费数据库系统
sqllite数据库是谷歌开发的,是一个微型嵌入式数据库

2、数据库系统(DataBaseSystem)

数据库管理系统(DataBaseManagerSystem)	
数据库(DataBase)

3、数据库的结构

一个数据库管理系统可以存储多个数据库
一个数据库可以存储多张表
一个表里面可以储存多条记录

4、sql语言的分类

DDL(数据定义语言)
	例如:create开头,一般用来创建数据库/表
DML(数据操作语言)
	例如:insert update delete 一般用来做增删改
DCL(数据控制语言)
	例如:grant/revoke 一般用来赋权限/撤销权限
DQL(数据查询语言)******
	例如:select 一般用来查询

二、数据库基本操作

1、mysql的登录

方式一:
	cmd:  mysql -uroot -p
方式二:
	MySQL 5.5 Command Line Client

2、数据库的开启和关闭

方式一:
	cmd:
		开启命令: net start mysql
		关闭命令: net stop mysql
方式二:
	我的电脑--->管理-->服务和应用程序-->服务-->mysql-->开启/关闭

3、数据库的sql语句

1.创建数据库sql语句
	create database 数据库名称;
2.查看数据库;
	show databases;
3.删除数据库
	drop database 数据库名称;
4.使用/切换数据库
	use 数据库名称;

4、表的sql语句

注意事项:操作表之前先切换数据库
1.创建表的sql语句
	create table 表名(字段名称 数据类型,字段名称 数据类型...);//
2.查看表
	show tables;
3.查看表结构
	desc 表名;
4.删除表
	drop table 表名;

5、表中记录的sql语句

1.添加记录
	insert into 表名 values(值1,值2,值3,...);
2.查询记录
	select * from 表名;
3.修改记录
	update 表名 set 字段=值,字段2=值2;
4.删除记录
	delete from 表名 where 条件;

6、中文乱码问题

	方式一:
		找到mysql数据库安装包中的my.ini文件然后把
		default-character-set=gbk
	方式二:
	 show variables like 'char%';

7、sql的数据类型

字符串类型
	varchar:
	char:
	text:
	varchar和char的区别
	varchar(10):是可变字符串,"abc",存储效率低,但是不占用存储空间
	char(10):是不可变字符串,"abc",存储效率高,但是占用存储空间
	
	text:大文本
	注意:在sql中定义字符串类型必须指定长度,否则报错
	例如: name varchar(200);
数字类型:
	tinyint   smallint   int  bigint  float  double
	byte       short     int   long   float  double

	age int   price floate(8,2)
布尔类型
	boolean
大数据类型
	blob:一般用来存储二进制文件
日期类型:
	year: 年  例如 2019
	time: 时间  例如:10:20:50
	date: 日期  例如:2019-06-04
	datetime:日期时间  例如:2019-06-04 14:30:10
	timestamp:时间戳 自动获取时间

8、表中字段的sql语句

1.添加字段
	alter table 表名 add 字段名称 字段类型;
2.删除字段
	alter  table 表名 drop 字段名称;
3.修改字段名称
	alter table 表名 change 原字段名称 新字段名称 数据类型;
4.修改字段的数据类型
	alter table 表名 modify 字段名称 新数据类型;
5.修改表名
	alter table 表名 rename to 新表名;

三、MySQL高级SQL语句

1、条件(where)

= >  <  >= <= != <>
and:用来连接多个条件 同时成立
or:用来连接多个条件 只要有一个成立
is: 用来查询字段值是NULL的
is not:用来查询字段值不是NULL的
in :用来表示满足in中的值的条件
between .. and :用来查询满足between和and之间的值
like:模糊查询

2、排序

升序(从小到大) order by 字段 asc
降序(从大到小) order by 字段 desc
默认是升序

3、分页

limit 值1,值2:
	值1:角标
	值2:长度

4、别名

as

5、聚合/聚集函数

count():用来统计数量
sum():用来求和
avg():用来求平均数
max():用来求最大值
min():用来求最小值

6、分组

group by

7、having

having一般用来配合group by做分组后的条件查询

8、约束

primary key;主键约束,约束字段中的值不能为空并且唯一
	auto_increment:主键自增长
not null:非空约束
unique:唯一约束
default:默认约束
foreign key:外键约束

9、创建/删除用户

创建用户的sql语句:
	create user '用户名'@'地址' identified by '密码';
删除用户的sql语句:
	delete from user where user = '要删除的用户名';
	flush privileges;

10、赋权限/撤销权限

赋权限的sql语句:
	grant 权限 on 数据库.表 to '用户名'@'地址';
	grant all privileges on 数据库.表 to '用户名'@'地址';
撤销权限的sql语句:
	revoke 权限 on 数据库.表 from '用户名'@'地址';
	revoke all privileges on 数据库.表 from '用户名'@'地址';

数据库可视化工具

四、多表查询

1、多表之间的关系

一对多关系
多对多关系
一对一关系

2、多表关系的建立原则

一对多关系的建表原则:在多的那张表上建立一个字段指向一的那张表的主键
多对多关系的建表原则:需要重新创建一张表,这张新的表中分别有两个字段指向另外两张表的主键
一对一关系的建表原则:把两张表合并成一张表

3、ER模型图

E:Entity
R:relationship 

4、多表查询

连(联)接查询
子查询

5、连接查询

交叉连接 :cross join
	select * from 表1 cross join 表2;
内连接: inner join
	显式内连接
		select * from 表1 inner join 表2 on 主键=外键;
	隐式内连接
		select * from 表1 , 表2 where 主键=外键;
外链接: outer join
	左外连接 left outer join
		select * from 表1 left outer join 表2 on 主键=外键;
	右外连接 right outer join
		select * from 表1  right outer join 表2 on 主键=外键;

6、子查询(嵌套查询)

格式:
	select * from 表1 where 字段 in(select 字段2 from 表2 where 条件);

7、子查询的条件

in :代表查询的条件满足其中任意一个  不能和> < >= <=配合使用
	例如: id in(1,4,5)//id=1 or id=4 or id=5
ang :代表查询的条件满足其中任意一个 可以和> < >= <=配合使用 select * from student where s_id>any(select cid from class where cid>3);
	例如: id >any(1,4,5)// id>1 or id>4 or id>5
some:和any用法一样
all:代表查询的条件必须满足所有值 可以和> < >= <=配合使用
	例如: id >all(1,4,5)// id >1 and id >4 and id>5

8、外键约束

foreign key(外键字段) references 主键表(主键字段); 

9、视图/view

sql:
创建:
	create view 视图名称 as sql语句; create view asd as  select  sname,s_id from student inner join class on sid=cid inner join zb on  s_id=zid order by s_id desc;
删除:
	drop view 视图名称;

10、存储过程

sql:
	create procedure 存储过程名称()
		begin
			sql1;
			sql2;
		end;
边界符:
	delimiter //

五、事务

概述:操作一组sql语句要么全部成功要么全部失败
sql:
	开启事务:start transaction;
	提交事务:commit
	回滚事务:roll back

六、数据库修改密码

 * 第一种:知道原始密码 然后修改密码
 * 1.登录mysql:mysql -uroot -p 
 * 2.切换数据库:use mysql
 * 3.修改root用户的密码:
 * update user set password=password('新密码') where user='root';
 * 4.刷新:flush privileges;
 第二种:忘记密码,修改密码
 * 1.停止mysql的服务(右击我的电脑图标-->管理--->服务和应用程序--->服务--->右侧列表找到mysql--->右击关闭服务)
 * 2.打开一个cmd窗口,执行:mysqld --skip-grant-tables(不能加分号;)
 * 3.这时再开一个窗口来登录mysql数据库:mysql -u root
 * 4.切换数据库 use mysql;
 * 5.修改mysql数据库里面user表密码:
 * 6.update user set password=password('新密码') where user='root';
 * 7.把两个cmd窗口关闭,打开任务管理器,找到mysqld的进程,结束
 * 8.启动mysql服务

七、数据库的备份/恢复

数据库备份(建议先找个不重要的数据库进行测试)
	无需登录数据库直接在 cmd 窗口输入以下命令
	mysqldump -h localhost -u root -p 要备份的数据库名称>d:/要备份的数据库名称.sql
	例如把java1809数据库备份到D盘下
	mysqldump -h localhost -u root -p java1903>d:/java1809.sql
	
	
恢复数据库:
	1.登录mysql数据库通过 create database java1809;创建数据库
	2.切换到要恢复 的数据库 use java1809;
	3.再开一个cmd窗口 在窗口输入以下命令:mysql -u root -p java1809<d:/java1809.sql
	4.回车输入密码

八、数据库的退出

exit
quit
\q
ctrl+c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雪一更ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值