美文网首页
深入浅出MySQL(一)

深入浅出MySQL(一)

作者: 憨憨二师兄 | 来源:发表于2020-03-30 22:49 被阅读0次

什么是MySQL

提到MySQL,首先要了解一下 什么是数据库:

什么是数据库

数据库(Database),顾名思义 :存储数据的仓库

数据库(Database)是按照数据结构来组织,存储和管理数据的仓库

常见的数据库

常见的数据库有 Oracle,DB2,SQL Server Postgre SQL MySQL
其中MySQL是一个最流行的关系型数据库管理系统之一

关系型数据库的定义:采用了关系模型来组织数据的数据库
关系模型指的就是二维表格模型,也就是表结构。如同Excel一样 有行有列
在一张表中有字段(二维表中的列),记录(二维表中的行),域(字段的取值范围)等等 构成关系模式

1:MySQL默认的端口号是()?
A: 80
B: 21
C: 22
D: 3306

答案:D.

3306是MySQL默认的端口号
端口80是Http常用端口
21端口用于FTP(File Transfer Protocol )也就是文件传输协议
22端口 是ssh 常用端口

2:下列有关数据库说法正确的是()?
A: MySQL属于关系型数据库
B: MySQL是按照数据结构来组织,存储和管理数据的仓库
C: MySQL属于网状型数据库
D: MySQL属于树状型数据库

答案:AB

数据库有关相关术语

  1. 数据库系统(Database System):数据库和管理软件组成的系统简称DBS
  2. 数据库(Database)
  3. 数据库管理系统(Database Management System):一种操纵和管理数据库的大型软件 简称DBMS 如: Navicat
  4. 数据库管理员(Database Administrator):从事管理数据库的相关人员 简称DBA
  5. SQL语言(Structured Query Language):结构化查询语言是一种数据库专用语言
  6. DDL:数据库定义语言
  7. DML:数据库操作语言 (数据的增删改操作)
  8. DQL:数据库查询语言(数据的查询操作)
  9. DCL:数据库控制语言 如:权限的控制

MySQL相关基础操作

MySQL的登陆和退出的及常用命令

MySQl的配置文件
在windows下 my.ini 文件 是MySQL的配置文件

MySQL的登陆

方式1:
以管理员身份运行cmd
使用net start 和 net stop 可以开启和关闭 services.msc下的任何服务
在命令行输入net start mysql57 (MySQL 5.7版本)打开mysql 服务后 输入命令 :

 mysql -h localhost -P 3306  -u root -p   

其中-h 代表登陆ip -P(大写) 代表端口号 -u代表用户名称 -p代表密码 点击回车 后返回password:
输入密码 即可登陆 (我的用户名称为root 密码同样设置成了root)

方式2:

mysql  -u root -proot 

直接输入用户名和密码登陆,这种方式同样可以登陆,其中-h 和 -P可以不写注意-p后面不能有空格要跟写密码

  1. MySQL的退出
    1: quit
    2: exit
    3: \q

  2. MySQL的常用基本命令

一:获取版本信息:

mysql  - V 或者 mysql -- version
mysql  Ver 14.14 Distrib 5.7.22, for Win64 (x86_64)

又或者 :在进入MySQL后 使用 :

select version();
    +------------+
    | version()  |
    +------------+
    | 5.7.22-log |
    +------------+

同样可以 获取版本的信息

二:查看所有的数据库:

在进入mysql之后 使用

show databases;
mysql -uroot -proot

show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | exjrh              |
    | imooc              |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+

三:在登陆同时 打开一个数据库:

mysql -u root -proot -D db-name  或
mysql -u root -p -D db-name 返回password 再输入密码 或
mysql -u root -proot --database db-name

四:查看当前使用的数据库:

select database();

如:现在先查看我当前mysql下的数据库

show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | exjrh              |
    | imooc              |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+
quit

退出后 使用命令:

mysql -u root -proot --database test

在进入的同时 使用了数据库 test 然后 我们来查看当前使用的数据库:

select database();
    +------------+
    | database() |
    +------------+
    | test       |
    +------------+

可以看到 我们当前使用的数据库为 test 数据库

五:获取当前用户信息

进入mysql后使用:

select user();
    +----------------+
    | user()         |
    +----------------+
    | root@localhost |
    +----------------+

六:获取当前时间

select now();
    +---------------------+
    | now()               |
    +---------------------+
    | 2018-12-11 11:40:01 |
    +---------------------+

MySQL登陆信息:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.7.22-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

其中:

  1. Commands end with ; or \g.
    一个默认的命令行 是由 ;或 \g 来结束的

  2. Type 'help;' or '\h' for help.
    可以使用 help 或 \h 或 ? 加上相关的关键字 来查看手册
    如:查询 like 关键字

help  like;
    mysql> help like;
    Name: 'LIKE'
    Description:
    Syntax:
    expr LIKE pat [ESCAPE 'escape_char']
    
    Pattern matching using an SQL pattern. Returns 1 (TRUE) or 0 (FALSE).
    If either expr or pat is NULL, the result is NULL.
    
    The pattern need not be a literal string. For example, it can be
    specified as a string expression or table column.
    
    URL: http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html
    
    Examples:
    mysql> SELECT 'David!' LIKE 'David_';
            -> 1
    mysql> SELECT 'David!' LIKE '%D%v%';
            -> 1
  1. Type '\c' to clear the current input statement.
    \c 可以取消当前命令的执行
    如:
    mysql> show databases \c
    mysql>

在语句 show databases 后 加上 \c 取消了语句的执行 (注意 不能加 ‘ ;’ ) 直接开启新的命令行

数据库相关操作

  1. 注释
    SQL语句的注释:
    可以用 # 或者 -- 来书写注释

  2. 创建数据库
    创建数据库使用操作:

 CREATE {DATABASE|SCHEMA} [ IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET[=] charset;

其中{}内容为必写项,[] 内容为选写项

首先基本的创建方式为:

create database db_name;   或

create schema db_name;    

if not exists 可选写
如果 已有数据库test 再使用命令 :

create schema test;

则会报错,可以加入 语句 if not exists 来防止重复创建带来的报错信息

create database if not exists test;
mysql> create schema if not exists test;
Query OK, 1 row affected, 1 warning (0.01 sec)

可以看到 Query Ok , 但是出现了一个 warning

使用语句 :

show warings;   

可以查看上一步操作产生的警告信息;

    mysql> show warnings;
    +-------+------+-----------------------------------------------+
    | Level | Code | Message                                       |
    +-------+------+-----------------------------------------------+
    | Note  | 1007 | Can't create database 'test'; database exists |
    +-------+------+-----------------------------------------------+

而对于 [default] character set [=] charset则是创建数据库的时候对其指定编码格式

如:

create schema if not exists test02 default character set='utf8';  或

create database  test03  character set 'gbk';

除了上述内容以外,还有应该注意的规范问题:
db_name 应为有意义的名称 不可使用MySQL中的关键字来作为数据库名称
如果名称为MySQL中的关键字 应加上 `` (反引号)
如:

    mysql> create database `database`;
    
    Query OK, 1 row affected (0.01 sec)

使用了关键字 database 作为创建的数据库名称 使用反引号 创建成功,否则将创建失败。不到万不得已 最好不要使用关键字 作为数据库,数据表,字段名等,当然上面创建的数据库的名称为database这一举动也是不可取的。

  1. 查看服务器下的数据库及详细信息
    查看当前服务器下所有的数据库
show databases;   或

show schemas;  
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | database           |
    | exjrh              |
    | imooc              |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+

查看指定的数据库的详细信息

主要用于查看编码方式

show create database db_name;     

例如:
首先创建数据库:

create  schema if not exists test02 default character set= 'utf8';  指定编码 为 utf8

查看test02数据库

show create database test02;
    mysql> create schema if not exists test02 default character set='utf8';
    Query OK, 1 row affected (0.01 sec)
    
    mysql> show create database test02;
    +----------+-----------------------------------------------------------------+
    | Database | Create Database                                                 |
    +----------+-----------------------------------------------------------------+
    | test02   | CREATE DATABASE `test02` /*!40100 DEFAULT CHARACTER SET utf8 */ |
    +----------+-----------------------------------------------------------------+
    1 row in set (0.01 sec)

可以看到 编码方式为 utf8 其实创建的默认编码格式就是 utf8

  1. 修改数据库

修改数据库的编码方式

ALTER DATABASE db_name DEFAULT CHARACET SET = charset;

test02数据库编码方式为 utf8,将其修改为 gbk 编码格式

alter database test02 default character set='gbk';

再来查看 test02数据库的详细信息;

show  create database test02;
    mysql> alter database test02 default character set='gbk';
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show create database test02;
    +----------+----------------------------------------------------------------+
    | Database | Create Database                                                |
    +----------+----------------------------------------------------------------+
    | test02   | CREATE DATABASE `test02` /*!40100 DEFAULT CHARACTER SET gbk */ |
    +----------+----------------------------------------------------------------+

可以看到 test02 数据库的编码格式 被修改成了 gbk

  1. 打开指定的数据库
use db_name;

如:

use test02;
    mysql> use test02;
    Database changed

通过 use 可以进行 指定的数据库 并操作

  1. 得到当前正在使用的数据库
select  database()|schema();

如:首先使用 数据库 test;

use test;

然后获取(得到)当前正在使用的是哪一个数据库

select database();
    mysql> use test;
    Database changed
    mysql> select database();
    +------------+
    | database() |
    +------------+
    | test       |
    +------------+

可以看到 返回了 我正在使用的数据库 test;

  1. 删除指定的数据库
DROP DATABASE [IF EXISTS] db_name;

如:删除test02数据库

drop database test02;

再使用 :

show databases; 查看
    mysql> drop database test02;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | database           |
    | exjrh              |
    | imooc              |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+

可以看到 test02 数据库已经被删除了

再次删除test02 则会报错

同理可以使用 if exists 语句 消除产生的错误

drop database if exists test02;

相关文章

网友评论

      本文标题:深入浅出MySQL(一)

      本文链接:https://www.haomeiwen.com/subject/tlkbuhtx.html