DAY 37 MySQL安装配置及sql语句基础

内容大纲

1、数据库概念
2、MySQL介绍
3、MySQL的安装
4、安装后续处操作
5、基本SQL语句
6、存储引擎

一、数据库概念

数据库:DataBase,简称DB
    数据库就是存放数据的仓库,支持共享数据,增删改查数据的功能

数据库管理系统:DataBase Management System 简称DBMS
    数据库管理系统就是可以帮我们管理、处理数据的软件

    常见的数据库管理系统(数据库软件):
        # 关系型:彼此之间有约束或者有联系
        关系型数据库:sqlite,db2,oracle,access,sql server,MySQL  # MySQL为当前主流数据库管理系统

        非关系型数据库:redis,mongodb

4 数据库服务器、数据管理系统、数据库、表与记录的关系(重点理解!!!)

    记录:1 刘昊然  324245234 22 (多个字段的信息组成一条记录,即文件中的一行内容)

    表:student,scholl,class_list(即文件)

    数据库:oldboy_stu(即文件夹)

    数据库管理系统:如mysql(是一个软件)

    数据库服务器:一台计算机(对内存要求比较高)

二、MySQL介绍

MySQL:用于管理数据的一个软件(有两个程序)
    1) 服务端软件
        socket服务端
        本地文件操作
        解析指令

    2) 客户端软件
        socket客户端
        发送指令
        解析指令

    客户端可以有很多个,Python, Java,PHP, C++都可以写客户端,客户端基于socket用IP、port来连接服务器并发送指令, 不同的语言指令不同,因此要统一指令 ==> 解析指令(SQL语句)

三、MySQL的安装

官网下载自己要下载的版本的MySQL,解压下载文件

四、安装后续处理操作

1、将MySQL启动文件路径添加到环境变量(bin目录)
2、将MySQL制作成系统服务,即可以开机自启动,以及可以在-运行-services.msc的窗口中直接打开/关闭/重启MySQL
    1)一定要先将MySql进程杀死
    2)【mysqld --install】  # 将mysqld服务端制作成系统服务(开机自启动)
3、设置密码:
    【mysqladmin -u root -p password 123】  # password 后跟的是新密码
    # 第一次修改完密码之后,之后再修改密码就需要:
    【mysqladmin -u root -p123 pasword 新密码】
    # 后续为了调试方便,这里把密码设置为空值
    【mysqladmin -u root -p123 password 】
4、破解密码:
    1)先关闭服务器
    2)以跳过用户密码认证的模式重新启动服务端
        【mysql --skip-grant-tables】
    3)以管理员身份登陆
    4)修改mysql库里面的user表
        【update mysql.user set password=password(123) where user='root' and host='localhost';】
    5)先关闭跳过验证的服务端,以正常模式启动服务端
    6)输入用户名、密码 正常登陆

5、解决编码问题:
    1)在mysql根目录下新建一个名为【my.ini】的配置文件,在文件中固定加上下面的配置即可设置编码问题
    # ----------------------------------------
    [mysqld]
            character-set-server=utf8
            collation-server=utf8_general_ci
     [client]
            default-character-set=utf8
     [mysql]
            default-character-set=utf8
    # ----------------------------------------
    2)重新启动你的MySQL服务端,配置才会生效

# 启动:
    服务端:
        【mysqld】
    客户端:
        【mysql -h 127.0.0.1 -p 3306 -u root -p】
        也支持简写
        【mysql -u root -p】
        写完会让你输密码,不用管,直接敲回车就OK

    sql语句第一条命令:
        查看所有数据库:
            【show databases;】
    注意:输入sql语句的时候,一定要用英文分号结束
    如果输入的sql语句错了不想执行的话可以在后面跟上【\c】取消该命令的执行
    退出客户端:【exit】,【quit】

五、基本SQL语句

# 读前需知
# 以下代码皆在cmd中运行
# 以下所有的不易与文字区分的代码皆用中文输入法中的【】来包括

对数据的操作逃不出 增删改查

SQL语句最后面都要以英文的分号结尾【;】,若没加, 可以再下一行中单独写一个【;】

# 代码示例:

# 执行 查看现有的所有库 的指令
mysql> show databases  # 原应打【show databases;】
    -> ;  # 此为后补的【;】
+--------------------+
| Database           |
+--------------------+
| information_schema |  # 这个库是系统内存中的,暂且忽略
| mysql              |  # 以下3个库是系统默认存在的4个库
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.16 sec)

SQL语句书写错误,若是没加分号,写【\c】就可使前面的sql语句失效
# 解决错误,代码示例:
mysql> show databases
    -> \c
mysql>

针对文件夹(库)的SQL语句

# 增--------------------------------------
【create database db1 charset utf8;】  # 创建了一个名叫db1的文件夹,文件夹中数据的编码方式为utf8

# 改--------------------------------------
【alter database db1 charset gbk】  # 更改文件夹db1的编码方式

# 查--------------------------------------
【show databases;】  # 查看现有的所有文件夹
【show create database db1;】  # 查看文件夹db1的详细信息

# 删--------------------------------------
【drop database db1;】  # 删除文件夹db1

# =======以下为增删改查的综合代码演示========

mysql> show databases;  # 查看现有的库
+--------------------+
| Database           |
+--------------------+
| information_schema |  # 初始默认的4个文件夹
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database db1 charset utf8;  # 创建了一个名叫db1的文件夹,文件夹中数据的编码方式为utf8
Query OK, 1 row affected (0.00 sec)

mysql> show databases;  # 查看现有的所有库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |  # 可以查看到文件夹db1已被创建
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> alter database db1 charset gbk;  # 将文件夹db1中数据的编码方式为gbk
Query OK, 1 row affected (0.00 sec)

mysql> show create database db1;  # 查看指定文件夹的详细信息
+----------+-------------------------------------------------------------+
| Database | Create Database                                             |
+----------+-------------------------------------------------------------+
| db1      | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-------------------------------------------------------------+
# 编码方式更改成功
1 row in set (0.00 sec)

mysql> drop database db1;  # 删除文件夹db1
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;  # 查看现有的所有库
+--------------------+
| Database           |
+--------------------+
| information_schema |  # 可以看到文件夹db1已被删除
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

针对文件(表)的SQL语句

文件是创建在文件夹下的,所以在操作文件之前,要先选择在哪个文件夹下操作

# 切换文件夹
【use db1;】  # 切换到文件夹db1中
【select database();】  # 查看当前所在的库

# 增--------------------------------------
【create table file1(id int,name char);】  # 创建出来的可能是多个文件,解耦管理

# 改--------------------------------------
【alter table file1 modify name char(16);】

# 查--------------------------------------
【show tables;】  # 查看当前库的表
【show create table file1;】  # 查看表file1的详细信息
【describe file1;】 <==> 【desc file1;】  # 查看表结构

# 删--------------------------------------
【drop table file1;】  # 删除表file1

# =======以下为增删改查的综合代码演示========

mysql> show databases;  # 查看现有的所有库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |  # 存在db1
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db1;  # 切换到文件夹db1下进行操作
Database changed
mysql> select database();  # 查看当前所在的库
+------------+
| database() |
+------------+
| db1        |  # 当前在库db1中
+------------+
1 row in set (0.00 sec)

mysql> create table file1(id int,name char(8));  # 创建文件file1,括号中参数即表头等
Query OK, 0 rows affected (0.01 sec)

mysql> alter table file1 modify name char(16);  # 更改文件file1属性
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show tables;  # 查看当前库的所有文件
+---------------+
| Tables_in_db1 |
+---------------+
| file1         |  # 文件file1已创建成功
+---------------+
1 row in set (0.00 sec)

mysql> show create table file1;  # 查看表file1的详细信息
+-------+-----------------------------------------------------------------------
--------------------------------------------------+
| Table | Create Table
                                                  |
+-------+-----------------------------------------------------------------------
--------------------------------------------------+
| file1 | CREATE TABLE `file1` (
  `id` int(11) DEFAULT NULL,
  `name` char(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------
--------------------------------------------------+
1 row in set (0.00 sec)

mysql> describe file1;  # 查看表file1的结构
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int(11)  | YES  |     | NULL    |       |
| name  | char(16) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> desc file1;  # 查看表file1的结构
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int(11)  | YES  |     | NULL    |       |
| name  | char(16) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> drop table file1;  # 删除表file1
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;  # 查看当前库的所有文件
Empty set (0.00 sec)  # 系统提示当前库已没有文件了

针对记录(数据)的SQL语句

# 增--------------------------------------
【insert into db1.file1 values (1,'egon'),(2,'kevin'),(3,'jason');】
# into可加可不加,db1可以不指定,默认就是在当前库下

# 改--------------------------------------
【update db1.file1 set name='wjw' where id > 1;】
【update db1.file1 set name='wjw' where id = 2 or id = 3;】

# 查--------------------------------------
【select id,name from db1.file1;】  # db1可以不指定,默认在当前库下
【select * from file1;】

# 删--------------------------------------
【delete from db1.file1 where id > 3;】
【delete from db1.file1 where name='egon';】
# 这里注意,如果少了一个引号,后面无论敲什么都没有用,必须要将引号补全

# =======以下为增删改查的综合代码演示========

mysql> show databases;  # 查看现有的所有库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |  # # 存在db1
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db1;  # 切换到文件夹db1下进行操作
Database changed
mysql> select database();  # 查看当前所在的库
+------------+
| database() |
+------------+
| db1        |
+------------+
1 row in set (0.00 sec)

mysql> show tables;  # 查看当前库的所有文件
+---------------+
| Tables_in_db1 |
+---------------+
| file1         |  # 文件file1已存在
+---------------+
1 row in set (0.00 sec)

mysql> insert into db1.file1 values (1,'egon'),(2,'kevin'),(3,'jason');  # 按照文件的表头个数即类型,来传入相应的记录
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> update db1.file1 set name='zdc' where id > 2;  # 删除所有id大于2的记录
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update db1.file1 set name='wjw' where id = 1 or id = 2;  # 删除id等于1和id等于2的记录
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select id,name from db1.file1;  # 从表file1中查看表头id,表头name下的所有记录
+------+------+
| id   | name |
+------+------+
|    1 | wjw  |
|    2 | wjw  |
|    3 | zdc  |
+------+------+
3 rows in set (0.00 sec)

mysql> select * from file1;  # 查看file1中的所有记录
+------+------+
| id   | name |
+------+------+
|    1 | wjw  |
|    2 | wjw  |
|    3 | zdc  |
+------+------+
3 rows in set (0.00 sec)

mysql> delete from db1.file1 where id < 2;  # 删除表file1中 id小于2的所有记录
Query OK, 1 row affected (0.00 sec)

mysql> delete from db1.file1 where name='zdc';  # 删除表file1中 name为'zdc'的记录
Query OK, 1 row affected (0.00 sec)

mysql> select * from file1;  # 查看file1中的所有记录
+------+------+
| id   | name |
+------+------+
|    2 | wjw  |  # 上面分别删除了id为1和name为'zdc'的记录,因而只剩(2,wjw)
+------+------+
1 row in set (0.00 sec)

六、存储引擎

文件格式有很多种(txt, pdf,docx),对应的软件也有很多种(文本编辑器,wps,word)

针对不同类型的文件,需要对应有不同的软件帮助我们去操作

# 查看所有的存储引擎
show engines;

# 查看不同存储引擎存储表结构文件特点
create table t1(id int)engine=innodb;
create table t2(id int)engine=myisam;
create table t3(id int)engine=blackhole;
create table t4(id int)engine=memory;

insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);

原文地址:https://www.cnblogs.com/majingjie/p/10849812.html

时间: 2024-10-07 19:24:22

DAY 37 MySQL安装配置及sql语句基础的相关文章

【转】MySQL用户管理及SQL语句详解

[转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysql.user; +--------+------------+-------------------------------------------+ | user | host | password | +--------+------------+---------------------------

Redhat下Mysql安装配置

环境信息 ------------------------------------------------------------ RHEL 6 -x86_64 yum(如未安装yum,请先安装yum,参考:安装及源配置) ------------------------------------------------------------ 安装mysql yum搜索mysql yum search mysql 搜索结果如下 MySQL-python.x86_64 : An interface

Linux Apache php MySQL 安装配置(Centos 6.4 yum安装)

一.yum准备 1.Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器. 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装. 2.在安装软件时报’Couldn't resolve host 'mirrorlist.centos.org‘ 解决:打开文件/etc/resolv.conf在其中添加: (添

mysql学习之三:sql语句学习

SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统.SQL 语句用于取回和更新数据库中的数据.SQL 可与数据库程序协同工作,比如MySQL. MS Access.DB2.Informix.MS SQL Server.Oracle.Sybase 以及其他数据库系统. 不幸地是,存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如 SELECT.UPDATE.DELETE.INSERT.WHERE 等等).

mysql学习之四:sql语句学习2

创建数据库: CREATE DATABASE stefan; 删除数据库: DROP DATABASE stefan; 重命名数据库: 重命名数据库没有直接的办法. 已经不再使用的方法: RENAME DATABASE stefan TO LCDB; 创建表格语法: CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... )   查看一个表格结构: DESCRIBE Persons;     ALTER TABLE 语句用于在已有的表中添

mysql学习之五:sql语句学习3

好吧,大家觉得这种字体还是比较好看,所有我们就换这种字体了. INSERT INTO 语句用于向表格中插入新的行. 语法 INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 DELETE 语句用于删除表中

openvpn+mysql安装配置

科普: 1.当今流行的4种vpn:pptp l2tp(相比pptp支持隧道验证) ipsec(cisco) sslvpn(openvpn). 2.openvpn可用于代理http:不同机房间服务器安装连接等. 以下是本人根据搜集的相关文档,重新整理,以备查阅. ====================================================================================== 实验环境: CentOS release 6.3 x64 外网:

如何记录MySQL执行过的SQL语句

很多时候,我们需要知道 MySQL 执行过哪些 SQL 语句,比如 MySQL 被注入后,需要知道造成什么伤害等等.只要有 SQL 语句的记录,就能知道情况并作出对策.服务器是可以开启 MySQL 的 SQL 语句记录功能,从而就能间接地检测到客户端程序的行为.涞水县梁以纸业 开启方法很简单:编辑/etc/my.cnf文件,在[mysqld]节下面添加:log=/var/lib/mysql/sql_row.log行(日志的路径自己根据需要定义). [mysqld] datadir=/var/li

Mysql安装配置,修改初试密码。

绿色版本,解压缩 D:\Software\mysql-advanced-5.6.18-winx64 my-default.ini 改名my.ini my.ini内容如下 # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a tem