2018.11.19

1.什么是数据库 *****
存放数据的仓库
已学习的文件操作的缺陷
1.IO操作 效率问题
2.多用户竞争数据
3.网络访问
4.用户的验证
2.常见的数据库
关系型 数据之间存在某种关联关系
oracle
目前最好关系型数据库,体现在用户管理,分布式
商业用途收费
mysql
免费开源,功能支持没有oracle强 但是足以满足中小企业使用
先后被sun 和 oracle 收购
mysql创始人wedenius担心 mysql会闭源 于是另起灶炉 搞了marriaDB
mariaDB和mysql 使用方法一模一样
sqlServer
属于微软生态链,需要和windows配合使用
DB2
IBM开发的大型关系型数据库 ,收费的,通常与硬件捆绑销售

非关系型 数据以key -value的形式来存储 数据存在内存中 速度快
mongoDB
redis
memercach

2.数据库的相关概念 ******
age = 18
一个变量 无法描述清楚数据
1.称之为一个字段

age = 18,name = Jack,genger = man
一堆变量在一起,可以描述清楚数据
2.称之为一条记录 对应着文件中的一行

文件需要分门别类 每个文件存储不同的数
3.一个文件称之为表

文件越来越多 得分文件夹
4.一个文件称之为库

数据库中包含所有内容:
字段(列)
记录


DBMS 数据库管理系统
数据库服务器
一个库可以包含多个表 一个表可以包含多条记录 一条记录中有多个字段

数据库是什么,本质上就是一套C/S架构得socket软件

3.安装数据库与配置使用环境 ***
1.代码界面 傻瓜式安装 记住密码
2.绿色解压版
1. 5.7以后的版本需要先初始化 mysqld --initialize-insecure(界面版不需要初始化)
2.启动需要先进入安装目录 比较麻烦 需要添加到环境变量
打开环境变量 将mysql安装目录下的bin加入path变量
3.将mysqld 加入到windows的系统服

4.绿色版修改默认密码
修改默认密码需要先登录成功
执行update语句直接修改 user表中的密码
5.7
update mysql.user set authentication_string = password("root") where user = "root";
5.6
update mysql.user set password = password("root") where user = "root";

修改密码方式2 不需要登录 需要知道旧密码
mysqladmin -uroot -p旧密码 password 123

破解密码,当忘记密码时 无法登录 也就不能值执行update语句
思路:
1.启动服务器时 控制它不要加载授权表
2.无密码登录服务器
3.执行update mysql.user set authentication_string = password("root") where user = "root"
4.重启服务器

用到的系统指令:
mysqld 直接运行服务器程序
mysqld --skip-grant-tables 跳过授权表 用于重设密码
tasklist | findstr mysqld taskkill /f /pid 结束服务器程序
mysql 运行客户端程序 -u用户名 -p密码 -h主机地址 -P端口号
mysqld --install 将mysqld注册当windows服务中 在服务中叫MySQL
windows就是绑定了一个exe程序
sc delete mysql 删除windows服务
exit 退出客户端

5.简单的sql语句 *****
针对库的相关操作

create database 库名称

drop database 库名称

alter database 库名称 要改的属性名称
alter database db1 DEFAULT CHARACTER SET utf8;
alter database db1 CHARSET utf8;
注意 在mysql中 utf-8 不能带- 写成utf8

show databases查看所有数据库
show create database 库名称 查看建库的语句
命名规范:
1.不能使用纯数字
2.可以是数字 字母 下滑线的组合
3.可以下滑线开头
4.不能是关键字 如create
大致和python相同
不区分 大小写

表相关的操作

建表时要明确数据库
use db1;
create table 表名称(字段名 类型(长度),....)
create table dog(nikename char(10),gender char(1),age int)
#创建时同时指定数据库
create table 库名称.表名称(字段名 类型(长度),....)

drop table 表名;


alter table 表名称 drop|change|modify|add
drop 字段名称
alter table dog drop color;

change 旧的字段名 新的字段名 新的类型
alter table dog change gender sex char(2);

modify 字段名 新的类型
alter table dog modify color char(5);

add 字段名称 类型
alter table dog add color char(10);
重命名表
rename table 旧表名称 to 新表名称
rename table dog to dogtable;

修改表的属性
alter table 表名 属性名 值;
alter table dogtable DEFAULT CHARSET gbk;


show tables;查看所有表
desc 表名称; 查看表结构
show create table 表名;查建表语句
记录相关操作

insert into 表名 values(值1,值2.....)

delete from 表名 where 字段名称 = 值
没有条件的话删除全部数据

update 表名 set 字段名 = 新的值 where 字段名 = 值
没有条件的话修改全部

select *from 表名; *表示通配符 查看所有字段
select 字段名称1,字段名2.. from 表名;

6.修改默认编码
配置文件放在安装路径根目录中 就是和bin同级 名称必须叫my.ini
#客户端的配置
[client]
#mysql这个客户端的配置
[mysql]
user = root
password = root
default-character-set = utf8
#服务器端的配置
[mysqld]
character-set-server = utf8

7.数据库的引擎 ***

8. 5.6 与5.7的区别
1. 5.7需要初始化
2. 5.6游客模式 没有密码可以登录 但是无法操作数据
只能看到 information_schema mysql
3. 5.7中 data数据存放目录 是由初始化时决定
带界面的 在C:ProgramData中
不带界面的就在安装目录中
5.6就在安装目录中
4.密码存储字段名 在5.6中时password 5.7中叫authentication_string

小结
1.数据库是什么?
mysql 一种DBMS
是一个CS的socket软件

数据库服务器
DBMS
文件夹 库
文件 表
一个完整数据 记录
单个数据 字段

数据库的分类
关系型 数据之间存在某种关联 存在硬盘上
非关系型 数据之间存在某种关联 以key value形式存储 存在内存中

为什么用mysql
免费开源 能够支持中小企业使用

安装两种方式
1.界面
2.解压安装

环境变量
系统服务
修改默认秘密
破解密码
修改编码(配置文件)
简单Crete Read Update Delete


1.界面版的安装之后 不需要进行任何操作 记住你的密码就行了
2.界面版的安装成功后服务名称叫做MySQL57
3.今天讲的 初始化 破解密码 注册服务 都是针对解压版的操作
4.解压版的配置文件放在安装目录下即可 界面版的服务器配置文件放在ProgramData中 客户端配置文件放在,安装目录中

原文地址:https://www.cnblogs.com/jutao/p/9985845.html