一、前言

1.1 什么是数据库(DataBase,简称DB)

数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库是长期存放在计算机内、有组织、可共享的数据集合

将所有数据存放到一个第三方的公共位置(数据库),同一个软件凡是需要操作数据的,就必须去这个共享的位置操作。

数据库集群: 将同一个数据库中的数据,复制到不同的服务器中。

1.2 什么是数据库管理系统(简称DBMS)

如何科学地组织和存储数据,如何高效获取和维护数据成了关键。如MySQL,Oracle,Access等
数据库管理软件分类:
1. 关系型数据库: MySQL、postgreSQL、Oracle、DB2、sql server、…. 注意:sql语句通用
关系型数据库需要有表结构

  • 1)表结构
    - 需要哪些字段
    - 字段是什么类型
  • 2)字段与字段类型
    - name —-> ‘tank’ ——> 字符串
    - age —-> 17 —-> 整型

2. 非关系型数据库: redis、mongodb…
非关系型数据库一般以 key:value的形式存储,没有表结构

二、Mysql数据库

MySQL数据库: 基于socket编写的 C —-> S架构的软件

  1. mysql数据库本质上就是一个基于网络通信的软件。
  2. 所有基于网络通信的软件,底层都是socket。

如何安装配置使用Mysql?

Windows系统下

  1. 1、下载:http://dev.mysql.com/downloads/mysql/
  2. 2、解压安装包
  3. 3、添加环境变量
  4. -【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQLbin目录路径追加到变值值中】
  5. 4.以管理员身份打开CMD,输入mysqld启动服务端,此时会卡住
  6. 5.在新建一个cmdmysql客户端连接服务端,输入mysql -h 127.0.0.1 -P 3306 -p 密码
  7. - mysql初始化时无密码,可以进入游客模式,功能会很少
  8. - 无密码直接进入 ---》 不需要“-p 密码”
  9. - bin目录下的: mysql.exe
  10. 全写: mysql -h 127.0.0.1 -P 3306 -p 密码
  11. 简写: mysql -uroot -p 密码
  12. 6.退出数据库客户端
  13. - exit;
  14. - quit;
  15. 注意: SQL语句末尾必须加 “;” 号。
  16. CMD
  17. mysql -h主机名或IP -u用户名 -p密码
  18. mysql -hlocalhost -uroot -proot
  19. -h:代表MySQL的主机名或IP地址,如:-h 127.0.01 -hlocalhost
  20. -u:代表MySQL中的用户名,默认是root
  21. -p:代表MySQL中用户的密码,默认是root
  1. 1.服务器程序:存取数据是服务器的工作
  2. 2.客户端程序:命令服务器来完成存取工作,
  3. 客户端将命令发送给服务器,服务器解析执行命令,返回客户端要的数据
  4. - 查看操作系统中是否已经启动mysqld 服务端
  5. - tasklist | findstr "mysqld"
  6. - 杀死mysqld进程
  7. - taskkill /F /PID pid
  8. - *****做服务端操作时,必须先以管理员身份打开
  1. - 制作系统服务:
  2. - 1.必须将已启动的服务端mysqld关掉
  3. - 2.删掉已经启动过的mysqld的进程
  4. - 3.输入 mysqld --install ----> 安装mysqld系统服务
  5. - 4.输入 net start mysqld
  1. 服务器为了保证数据安全需要进行用户认证
  2. 默认有一个root 账户,默认没有密码,不安全
  3. - 密码设置及修改(在服务器的终端进行操作):
  4. - 默认没有密码的情况下,设置密码
  5. - cmd>>>: mysqladmin -uroot password 123
  6. - 有密码的情况下,修改密码
  7. - cmd>>>: mysqladmin -uroot -p原密码 password修改的密码
  8. - cmd>>>: mysqladmin -uroot -p123456 password 123
  9. - 破解密码: 当密码忘记时采用
  10. - 1.关闭服务端
  11. - 2.跳过权限启动服务端
  12. - cmd>>>: mysqld --skip-grant-tables
  13. - 3.客户端进入游客模式:
  14. - cmd>>>: mysql
  15. - update mysql库.user表名 set 字段password=字段password('字段值') where 条件(若条件成立,则修改)user="root";
  16. - cmd>>>: update mysql.user set password=password('123456') where user="root";
  17. - 4.重新启动服务端,不要跳过权限认证
  18. - kill掉跳过权限认证启动的服务端进程
  19. - 再手动去开服服务中的mysql服务即可

设置配置文件

  1. - 1.先在mysql目录下 --》 D:\mysql-5.6.40-winx64
  2. - 2.创建一个名为 my.ini 的文件,这个是mysql的配置文件
  3. 配置文件:
  4. [mysqld]
  5. character-set-server=utf8
  6. collation-server=utf8_general_ci
  7. # 这个是用python软件连接的客户端
  8. [client]
  9. default-character-set=utf8
  10. # mysql软件的客户端
  11. [mysql]
  12. # 可写,可不写这样可以不需要用户名与密码直接登录mysql
  13. # user='root'
  14. # password=123
  15. # 设置默认的字符编码
  16. default-character-set=utf8
  17. - 3.重启mysql服务,即修改成功!

三、存储引擎

存储引擎是用于根据不同的机制处理不同的数据。

  1. - 查看mysql中所有引擎:show engines;
  2. - myisam: 5.5以前老的版本使用的存储引擎
  3. - blackhole: 类似于队列中的数据,存进去消失
  4. - innodb: 默认使用的存储引擎
  5. - 支持事务
  6. - 行锁
  7. - 外键
  8. - memory: 通电数据存在,断电丢失
  9. create table t1(id int)engine=innodb;
  10. create table t2(id int)engine=myisam;
  11. create table t3(id int)engine=blackhole;
  12. create table t4(id int)engine=memory;
  13. 插入数据验证引擎的作用:
  14. insert into t1 values(1);
  15. insert into t2 values(2);
  16. insert into t3 values(3);
  17. insert into t4 values(4);
  18. mysql> select * from t1;
  19. +------+
  20. | id |
  21. +------+
  22. | 1 |
  23. +------+
  24. 1 row in set (0.00 sec)
  25. mysql> select * from t2;
  26. +------+
  27. | id |
  28. +------+
  29. | 2 |
  30. +------+
  31. 1 row in set (0.01 sec)
  32. mysql> select * from t3;
  33. Empty set (0.00 sec)
  34. mysql> select * from t4;
  35. +------+
  36. | id |
  37. +------+
  38. | 4 |
  39. +------+
  40. 1 row in set (0.00 sec)