day34mysql-day1
1.数据库介绍


1 """"""
2 """数据库概念"""
3 """
4 经历阶段:
5 1.随意存到文件中 数据也是千差万别的
6 2.软件开发目录规范
7 规定了数据存放的位置
8 ps:数据都是保存到本地的
9 例:单机游戏
10 3.将保存数据的部分,保存到一个公共的位置 所有用户涉及到数据相关 ,都必须来这个公共地方查找
11 """


1 """"""
2 """数据库之MySQL"""
3 """
4 本质就是一款基于网络通信的应用软件
5
6 任何基于网络通信的软件 底层都是socket
7
8 服务端:
9 -基于socket通信
10 -收发消息
11 -SQL语句(一个公共的标准)
12 客户端:
13 -基于socket通信
14 -收发消息
15 -SQL语句(一个公共的标准)
16 ps:MySQL不但支持MySQL的客户端来操作 也支持其他编程语言直接操作
17 python java c++ php 语法都不一样
18 """
19 """
20 DBMS:数据库管理系统
21 关系型数据库:
22 (
23 1.数据和数据之间是有关联和限制的
24 2.关系型数据库,通常都是表结构.
25 也就意味着你在用关系型数据库:
26 第一步:确认表结构,
27
28 字段有特定的类型
29 存名字 用字符串
30 存密码 用数据
31 存生日 用日期
32 )
33 MySQL
34 oracle(贵,一般企业用不起,维修费10几万,用的都是国企,好处:特别安全)
35 sqlite
36 db2
37 sql
38 server
39 非关系型数据库:
40 (
41 通常都是以k,v键值的形式存储数据(即:字典)
42 )
43 redis(目前最火),
44 mongodb(文档型数据数据库:非常接近关系型数据库,应用爬虫):存的时候是字典
45 memcache(被mongodb取代)
46
47 """


1 """"""
2 """
3 MySQL 其实可以把他看成一款支持远程操作文件的软件
4 """
5 """
6 库 >>> 文件夹
7 表 >>> 文件
8 记录 >>> 文件内一行行数据 叫做 一条记录
9
10 ps:
11 表头:就是表格的第一行数据
12 字段:字段名+字段类型
13
14 """
数据库本质.png

2.安装MySQL
0.下载mysql
下载mysql1.png

mysql下载2.png

mysql下载3.png

mysql下载4.png

mysql下载5.png



1 """"""
2 """
3 安装MySQL:
4 最新版本8.0
5 企业正在用5.5 5.6 5.7版本
6 在IT行业,不宜轻易尝试最新版本(除非老板有令)
7
8
9 下载之后 是将MySQL的服务端的客户端都下载了下载下来了
10
11 解压:
12 查看文件目录:E:\数据库\mysql-5.6.44-winx64
13 服务端:
14 mysqld
15 客户端:
16 mysql
17 启动mysql
18 E:\数据库\mysql-5.6.44-winx64
19 1.切换到 bin 目录下
20 2.执行mysqld
21 ps:做前期MySQL配置的时候 终端(cmd)建议你以管理员身份运行
22
23 windows + r 启动的普通用户 (启动cmd快捷键)
24 mysql在初始登录的时候 是没有密码的 直接回车即可
25
26 mysql中 sql语句 是以分号(;)结束的 不敲分号 默认你没有输入完
27 客户端还会让你继续输入
28 """


1 """"""
2 """1.客户端登录"""
3 """
4 语法:
5 cmd: mysql -h+IP -P+PORT -u+用户名 -p+密码(密码一般不在这写,不安全);
6 Enter password:密码(这里写密码,不需要分号)
7 简写(本地):
8 mysql - u+用户名 -p
9 Enter password:密码
10 例:
11 cmd: mysql -h127.0.0.1 -P3306 -uroot -p
12 Enter password:llx20190411
13
14 ps:如果不输入用户名和密码 默认是访客模式登陆 所能用到的功能很少
15
16 """
17 """2.客户端退出登录"""
18 '''
19 exit;
20 quit;
21 '''
22 """3.MySQL SQL 语句"""
23 """
24 查看所有数据库: show databases;
25 查看某个进程: tasklist |findstr 名称
26
27 关闭进程(杀死进程): taskkill /F /PID 进程号
28 ps:注意间距,否则会报错
29
30 """


1 """"""
2 """1.制作环境变量"""
3 """
4 将启动文件所在的路径添加到系统的环境变量.
5
6 ps:配置完成后 一定要重新启动 mysql 服务端 及 cmd终端
7
8 """
9 """2.将mysqld制作成系统服务(即:mysqld是启动(自启)状态)"""
10 '''
11 制作系统服务 你的 cmd终端 一定要是管理员身份(目的:避免后续的许多弊端和麻烦)
12 SQL语句:
13 # 装
14 cmd:mysqld --install
15 return(返回): Service successfully installed.
16 例:
17 E:\数据库\mysql-5.6.44-winx64\bin>mysqld --install
18 Service successfully installed.
19 ps:文件夹为中文时,在中文中跳转到指定目录下需要 +cd/中文文件夹:
20 # 删
21 C:\Windows\system32>sc delete mysql
22 [SC] DeleteService 成功
23
24 # 启动
25 C:\Windows\system32>net start mysql
26 请求的服务已经启动。
27
28
29 # 停止
30 C:\Windows\system32>net stop mysql
31 MySQL 服务正在停止.
32 MySQL 服务已成功停止。
33 '''
4.修改密码-破解密码遇到bug


1 """"""
2 """修改管理员密码:
3 """
4 """
5 1.知道密码:
6 1)默认无密码:
7 SQL语句:mysqladmin -p(无密码) -u+用户 password + (中间需要有空格)新密码
8 2)有密码.密码修改
9
10 使用 mysqladmin 这个工具
11
12 SQL语句:mysqladmin -p+旧密码 -u+用户 password + (中间需要有空格)新密码
13 实例:
14 mysqladmin -pllx20190411 -uroot password llx20190412
15
16
17 C:\Windows\system32>mysqladmin -pllx20190411 -uroot password llx20190412
18 Warning: Using a password on the command line interface can be insecure.
19 2.忘记密码:即破解密码
20 现将已经启动的服务端停掉
21
22 1.跳过用户名和密码的验证功能启动服务端
23 mysql --skip-grant-tables
24
25 2.修改管理员用户对应的密码
26 update mysql.user set password=password("llx20190411") where user='root' and host='localhost';
27 ps:password=password() 参数为密文, 整型不需要加字符串,英文需要加""转为字符串使用
28 3.关闭当前服务器 重新以校验用户密码的方式
29 4.正常以用户名密码的方式连接mysql服务端
30
31
32 """
2.启动服务器后,跳过授权表,即跳过密码.png

5.配置文件


1 """"""
2 """配置文件"""
3 """
4 \s 查看 mysql服务端简单配置
5 通常情况下配置文件的简单后缀都是ini结尾
6
7 mysql自带的配置文件不要修改
8 但是你可以新建一个配置文件 my.ini
9 mysql 服务端 在启动就会自动加载你的my.ini配置文件内的配置
10
11 修改完 配置文件 之后 需要先将服务器停止重新启动 才会生效
12
13 修改了配置文件一定要重启服务器
14 """
1.查询配置文件.png

2.解决服务端编码不一致问题.png

3.通过新增配置文件修改编码方式成功.png

4.新增配置文件替换编码方式 - 即设置mysql登录快捷方式.png

3.数据库的基本操作


1 """"""
2 """库: 类似于文件夹"""
3 """
4 # 增
5 SQL语句: create database 数据库名;
6 例:
7 mysql> create database db11;
8 Query OK, 1 row affected (0.00 sec)
9
10 # 查
11 SOL语句: 查所有库: show databases;
12 例:
13 mysql> show databases;
14 +--------------------+
15 | Database |
16 +--------------------+
17 | information_schema |
18 | db1 |
19 | db11 |
20 +--------------------+
21 13 rows in set (0.00 sec)
22 (单个)查指定库: show create database db11
23
24 例:
25 mysql> show create database db11;
26 +----------+---------------------------------------------------------------+
27 | Database | Create Database |
28 +----------+---------------------------------------------------------------+
29 | db11 | CREATE DATABASE `db11` /*!40100 DEFAULT CHARACTER SET utf8 */ |
30 +----------+---------------------------------------------------------------+
31 1 row in set (0.00 sec)
32
33 # 改
34 SQL语句:alter database db11 charset='gbk'; # 修改编码方式
35 例:
36 mysql> alter database db11 charset='gbk';
37 Query OK, 1 row affected (0.00 sec)
38
39 证明:
40
41 mysql> show create database db11;
42 +----------+--------------------------------------------------------------+
43 | Database | Create Database |
44 +----------+--------------------------------------------------------------+
45 | db11 | CREATE DATABASE `db11` /*!40100 DEFAULT CHARACTER SET gbk */ |
46 +----------+--------------------------------------------------------------+
47 1 row in set (0.00 sec)
48
49 # 删
50 drop database db11; # 删库(跑路)
51 例:
52 mysql> drop database db11;
53 Query OK, 0 rows affected (0.12 sec)
54 验证:
55 mysql> show create database db11;
56 ERROR 1049 (42000): Unknown database 'db11'
57 """


1 """"""
2 """表:类似文件夹"""
3 '''
4 在创建表的时候 需要 先 指定 库;
5 SQL语句: use 库名 # 指定库名
6
7 例:
8 mysql> use db11
9 Database changed
10
11 SQL语句: select database(); # 查询当前所在的库
12 mysql> select database();
13 +------------+
14 | database() |
15 +------------+
16 | db11 |
17 +------------+
18 1 row in set (0.00 sec)
19 '''
20 """
21 # 增
22 SQL语句:create table userinfo(id int,name char);
23 例:
24 mysql> create table userinfo(id int,name char);
25 Query OK, 0 rows affected (0.47 sec)
26
27 # 查
28 SQL语句:
29 show tables; # 查看某库下所有的表
30
31 例:
32 mysql> show tables;
33 +----------------+
34 | Tables_in_db11 |
35 +----------------+
36 | userinfo |
37 +----------------+
38 1 row in set (0.00 sec)
39
40 SQL语句:
41 show create table userinfo; # 查看指定表
42 例:
43 mysql> show create table userinfo;
44 +----------+---------------------------------------------------------------------------------------------------------------------------+
45 | Table | Create Table |
46 +----------+---------------------------------------------------------------------------------------------------------------------------+
47 | userinfo | CREATE TABLE `userinfo` (
48 `id` int(11) DEFAULT NULL,
49 `name` char(1) DEFAULT NULL
50 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
51 +----------+---------------------------------------------------------------------------------------------------------------------------+
52 1 row in set (0.00 sec)
53
54 SQL语句:
55 # 查询表结构 desc userinfo; <==> describe userinfo
56 例:
57 mysql> desc userinfo;
58 +-------+---------+------+-----+---------+-------+
59 | Field | Type | Null | Key | Default | Extra |
60 +-------+---------+------+-----+---------+-------+
61 | id | int(11) | YES | | NULL | |
62 | name | char(1) | YES | | NULL | |
63 +-------+---------+------+-----+---------+-------+
64 2 rows in set (0.01 sec)
65
66 mysql> describe userinfo;
67 +-------+---------+------+-----+---------+-------+
68 | Field | Type | Null | Key | Default | Extra |
69 +-------+---------+------+-----+---------+-------+
70 | id | int(11) | YES | | NULL | |
71 | name | char(1) | YES | | NULL | |
72 +-------+---------+------+-----+---------+-------+
73 2 rows in set (0.01 sec)
74 # 改
75 SQL语句:alter table userinfo modify name char(32) # 修改指定表的指定行的字节数
76
77 例:
78 mysql> alter table userinfo modify name char(32);
79 Query OK, 0 rows affected (0.62 sec)
80 Records: 0 Duplicates: 0 Warnings: 0
81
82 验证:
83 mysql> desc userinfo;
84 +-------+----------+------+-----+---------+-------+
85 | Field | Type | Null | Key | Default | Extra |
86 +-------+----------+------+-----+---------+-------+
87 | id | int(11) | YES | | NULL | |
88 | name | char(32) | YES | | NULL | |
89 +-------+----------+------+-----+---------+-------+
90 2 rows in set (0.01 sec)
91
92 # 删
93 SQL语句:drop table userinfo; # 删掉指定表
94 例:
95 mysql> drop table userinfo;
96 Query OK, 0 rows affected (0.15 sec)
97
98 验证:
99 mysql> show create table userinfo;
100 ERROR 1146 (42S02): Table 'db11.userinfo' doesn't exist
101 """


1 """"""
2 """记录:类似一条条数据"""
3 '''
4 1.先创建一个库|指定一个已存在的库
5 创库: create database 库名
6 切换到该库下: use 库名
7 2.创建表: create table 表名(列名1 类型1,...,列名n 类型n)
8
9
10 3.然后再操作记录 如下
11 '''
12 """
13 # 增
14 SQL语句:insert into userinfo values(1,'jason',123); # 插入单条数据
15 例:
16 mysql> insert into userinfo values(1,'llx',123);
17 Query OK, 1 row affected (0.34 sec)
18
19 SQL语句:insert into userinfo values(2,'llw',123),(3,'wyf',123);
20 例:
21 mysql> insert into userinfo values(2,'llw',123),(3,'wyf',123);
22 Query OK, 2 rows affected (0.37 sec)
23 Records: 2 Duplicates: 0 Warnings: 0
24
25 # 查
26 SQL语句:select * from userinfo; # 查看表中所有的记录:
27 例:
28 mysql> select * from userinfo;
29 +------+------+----------+
30 | id | name | password |
31 +------+------+----------+
32 | 1 | llx | 123 |
33 | 2 | llw | 123 |
34 | 3 | wyf | 123 |
35 +------+------+----------+
36 3 rows in set (0.00 sec)
37
38 SQL语句:select 列名 from userinfo; # 查询表中指定列的数据
39
40 例:
41 mysql> select * from userinfo;
42 +------+------+----------+
43 | id | name | password |
44 +------+------+----------+
45 | 1 | llx | 123 |
46 | 2 | llw | 123 |
47 | 3 | wyf | 123 |
48 +------+------+----------+
49 3 rows in set (0.00 sec)
50
51 SQL语句:select id name from userinfo where id=1 or name = 'wyf'; # 符合筛选条件的记录
52 例:
53 mysql> select * from userinfo where id = 1 or name = 'wyf';
54 +------+------+----------+
55 | id | name | password |
56 +------+------+----------+
57 | 1 | llx | 123 |
58 | 3 | wyf | 123 |
59 +------+------+----------+
60 2 rows in set (0.00 sec)
61
62 mysql> select id name from userinfo where id = 1 or name = 'wyf';
63 +------+
64 | name |
65 +------+
66 | 1 |
67 | 3 |
68 +------+
69 2 rows in set (0.00 sec)
70 # 改
71 SQL语句:update userinfo set name='llxdd' where id=1; # 修改一个字段信息
72 例:
73 mysql> update userinfo set name = 'llxdd' where id = 1; # 修改数据的多个字段
74 Query OK, 1 row affected (0.38 sec)
75 Rows matched: 1 Changed: 1 Warnings: 0
76
77 SQL语句:update userinfo set name='llwdd' and password=456 where id=2;
78 例:
79 mysql> update userinfo set name = 'llwdd'and password = 456 where id = 2;
80 Query OK, 1 row affected, 1 warning (0.36 sec)
81 Rows matched: 1 Changed: 1 Warnings: 1
82
83 # 删
84 SQL语句:delete from userinfo where id = 1; # 删除符合条件的指定字段
85 例:
86 mysql> delete from userinfo where id = 1;
87 Query OK, 1 row affected (0.10 sec)
88
89 SQL语句:delete from userinfo; # 将表中数据全部删除
90 例:
91 mysql> delete from userinfo;
92 Query OK, 2 rows affected (0.11 sec)
93 """
readme


1 mysql 6day 这周周五-下周周五 周末写优酷
2 优酷 一周
3 前端 7天
4 Django 10天
5 bbs 5天
6
7 今日内容
8 01 数据库概念.mp4
9 02 数据库安装及基本使用.mp4
10 03 配置环境变量及制作系统服务.mp4
11 04 修改密码.mp4
12 05 破解密码.mp4
13 06 配置文件相关操作.mp4
14 07 库的增删改查.mp4
15 08 表的增删改查.mp4
16 09 数据的增删改查.mp4
来源:oschina
链接:https://my.oschina.net/u/4265798/blog/4113848