1.什么是数据库?
1)全称: DataBase 简称:DB
2)数据库其实就是按照一定的格式进行存储数据的一些文件或者文件集合
理解:存储数据的仓库,而这些数据在实时存储的过程中是有特定格式的.
2.什么是数据库管理系统?
1)全称: DataBaseManagement System 简称:DBMS
2).数据库管理系统专用来管理数据库中数据
可以对数据库中的数据进行增删改查操作
3)数据库管理系统类型:
(1)关系型数据库
a.以行和列的方式进行存储
b.常见的关系型数据库:
Mysql Oracle sqlServer DB2 MariaDB
sybase MariaDB
(2)非关系型数据库 - 大数据背景下产生
a.数据结构化存储方式的集合
b.常见的非关系型数据库:
MongoDB Redis Hbase neo4j
3.安装Mysql数据库管理系统
1).默认安装
2).需要进行myql数据库的配置
Mysql默认端口号: 3306
端口号通常会和IP地址在一起,IP地址是用来定位计算机的,而端口号是用来定位计算机中某个服务器/应用!
4.配置MYSQL环境变量
1).其实就是配置MYSQL的bin目录
2).默认路径:
C:\Program Files\MySQL\MySQL Server 8.0\bin
3).我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> path -> 添加默认路径(bin)
5.安装的配置
1).Mysql Server --> Mysql服务
Mysql workbench --> Mysql官方客户端
2).连接服务器的协议:
C/S -> Client(客户端)/Server(服务器) TCP/IP协议
B/S -> Broswer(浏览器)/Server(服务器) HTTP协议
3).ip + 端口号(port) -> 套接字
a. ip:
本机IP: 127.0.0.1
域名:DNS
b. 端口号
端口号是唯一的,所以可以根据端口号找到电脑上相对应的程序.
Mysql: 默认3306
Oracle: 默认1521
SQLServer: 默认1433
Tomcat: 默认80
6.命令行使用mysql服务
1). mysql -hlocalhost(127.0.0.1) -uroot -p
2)查看所有数据库
show databases;
注意: 以英文的 ; 结尾
3)切换选择数据库
use + 数据库名
4)创建一个数据库
create database 数据库名
5)退出mysql
exit/quit
7.常见连接数据库的客户端:
workbench --只能连接mysql
SQL Developer --只能连接Oracle,纯java开发的,依赖JRE
navicat --支持连接多种数据库
SQLog --支持连接多种数据库(win)
PLSQL --支持连接多种数据库
8.他们之间都存在什么样的关系?
数据库 数据库管理系统 表 记录
任何一张表中都是存在行 和 列
行(row): 被称为记录/数据
列(column): 被称为字段
总结:
1.一个数据库管理系统中包含多个数据库
2.一个数据库中包含多张表
3.一张表中包含多条记录
9.什么是SQL?
全称: Structured Query Language
结构化查询语言
SQL是一套标准,DBMS负责执行SQL语句,来最终完成的数据库中的增删改查操作
10.SQL语句中的分类有哪些?
DQL:数据查询语言
凡是带有select关键词的都是属于查询语句
select....
DML:数据操作语言
凡是对表中的数据进行增删改的操作
insert:增
delete:删
update:改
DDL:数据定义语言
凡是带有create drop alter都是属于DDL
主要操作的是表的结构,而不是表中的数据
create:增
drop:删
alter:改
show:查
TCL:事务控制语言
事务提交:commit
事务回滚:rollback
DCL:数据控制语言
对用户权限进行设置
例如:
grant(授权)
revoke(撤销权限)
______________________________________________
DDL:数据定义语言
一.操作数据库:CRUD
1.C(Create):创建
创建数据库:
create database 数据库名字;
创建数据库之前,判断是否存在,再进行创建:
create database if not exists 数据库名字;
2.R(Retrieve):查询
查询所有数据库的名字:
show database;
查询某个数据库的字符集;查询某个数据库的创建语句
show create database 数据库名字.
3.U(update): 修改
修改数据库的字符集
alter database db_2107 character set '字符集名字'
4.D(delete):删除
删除数据库
drop database 数据库名字;
删除数据库之前,进行判断
drop database if exists 数据库名字;
二.操作表:CRUD
1.C(Create):创建
create table user(
id int comment '序号',
name varchar(20) comment '名字',
age int(3) comment '年龄'
);
注意: 最后一列,不需要添加 (,)
Mysql数据类型 和 Oracle数据类型对比:
1).数值类型
整数类型
int: 不规定长度
int(2):最大值99,以10进制方式输出
小数类型:
double - 不规定长度
double(3,1) - 最大值为99.9,一共有3位数,其中一位是小数
oracle数值类型:
number(3)
number(3,1)
2)文本类型:
varchar: 字符串
varchar(20): 最大长度为20
char(3): 固定长度为3
3)时间类型:
date:日期,只包含年月日
datetime:日期,包含年月日时分秒
timestamp:日期包含年月日时分秒
如果不给这个字段赋值,或者赋值为null
则默认使用当前系统时间,自动赋值
2.R(Retrieve):查询
查询某个数据库中的所有表名称:
show tables;
查询表结构:
desc 表名;
3.U(update): 修改
修改表名:
alter table 表名 rename to 新的表名
修改列名:
alter table 表名 change 列名 新列名 新列名类型;
修改列的类型:
alter table 表名 modify 列名 新数据类型
新增列:
alter table 表名 add 列名 数据类型
修改表的字符集:
alter table 表名 character set '字符集名字'
4.D(delete):删除
drop table 表名;
drop table if exists 表名;
_________________________________________________
DML:数据操作语言
1.添加数据:
语法:
insert into 表名(列名1,列名2)values(值1,值2..)
注意:
a.列名要和值一一对应
b.如果表名后,不定义列名,则默认给所有列添加值
c.除了数字类型,其他类型需要使用引号('' 或者 "")引起来
2.删除数据:
语法:
delete from 表名 [where 条件]
注意:
1.如果不加条件,则删除表中所有记录
2.如果要删除表中所有记录
truncate table 表名;
注意: 先删除表,后创建一张一模一样的表,推荐使用!! 因为效率高
3.修改数据:
语法:
update 表名 set 列1 = 值1,列2 = 值2 [where 条件]
注意:
如果不添加任何条件,则会将表中所有的记录全部修改