美文网首页
深入浅出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