目录
1.数据库分类
数据库的意义: 跨平台性(数据兼容性问题), 数据持久化
ORM(Object Relation Mapping): 对象关系映射: 对于关系型数据库来说, 根据pojo能获得其数据库表.
-
关系型数据库
查询来数据,得到对象,而非关系型数据库,保存键值对 查询处理数据,得到数组
简单理解
而关系型数据库
对于java而言,一个类就可以对应一个表,一个类对象就可以对应表中一行数据,一个成员变量可以对应表中的一个列(字段),能够做到一一的映射,数据库中是以表作为基本单位的 -
非关系型数据库
是存储键值对的,即有关系型数据库处理数据的方便性,也能处理大量数据,比较火的就是Redis、mongoDB了,各有千秋
关系型数据库这里一个名词是ORM : Object Relationl Mapping 对象关系映射,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了,更加面向对象
2.TCL用户权限分配
- MySQL中是以数据库做区分,但是用户可以操作数据库,权限最大的用户是root,在安装MySQL的时候我们已经设置了root的密码
- 但是真正开发中,不会让我们使用root用户,权限太大,会为我们单独创建用户,这个用户只能操作某个数据库
- 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
#username:用户名;host:指定在哪个主机上可以登录,本机可用localhost,%通配所有远程主机;password:用户登录密码;
- 用户授权与撤销,删除
#授权
GRANT ALL PRIVILEGESON *.* TO 'username'@'%' IDENTIFIED BY 'password';'
grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";
#*.*代表所有数据库和所有表;
#刷新权限:
FLUSH PRIVILEGES;
#撤销授权
revoke All privileges on _16_.* from 'tledu'@'localhost' identified BY 'tledu';'
#删除用户
drop user 'tledu'@'localhost';
3.DDL
- 数据定义语言
# 查看当前链接的MySQL版本
select version();
# 查看所有的数据库
show databases;
# 输出指定内容 as 是设置内容的列名,as也可以省略
select 'xxxxx' as 列名;
# 创建数据库
create database day_01;
# 切换数据库
use day_01;
# 查看该数据库下所有表,一般会和 use 一起使用,
show tables;
# 删除数据库
drop database day_01;
- 增强DDL
比如更改表名
alter table 表名 rename 新表名;
如 alter table teacher rename t_teacher;
更改字段名
alter table 表名 change 列名 新列名 数据类型;
更改表的列名 和 数据类型 当然数据类型可以不改,但是必须得写,
如 alter table t_teacher change name teacher_name
varchar(20);
添加字段
alter table 表名add 列名类型;
如 alter table t_teacher add birthday datetime; 默认添加到尾部
alter table t_teacher add birthday datetime after teacher_name; 把列添加到指定列的后面
alter table t_teacher add sex2 char(2) first; 添加到第一列,需要把表关掉,刷新一下,再打开才能显示出来
删除字段
alter table 表名 drop 列名;
如 alter table t_teacher drop birthday;
4.DML
- 数据操作语言
#插入数据
insert into 表名 (列名1...) values (数据...);
#删除数据
delete from 表名 where 筛选条件;
#修改数据
update 表名 set 修改内容 where 锁定修改的行