拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 【手把手从 MySQL 安装到基础 SQL 语法全讲】

【手把手从 MySQL 安装到基础 SQL 语法全讲】

白鹭 - 2022-01-24 2075 0 0

2021-1-3 ~ 2021-1-6

本文比较长,这也是我第一次尝试发长篇博客(24000余字),本文会从MySQL的安装到SQL语言基础,带你入门数据库,如果觉得对你有帮助的话,点个赞,点个关注吧,这将会给予我更多的动力,Thanks?(・ω・)ノ!!!

文章目录

  • 2021-1-3 ~ 2021-1-6
  • 本文比较长,这也是我第一次尝试发长篇博客(24000余字),本文会从MySQL的安装到SQL语言基础,带你入门数据库,如果觉得对你有帮助的话,点个赞,点个关注吧,这将会给予我更多的动力,Thanks?(・ω・)ノ!!!
  • 一、Java Web 简介
    • Web:
    • Java Web :
    • 结构组成:
  • 二、数据库:
    • MySQL
      • 下载安装:
        • 1. 下载链接:
        • 2. 配环境变量
        • 3. 配置 MySQL 的组态档
        • 4. 启动下 MySQL 数据库:
          • 1. 初始化MySQL
          • 2. 注册MySQL服务
          • 3. 启动MySQL服务
          • 4. 改密码:
          • 5. 登录 mysql
          • 6. 退出 mysql
        • 5. 卸载 MySQL 数据库:(提桶跑路)
      • MySQL资料模型
        • 优点:
    • SQL :
      • SQL通用语法
      • SQL分类
        • 1. DDL (Data Definition Language)资料定义语言
          • DDL--查询库
          • DDL--操作表
            • 1. 查询表
            • 2. 创建表
            • 3. 洗掉表
            • 4. 修改表
        • 2. DML (Data Manipulation Language)资料操作语言
          • 添加资料
          • 修改资料
          • 洗掉资料
        • 3. DQL (Data Query Language)资料查询语言
          • 资料准备
          • 查询语法
          • 查询全部
          • 查询部分
            • 多个栏位查询
            • 去除重复查询
            • 计算列的值(四则运算)
            • 起别名
          • 条件查询
            • 条件分类
            • 条件查询语法
          • 排序查询
            • 排序分类
            • 排序语法
          • 聚合函式
            • 聚合函式分类
            • 聚合函式语法
          • 分组查询
          • 分页查询
        • 4. DCL (Data Control Language)资料控制语言
          • MySQL 用户设定
  • 以下内容将在后续更新,敬请期待!!!!
    • JDBC
    • Maven
    • MyBatis

一、Java Web 简介

Web:

Web (World Wide Web) 即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态互动的、跨平台的分布式图形信息系统,是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的档案及超级链接将Internet上的信息节点组织成一个互为关联的网状结构,能够通过浏览器访问的网站,

web包括:web服务器和web客户端两部分,

Java Web :

是用Java技术来解决web互联网领域的技术堆栈

结构组成:

  1. 网页:展现资料
  2. 数据库:存盘和管理资料
  3. Java web 程序:逻辑处理

二、数据库:

  • 存盘资料的仓库,资料是有组织的进行存盘,英文:DateBase(DB)
  • 资料管理系统:管理数据库的大型软件,英文:DateBase Management System( DBMS)
    • 数据库: 数据库是一些关联表的集合,.
    • 资料表: 表是资料的矩阵,在一个数据库中的表看起来像一个简单的电子表格,
    • : 一列(资料元素) 包含了相同的资料, 例如邮政编码的资料,
    • :一行(元组,或记录)是一组相关的资料,例如一条用户订阅的资料,
    • 冗余:存盘两倍资料,冗余可以使系统速度更快,
    • 主键:主键是唯一的,一个资料表中只能包含一个主键,你可以使用主键来查询资料,
    • 外键:外键用于关联两个表,
    • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引,
    • 索引:使用索引可快速访问数据库表中的特定信息,索引是对数据库表中一列或多列的值 进行排序的一种结构,类似于书籍的目录,
    • 参照完整性: 参照的完整性要求关系中不允许参考不存在的物体,与物体完整性是关系模型必须满足的完整性约束条件,目的是保证资料的一致性,
  • SQL: (Structured Query Language)结构化查询语言,操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准
    在这里插入图片描述

MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一,MySQL是一种关联数据库管理系统,关联数据库将资料保存在不同的表中,而不是将所有资料放在一个大仓库内,这样就增加了速度并提高了灵活性,MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言,

下载安装:

1. 下载链接:

MySQL官方链接https://downloads.mysql.com/archives/community/

2. 配环境变量

高级系统设定中的环境变量,设定path路径
在这里插入图片描述

3. 配置 MySQL 的组态档

打开刚刚解压的档案夹 D:\MySQL\mysql-5.7.24-winx64 ,在该档案夹下创建 my.ini 组态档,编辑 my.ini 配置以下基本信息:

[mysql]
# 设定mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设定3306埠
port = 3306
# 设定mysql的安装目录
basedir=D:\\MySQL\\mysql-5.7.24-winx64  
# 设定mysql数据库的资料的存放目录
datadir= D:\\MySQL\\mysql-5.7.24-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8位元编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存盘引擎
default-storage-engine=INNODB
# 跳过登录密码验证
skip-grant-tables

4. 启动下 MySQL 数据库:

以管理员的身份打开cmd
在这里插入图片描述

1. 初始化MySQL

在命令列输入如下命令:

mysqld --initialize-insecure

结果显示:
在这里插入图片描述
命令列里没有输出

注意:

如果显示:由于找不到MSVCR120.dll,无法继续执行代码,重新安装程序可能会解决此问题,

解决办法:这是因为没有安装如下软件导致的,点击如下链接,下载vcredist.
https://www.microsoft.com/zh-CN/download/details.aspx?id=40784
无脑安装就好了

2. 注册MySQL服务

在命令列输入如下命令:

mysqld -install

结果显示:
在这里插入图片描述
现在你的计算机上已经安装好了MySQL服务,计算机可以称其为:MySQL服务器

3. 启动MySQL服务

在命令列输入如下命令:

net start mysql//启动服务
net stop mysql //停止服务

结果显示:
在这里插入图片描述

4. 改密码:

在命令列输入如下命令:

mysqladmin -u root password 1234

结果显示:
在这里插入图片描述

mysqladmin: [警告] 在命令列界面上使用密码可能不安全,
警告:由于密码将以明文形式发送到服务器,请使用 ssl 连接以确保密码安全,
mysql管理员:
您不能在 mysqld 运行时使用“密码”命令
  禁用授权表(以 --skip-grant-tables 开始),
使用:“mysqladmin flush-privileges password '*'”代替
5. 登录 mysql

在命令列输入如下命令:

mysql -uroot -p

结果显示:

在这里插入图片描述

6. 退出 mysql

在命令列输入如下命令:

exit

在这里插入图片描述

5. 卸载 MySQL 数据库:(提桶跑路)

1.敲入net stop mysql,回车
2.敲入mysqld -remove mysql,回车
3.洗掉MySQL目录以及相关配置的环境变量,

MySQL资料模型

关系型数据库:是建立在关系结构基础上的数据库,简单来说,关系型数据库是由多张能相互连接的二维表组成的数据库

优点:

  1. 都是使用表结构,格式一致,便于维护,
  2. 使用通用的SQL语言操作,使用方便,可用于复杂查询
  3. 资料存盘在磁盘中,安全,

在这里插入图片描述
数据库就是档案夹,资料表是档案

SQL :

  • 什么是SQL

    • Structured Query Language:结构化查询语言
    • 其实就是定义了操作所有关系型数据库的规则,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”,
  • SQL分类

    • DDL(Data Definition Language)资料定义语言
      • 用来定义数据库物件:数据库,表,列等,关键字:create, drop,alter 等
    • DML(Data Manipulation Language)资料操作语言
      • 用来对数据库中表的资料进行增删改,关键字:insert, delete, update 等
    • DQL(Data Query Language)资料查询语言
      • 用来查询数据库中表的记录(资料),关键字:select, where 等
    • DCL(Data Control Language)资料控制语言(了解)
      • 用来定义数据库的访问权限和安全级别,及创建用户,关键字:GRANT, REVOKE 等
  1. 英文: Structured Query Language,简称SQL
  2. 结构化查询语言,一门操作关系型数据库的编程语言
  3. 定义操作所有关系型数据库的统一标准
  4. 对于同一个需求,每一种数据库操作的方式可能会有所不同,

SQL通用语法

  1. 单行或多行书写,以分号结尾;
  2. MySQL数据库的SQL陈述句不区分大小写,关键字建议使用大写
  3. 注释:单行注释:-- 注释内容#注释内容;多行注释:/* 注释内容 */
mysql> show databases;-- 资料结束
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> show databases;#资料结束
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> show databases;/*资料结束
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

   /*> asjjfha
   /*> hasjh
   /*> */

SQL分类

  • DDL (Data Definition Language)资料定义语言,用来定义数据库物件:数据库,表,列;
  • DML (Data Manipulation Language)资料操作语言,用来对数据库中表的资料进行增删改;
  • DQL (Data Query Language)资料查询语言,用来查询数据库中表的记录(资料);
  • DCL (Data Control Language)资料控制语言,用来定义数据库的访问权限和安全级别,及创建用户,

在这里插入图片描述

1. DDL (Data Definition Language)资料定义语言

DDL–查询库

1.查询
在命令列输入如下命令:

show databases;

2.创建
创建数据库

create database 数据库名称;

创建数据库(判断,如果不存在则创建)

create database if not exists 数据库名称;

3.洗掉
洗掉数据库:

drop database 数据库名称;

洗掉数据库(判断,如果存在则洗掉)

drop database if exists 数据库名称;

4.使用数据库
查看当前使用的数据库:

select database();

使用数据库:

use 数据库名称;
DDL–操作表
1. 查询表

查询当前数据库下所有表的名称

show tables;

查询表结构

desc 表名称;
2. 创建表
create table 表名(
	栏位名1 资料型别1,
	栏位名2 资料型别2,
	...
	栏位名n 资料型别n
);

注意:最后一行末尾不加逗号,

样例展示:

mysql> create database db1
    -> ;
Query OK, 1 row affected (0.00 sec)

mysql> use db1
Database changed
mysql>
mysql>
mysql> create table tb_user(
    -> id int,
    -> username varchar(20),
    -> password varchar(32)
    -> );
Query OK, 0 rows affected (0.04 sec)

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| tb_user       |
+---------------+
1 row in set (0.00 sec)

mysql> desc tb_user
    -> ;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| password | varchar(32) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql>

资料型别:数值,日期,字符串
在这里插入图片描述

3. 洗掉表

洗掉表:

drop table 表名称;

洗掉表(判断,如果存在则洗掉)

drop table if exists 表名称;

测验样例输出:

mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> use db1; -- 使用数据库
Database changed
mysql> select database(); -- 查看当前使用的数据库
+------------+
| database() |
+------------+
| db1        |
+------------+
1 row in set (0.00 sec)

mysql> show tables;-- 查询当前数据库下所有表的名称
+---------------+
| Tables_in_db1 |
+---------------+
| tb_user       |
+---------------+
1 row in set (0.00 sec)

mysql> desc tb_user;-- 查询表结构
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| password | varchar(32) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql> drop tb_user;-- 洗掉表
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tb_user' at line 1
mysql> drop table tb_user;
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
Empty set (0.00 sec)

4. 修改表

1.修改表名

alter table 表名 rename to 新的表名;

测验样例:

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| hello         |
+---------------+
1 row in set (0.01 sec)

mysql> desc hello;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| pass     | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql> alter table hello rename to user;\
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| user          |
+---------------+
1 row in set (0.00 sec)

2.添加一列:

alter table 表名 add 列名 资料型别;

测验样例:

mysql> alter table user add sex int;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc user;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| pass     | int(11)     | YES  |     | NULL    |       |
| sex      | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

3.修改资料型别:

alter table 表名 modify 列名 新资料型别;

测验样例:

mysql> alter table user modify sex varchar(10);
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc user;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| pass     | int(11)     | YES  |     | NULL    |       |
| sex      | varchar(10) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

4.修改列名和资料型别

alter table 表名 change 列名 新列名 新资料型别;

测验样例:

mysql> desc hello;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| password | varchar(32) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> alter table hello change password pass int;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc hello;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| pass     | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

5.修改字符集

-- 标准语法
alter table 表名 character set 字符集名称;

-- 查看数据库中资料表字符集
show table status from 数据库名 like '资料表名';

6.洗掉列

 alter table 表名 drop 列名;

测验样例:

mysql> alter table hello drop sex;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc hello;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+----
							
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *