- 数据
a) 客观事物的符号表示 - 数据量庞大,介质
a) 纸 u盘 硬盘 网盘
b) 存储数据越来越大,检索难度变大 - 数据库(Database)
a) 按照一定数据结构存储数据的仓库 - 数据库管理系统(DBMS)
a) 操作管理数据库的一款软件
A) 关系型数据管理系统(RDBMS)
采用关系模型管理数据。采用二维表格的形式来简化数据关系实现对数据的管理
Oracle数据库:oracle公司 大型分布式数据库管理系统
大型企业,金融,传统企业,国企等 产品免费,服务收费
Mysql数据库:oracle 公司 针对中小型系统
开源免费 (闭源风险)
MariaDB 数据库: Mysql 分支,社区维护
永久开源(5.5之前和MySQL差不多)
Sql server Microsoft 中小型企业。只运行与windows
Db2:IBM公司,中小型公司
B) 非关系数据管理系统(Nosql)
Not only sql
弥补关系型数据库在高io,高可用方面的局限性。
Redis ,habse ,mongodb ,meo4j(图数据库) - MySQL
a)初识mysql
mysql是一个关系型数据库管理系统
mysql采用关系模型对数据进行管理,采用分表的形式进行管理,对多张表存在的情况下,可用采用分库的形式进行管理。
mysql数据库管理系统中可以管理多个数据库,在一个数据库中可以存放多张表
mysql体积小,速度快,开源免费,支持GPL(开源软件许可证)协议
1996年发布mysql1.0 mysql公司
2000年正式开源
2008年被sun以10亿美元收购
2009年被oracle以74亿美元收购
b)mysql的下载和安装
www.mysql.com
www.oracle.com
打开服务 services.msc
Net start mysql57
Data
每创建一个数据库就会创建相应的文件夹
frm保存表的结构信息
my.ini:mysql的配置文件
3)客户端
workbench:mysql自带图形界面
命令行客户端
登录/连接服务端:mysql -uroot -p密码
展示所有的数据库:show databases;
切换数据库:use dbname;
展示所有数据库表:show tables;
启动和关闭服务:net star|stop mysql
图形界面客户端
navicat sqlyog等
主机映射文件:C:\WINDOWS\System32\drivers\etc
表中每一行称为记录,每列名称称为字段。
- sql
1)什么是sql
structure query language结构化查询语言。关系型数据库中进行操作标准语句。编程语句
对大小写不敏感;结尾需要使用;
- sql分类
DDL:数据定义语言(数据库对象的操作(结构))
creat/alter/drop
DML:数据操纵语言(数据的操作 增删改查)
insert/update/delete/select
DCL:数据控制语言(授权 取消授权)
grant/revoke
TCL:事物控制语言
commit/rollback
- DDL:
#创建数据库
CREATE DATABASE if not exists bd1807;
#销毁数据库
drop DATABASE IF EXISTS bd1807;
#类
#创建表
create table userinfo(
uid int,
uname varchar(20),
gender varchar(10)
);
skip – grant – tables 忘记密码 去my.ini 里面的[mysqld]下面加
修改密码的方式:
- my.ini
[mysqld]
skip – grant – tables
命令行:mysqladmin -uroot -p password 新密码 - my.ini
[mysqld]
skip – grant – tables
mysql 数据库中修改user表对应的字段
update user set authentication_string = password(‘root’) where User = ‘root’;
net start mysql57
net stop mysql57
数据类型: - 数值类型:
int 4 字节 21亿 10位
浮点数:
float(m,n): m 总长度 n 小数点位数 默认值 (10 , 2) 精度24位
double(m,n): 默认值 (16 ,4) 精度53位
decimal(m,n): 经常用于金融数据保存,必须声明长度和精度 - 字符串类型:
char(n): 定长长度字符串
varchar(n): 可变长度字符串
text: 大文本 - 日期类型:
data: 日期 YYYY-MM-DD
time: 时间 HH:MM:SS
datetime:日期时间YYYY-MM-DD HH:MM:SS
1000-01-01 00:00:00 9999-12-31 23:59:59
timestamp:时间戳 YYYYMMSSHHMMSS
1970-01 2037-12
year:年 - 其他类型:
blob:存放二进制数据
enum:枚举类型
set:集合类型
json:json数据
1. 数据库表的创建和结构修改
1) 创建用户表(user)
字段 类型 长度
uid int
uname varchar 20
password varchar 20
birthday Date
2) 向用户表中追加字段email,varchar类型,长度20。
alter table `user` add email varchar(20);
3) 向用户表最前面添加字段status,int类型。
alter table `user` add status int first;
4) 向用户表password字段后面添加sage,int类型
alter table user add sage int after password;
5) 修改sage的名称为age
alter table user change sage age int;
6) 修改password字段的长度为50
alter table user modify password varchar(50);
7) 修改status到email之后的位置
alter table user modify status int after email;
8) 删除字段status
alter table user drop status;
9) 修改表的名称为userinfo
rename table user to userinfo;
10) 清空数据库表
11) 销毁数据库表user
drop table userinfo;