[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语句]的更多相关文章

  1. mysql-介绍、下载安装以及软件基本管理

    一.mysql介绍 mysql是一个关系型数据库管理系统,它是一个基于socket编写的C/S架构的软件. 客户端软件: mysql自带:如mysql命令,mysqldump命令等. python模块 ...

  2. MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权

    一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...

  3. Centos 7 官网下载安装mysql server 5.6

    Centos 7 官网下载安装 mysql server # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rp ...

  4. yum下载安装mysql服务

    1.下载mysql源码 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 2.安装mysql源 yum ...

  5. MySql入门(2-1)windows下安装mysql的两种方式

    一.下载mysql 1.下载解压MySQL 登录oracle主页,需要用户名和口令: lshengqi@netease.com/1wsx**** 下载路径:: https://dev.mysql.co ...

  6. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

  7. Mysql增加主键或者更改表的列为主键的sql语句

                                                                                                        ...

  8. Azure安装win2016的服务器,并下载安装mysql数据库心得

    随便写写 第一部分:新建虚拟机创建win2016服务器 这部分内容跟着微软云提示操作即可, 基本步骤:创建一堆名字,选择一个地区的服务器,配置一些基本信息,然后azure就会自动创建虚拟机并安装你选择 ...

  9. Mysql初识数据库《一》下载安装Mysql

    #1.下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2.解压 如果想要让MySQL安装在指定目录,那么 ...

  10. Win10环境下载安装MySQL Community 8.0.12

    1.下载MySQL Community 8.0.12的免安装版,下载地址:https://dev.mysql.com/downloads/mysql/ 2.解压到D:\Program Files\My ...

随机推荐

  1. Spring源码之ApplicationContext

    ​ 本文是针对Srping的ClassPathXMLApplicationContext来进行源码解析,在本篇博客中将不会讲述spring Xml解析注册代码,因为ApplicationContext ...

  2. Java学习之浅析高内聚低耦合

    •前言 如果你涉及软件开发,可能会经常听到 "高内聚,低耦合" 这种概念型词语. 可是,何为 "高内聚,低耦合" 呢? •概念 "高内聚,低耦合&qu ...

  3. 为了效率,我们可以用的招数 之 strlen

    如果要你写一个计算字符串长度的函数 strlen,应该怎么写?相信你很容易写出如下实现: 1 int strlen_1(const char* str) { 2 int cnt = 0; 3 4 if ...

  4. Python数据分析入门(六):Pandas的函数应用

    apply和applymap 1. 可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df = pd.DataFrame(np.random.randn(5,4) - 1) p ...

  5. 第20 章 : GPU 管理和 Device Plugin 工作机制

    GPU 管理和 Device Plugin 工作机制 本文将主要分享以下几个方面的内容: 需求来源 GPU 的容器化 Kubernetes 的 GPU 管理 工作原理 课后思考与实践 需求来源 201 ...

  6. 201871030108-冯永萍 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...

  7. MySQL实战45讲,丁奇带你搞懂

    之前,你大概都是通过搜索别人的经验来解决问题.如果能够理解MySQL的工作原理,那么在遇到问题的时候,是不是就能更快地直戳问题的本质? 以实战中的常见问题为切入点,带你剖析现象背后的本质原因.为你串起 ...

  8. MySQL数据库高级五:主从复制

    主机只能一台 从机去复制 单表500万上限

  9. 剑指offer刷题

    1.面试题43. 1-n整数中1出现的次数 输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次 ...

  10. 数据库MySQL六

    介绍什么是JDBC JAVA SE也有 提高综合篇 JDBC(Java Database Connectivity) :java和数据库的连接技术,sun公司推出的一套java应用程序访问数据库的技术 ...