数据库:
为什么要有数据库, 数据库的优势?
用来存储大量数据的仓库,帮助数据做 持久化 操作 ,
并且能够高效的管理,和更新数据
大型超市:货架
零食,海鲜,日用品,大米白面,酒水
关系型数据库: mysql 轻量级 文件 二维表 ,DB2
oracle 花钱 ,SQLServer(微软的 使用window操作系统) , DB2 ,Sybase
非关系型数据库: redis 基于内存的 dump.rdb
key-value
都是运行在后台的 服务器 Server , 进程
mysql是 瑞士的 AB 公司旗下的, 现在属于 Oralce公司的
5.6.22
5.7
8.0
MYSQL: RDBMS (Relationship Database Management System)
关系型数据库管理系统, 运行在后台,Server
安装完了看不见,看服务 ,进程
DB: Database 数据库
Table: 表 由横向 和 纵向组成
Record: 一条记录
column: 字段
多个字段组成 一条记录
多条记录组成 一张表
多张表 组成数据库
多个数据库 构成数据库管理系统
1.卸载问题
|-- 在程序中点击卸载
|-- 去安装目录删除文件夹
|-- 去注册表中 删除mysql问及那
在cmd 中输入 regedit
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application
如果有 就直接删除mysql相关的文件
如果没有 就直接退出即可
2.安装问题
用户名: root
密码: root
mysql -uroot -p
mysql不是内部命令
开始配置环境变量:
1.找到mysql的安装目录
C:\Program Files\MySQL\MySQL Server 5.6\bin
粘贴到Path 目录;
java程序 就是用来操作数据; 那程序中 用什么来存储,承载数据的?
1.变量 2. 数组, 3.集合 jvm 内存中
持久化操作不好 永久保存
jvm 宕机 ,内存泄露问题
物理文件
第三方 技术 来存储数据
java
数据库 和 任何编程语言都没有关系,独立
SQL语句: Structure Query Language 结构化查询语言
登录命令:
mysql -uroot -proot 登录成功 不安全
mysql -uroot -p **** 登录成功 安全, 支持 无密码登录
远程登录:
mysql -h localhost -P 3306 -u root -p root
例如:mysql -h localhost -P 3306 -uroot -proot
window: 用window 客户端连接服务器
Linux: ip
基础语句:
show databases; 显示当前 数据库管理系统中的 所有数据库
use 数据库名; 使用指定数据库
show tables;
select version();
desc person; 显示表结构
|-- information_schema
|-- mysql
|-- performance_schema
mysql默认的数据库 ,不需要做任何操作
|-- test 系统提供的测试数据库
DDL: (Database Definition Language)数据库定义语言
create database 数据库名;
例如: create database java2106;
USE 数据库名;
create table student(
字段名1 数据类型(长度),
字段名2 数据类型(长度),
字段名3 数据类型(长度));
例如:
create table person(
pid int,
pname varchar(22),
age int ,
address varchar(22));
删除表:
drop table person;
删除数据库:
drop database java2106;
修改表结构:
添加字段: alter table person add [column] sex char(1);
删除字段: alter table person drop [column] sex;
修改字段类型: alter table person modify [column] age varchar(22)
修改字段名: alter table person change [column] age
DML: (Database Manipulation Language) 数据库操纵语言
添加数据:
insert into 表名(字段列表) values(值列表);
例如:
insert into person(pid,pname,age,address)
values(1,'张三',12,'哈尔滨');
字段列表顺序必须和值列表顺序一致
insert into person values(2,'李四',22,'北京');
允许字段列表乱序:
insert into person(pname,pid,address,age)
values('张三',1,'哈尔滨',12);
批量插入: 测试用
insert into person(pid,personName,haha,address)
values(2,'李四',22,'北京'),
(3,'王五',22,'北京'),
(4,'赵六',22,'北京'),
(5,'张飞',22,'北京'),
(6,'关羽',22,'北京');
删除数据:
慎用:
delete from 表名;
delete from 表名 where 唯一字段 = 值;
删除有两种形式:
记住一定备份 物理删除:
多一点: 逻辑删除: 修改状态
id name age address status
1 张三 29 哈尔滨 0 正在工作
update person set status = 1 where id = ?;
select * from person where status = 0;
更新数据库:
update person set 字段 = 新值 where id = ?;
update person set 字段1 = 新值,字段2 = 新值 where id ——+ ?
表复制:
复制表结构和 表数据:
create table student as select * from person;
DQL: (Database Query Language)数据库查询语言
DCL: (Database Control Language)数据库控制语言