[MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]
[MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]
数据库相关概念
数据库管理软件的由来
数据库管理软件:本质就是个C/S架构的套接字程序。 我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。
什么是数据(Data)
描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机,在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题
什么是数据库(DataBase,简称DB)
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用
数据库是长期存放在计算机内、有组织、可共享的数据即可。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享
什么是数据库管理系统(DataBase Management System 简称DBMS)
在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键
这就用到了一个系统软件---数据库管理系统如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等
数据库管理软件分两大类:
关系型:常见的如MySQL,sqllite,db2,oracle,access,sql server
非关系型:mongodb,redis,memcache
可以简单的理解为:
关系型数据库需要有表结构(存数据之前需要将表建立好(表就是文件),例如这个表是用户相关的表,里面专门存用户相关的数据。还需要建立权限表,里面存用户权限相关的数据。用户跟权限是有对应关系的,表跟表之间是有关系的,还有约束)
非关系型数据库是key-value存储的,没有表结构
mysql介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
mysql是什么?
mysql就是一个基于socket编写的C/S架构的软件
客户端软件
mysql自带:如mysql命令,mysqldump命令等
python模块:如pymysql
sql语句:套接字管理软件的作者为使用者规定的命令规范
数据库核心概念总结:
数据------------------》事物的状态
记录------------------》文件中的一条信息
表--------------------》一个文件
库--------------------》文件夹
数据库管理软件---------》套接字程序:mysqld、mysql
数据库服务器-----------》运行mysqld的计算机
MySQL下载安装
Windows版本
1、下载:MySQL Community Server 5.6.51
http://dev.mysql.com/downloads/mysql/
2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:D:\mysql-5.6.51-winx64
3、添加环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到
变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,D:\mysql-5.6.51-winx64\bin\】
4、初始化
C:\Users\Administrator> mysqld --initialize-insecure
5、启动MySQL服务
C:\Users\Administrator> mysqld # 启动MySQL服务
6、启动MySQL客户端并连接MySQL服务(另开一个cmd)
C:\Users\Administrator> mysql -u root -p # 连接MySQL服务器
将MySQL服务制作成Windows服务
#上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:
#注意:--install前,必须用mysql启动命令的绝对路径
# 制作MySQL的Windows服务,在终端执行此命令:
C:\Users\Administrator>"D:\mysql-5.6.51-winx64\bin\mysqld" --install
# 移除MySQL的Windows服务,在终端执行此命令:
C:\Users\Administrator>"D:\mysql-5.6.51-winx64\bin\mysqld" --remove
# 注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
# 启动MySQL服务
C:\Users\Administrator>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
# 关闭MySQL服务
C:\Users\Administrator>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
MySQL软件基本管理
登录,设置密码
初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
设置密码
C:\Users\Administrator>mysqladmin -uroot password "123" 设置初始密码 由于原密码为空,因此-p可以不用
C:\Users\Administrator>mysqladmin -uroot -p"123" password "456" 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
命令格式:
C:\Users\Administrator>mysql -h172.31.0.2 -uroot -p456
C:\Users\Administrator>mysql -uroot -p
C:\Users\Administrator>mysql 以root用户登录本机,密码为空
破解密码方式:
跳过授权表启动服务端:
# 1.先关闭当前mysql服务端
命令行的方式启动(让mysql跳过用户名密码验证功能)
C:\Users\Administrator>mysqld --skip-grant-tables --user=mysql
# 2.直接以无密码方式连接,另外开一个cmd
C:\Users\Administrator>mysql -uroot -p # 直接回车
mysql> select user(); # 可以看到直接就是管理员用户
# 3.修改当前用户的密码
mysql> update mysql.user set password=password("111") where user="root" and host="localhost";
"""
执行一个update命令,mysql文件夹下面有一个文件user(点代表路径分隔符),把password这个字段
的值改掉(密码一定要存成密文的,所以调了password("111")这个函数,把函数的值赋值给字段)where
user把一个本地管理员账号的密码改成111
"""
# 4.立刻将修改数据刷到硬盘
mysql> flush privilegse; # 执行命令,刷新权限信息
mysql> exit # 执行退出命令
# 5.然后关掉服务端,再以正常方式启动
改完密码重新启动服务端后再在客户端执行连接登录
C:\Users\Administrator>mysql -uroot -p"111"
可用此类方式关掉启动mysql服务
MySQL配置文件修改
mysql默认的配置文件
# 配置文件所在目录D:\mysql-5.6.51-winx64
my-default.ini # ini结尾的一般都是配置文件文件
程序启动会先加载配置文件中的配置之后才真正的启动
[client] # 其它客户端(mysql既支持自己写的客户端,也支持其它语言客户端)
[mysql] # 一旦客户端启动立刻加载下面的配置
[mysqld] # 一旦服务端启动立刻加载下面的配置
# 这个文件不能改,需要自己建一个my.ini的配置文件
# 修改配置文件后一定要重启服务才能生效
# 统一编码的配置,无需掌握直接拷贝即可(偷懒将管理员用户名和密码也添加到配置文件,不是必备项)
[client]
default-character-set = utf8mb4
[mysql]
user = "root" # 用户名
password=111 # 密码
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
统一编码配置添加到my.ini
重启服务后查看配置文件是否修改成功
sql语句
有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写
mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用mysql软件规定的语法格式去提交自己命令,实现对文件夹或文件的管理。该语法即sql(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
库详细操作
一、系统数据库
information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
mysql: 授权库,主要存储系统用户的权限信息
test: MySQL数据库系统自动创建的测试数据库
二、创建数据库
1 语法(help create database)
CREATE DATABASE 数据库名 charset utf8;
- ##### 2 数据库命名规则
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
三、库---》文件夹:操作文件夹
增:create database day02 charset utf8mb4; # 创建day02数据库,指定字符编码“utf8mb4”
改:alter database day02 charset gbk; # 将字符编码改为“gbk”
查:show databases; # 查看所有的库
select database(); # 查看当前所在的库
show create database day02; # 查看刚刚创建的库
删:drop database day02; # 删库
表操作
- #### 表----》文件:操作文件
#语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);
#注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的
# 表操作:
use day02; # 先切换到库下
select database(); # 查看当前所在的库
增:create table t1(id int,name varchar(16));
# 创建表t1当前库下无需加前缀day02,指定id字段、对应类型,名字,名varchar类型的宽度(16个字符)
改:alter table t1 rename t2; # 改表名
alter table t2 modify name varchar(10); # 改字段varchar类型的宽度改为10
查:show tables; # 查看当前库下的表信息
desc t2; # 指定查看一张表的信息
show create table t2\G; # 查看表详细结构,可加\G
删:drop table day02.t2; # 指定绝对路径删除表,不在当前库下也能删除
行操作
- #### 记录----》操作文件中的内容
create database day02; # 先创建库
use day02; # 最好是切到库下进行操作(路径不用加前缀)
create table t1(id int,name varchar(16)); # 创建表
增:insert t1 values # 往t1插入值
(1,"egon"), # 添加第一条记录
(2,"tom"), # 添加第二条记录
(3,"jack"); # 添加第三条记录
改:update day02.t1 set name = "lili" where id = 2;
# 更新day02下的t1表,设置名字改为“lili,”把id等于2的名字改为“lili”
查: select * from day02.t1; # 查看t1表里面的所有内容
select name from day02.t1; # 只查看t1表里面的名字
select name from day02.t1 where id >= 2; # 查看id大于或等于2的信息
删:delete from day02.t1 where id = 2; # 指的删除id等于2的内容
清空表:
delete from t1; # 如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1; # 数据量大,删除速度比上一条快,且直接从零开始,
auto_increment # 表示:自增
primary key # 表示:约束(不能重复且不能为空);加速查找
[MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]的更多相关文章
- mysql-介绍、下载安装以及软件基本管理
一.mysql介绍 mysql是一个关系型数据库管理系统,它是一个基于socket编写的C/S架构的软件. 客户端软件: mysql自带:如mysql命令,mysqldump命令等. python模块 ...
- MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权
一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...
- Centos 7 官网下载安装mysql server 5.6
Centos 7 官网下载安装 mysql server # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rp ...
- yum下载安装mysql服务
1.下载mysql源码 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 2.安装mysql源 yum ...
- MySql入门(2-1)windows下安装mysql的两种方式
一.下载mysql 1.下载解压MySQL 登录oracle主页,需要用户名和口令: lshengqi@netease.com/1wsx**** 下载路径:: https://dev.mysql.co ...
- 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )
SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...
- Mysql增加主键或者更改表的列为主键的sql语句
...
- Azure安装win2016的服务器,并下载安装mysql数据库心得
随便写写 第一部分:新建虚拟机创建win2016服务器 这部分内容跟着微软云提示操作即可, 基本步骤:创建一堆名字,选择一个地区的服务器,配置一些基本信息,然后azure就会自动创建虚拟机并安装你选择 ...
- Mysql初识数据库《一》下载安装Mysql
#1.下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2.解压 如果想要让MySQL安装在指定目录,那么 ...
- Win10环境下载安装MySQL Community 8.0.12
1.下载MySQL Community 8.0.12的免安装版,下载地址:https://dev.mysql.com/downloads/mysql/ 2.解压到D:\Program Files\My ...
随机推荐
- (4)MySQL进阶篇SQL优化(常用SQL的优化)
1.概述 前面我们介绍了MySQL中怎么样通过索引来优化查询.日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如 INSERT.GROUP BY等.对于这些SQL语句,我们该怎么样进行 ...
- 基于sk_learn的k近邻算法实现-mnist手写数字识别且要求97%以上精确率
1. 导入需要的库 from sklearn.datasets import fetch_openml import numpy as np from sklearn.neighbors import ...
- 走进docker-聊聊docker网络
容器网络概念 首先了解下linux的网络构成概念 命名空间: Linux在网络栈中引入网络命名空间,将独立的网络协议栈隔离到不同的命令空间中,彼此间无法通信:Docker利用这一特性,实现不容器间的网 ...
- DAOS 分布式异步对象存储|事务模型
DAOS API 支持分布式事务,允许将针对属于同一 Container 的对象的任何更新操作组合到单个 ACID 事务中.分布式一致性是通过基于多版本时间戳排序的无锁乐观并发控制机制提供的.DAOS ...
- 「HTML+CSS」--自定义加载动画【005】
前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...
- 全网最详细的Linux命令系列-nl命令
nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...
- TCP的client和server的简单连接
server: import socket as s import threading as t bind_ip = "0.0.0.0" bind_port = 80#配置服务器监 ...
- Mycat Web监控工具
简介 Mycat-web 是 Mycat 可视化运维的管理和监控平台,弥补了 Mycat 在监控上的空白.帮 Mycat 分担统计任务和配置管理任务.Mycat-web 引入了 ZooKeeper 作 ...
- Redis持久化——AOF日志
最新:Redis内存--内存消耗(内存都去哪了?) 最新:Redis持久化--如何选择合适的持久化方式 最新:Redis持久化--AOF日志 更多文章... 上一篇文章Redis持久化--内存快照(R ...
- 1.人工智能解读与Python简介
人工智能解读 Python解读 Python 简介 1.程序员: 程序设计人员. 2.程序: 一组计算机能识别和执行的指令,是实现某种需求的软件. 3.操作系统: 管理和控制计算机软件与硬件资源的程序 ...