☰
MySQL库操作
2026/10/21 2:36:03 网站建设 项目流程

1.SQL语言基础

1.1 SQL简介

  • SQL:结构化查询语言(Structured Query Language),在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。使用SQL语句,程序员和数据库管理员可以完成如下的任务。
  • 改变数据库的结构。
  • 更改系统的安全设置。
  • 增加用户对数据库或表的许可权限。

  • 在数据库中检索需要的信息。

  • 对数据库的信息进行更新。

    1.2 SQL语句分类
    • MySQL致力于支持全套ANSI/ISO SQL标准。在MySQL数据库中,SQL语句主要可以划分为以下几类。
    • DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引)的操作,如:CREATE、DROP、ALTER、RENAME、TRUNCATE等。
    • DML(Data Manipulation Language):数据操作语言,定义对数据库记录的操作,如:INSERT、DELETE、UPDATE、SELECT等。

      • DCL(Data Control Language):数据控制语言,定义对数据库、表、字段、用户的访问权限和安全级别,如:
      • GRANT、REVOKE等
      • Transaction Control:事务控制
      • GRANT、REVOKE等
      • COMMIT、ROLLBACK、SAVEPOINT等

        1.3 SQL语句的书写规范

        在数据库系统中,SQL语句不区分大小写(建议用大写),但字符串常量区分大小写

        SQL语句可单行或多行书写,以“;”结尾。
        关键词不能跨多行或简写。
        用空格和缩进来提高语句的可读性。
        注释:/* */和//为多行注释
        --和#为单行注释

        2 . 数据库操作

        2.1数据库的登录及退出

        准备工作:

        [root@server~]# systemctl start mysqld
        #必须先启动服务否则报错,如下所述报错信息:
        [root@server~]# mysql -u root -p
        Enterpassword:
        (报错)ERROR2002(HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

        登录格式:

        mysql-u用户名-h服务器的主机地址-p密码
        分析:
        -u后面跟登录数据库的用户名,这里使用root
        -h后面的参数是服务器的主机地址,在这里客户端和服务器在同一台机器上,所以输入 localhost 或者IP地址
        -p后面是用户登录密码,注意:-p和密码之间没有空格。如果出现空格,系统将不会把后面 的字符串当成密码来对待,没有密码时不写
        登录信息如下:
        [root@server~]# mysql -uroot -p
        Enterpassword:
        Welcometothe MySQL monitor. Commandsend with;or\g.
        Your MySQLconnectionidis16
        Serverversion:8.0.37MySQL CommunityServer-GPL
        Copyright(c)2000,2024, Oracleand/or its affiliates.
        Oracleisa registered trademark of Oracle Corporationand/or its
        affiliates. Other names may be trademarks of their respective
        owners.
        Type'help;'or'\h'for help. Type'\c'toclearthecurrentinput statement.
        显示信息解释:
        Commands end with; or\g:mysql命令是以分号(;)或“\g”来结束的,遇到这个结束符就开 始执行命令
        Your MySQL connection id is 22:数据库的连接次数
        Server version: 8.0.37 Source distribution: 版本
        Type 'help;' or '\h' for help:输入”help;“或者”\h“可以看到帮助信息
        Type '\c' to clear the current input statement:表示遇到”\c“就清除前面的命令,注意不是 清屏
        退出:exit quit \q
        #注意:带有密码登录,会有警告,提示不安全
        [root@server~]# mysql -uroot -p123456
        mysql:[Warning]Usingapassword onthe command line interface can be insecure.
        Welcometothe MySQL monitor. Commandsend with;or\g.
        Your MySQLconnectionidis17
        Serverversion:8.0.37MySQL CommunityServer-GPL
        Copyright(c)2000,2024, Oracleand/or its affiliates.
        Oracleisa registered trademark of Oracle Corporationand/or its
        affiliates. Other names may be trademarks of their respective
        owners.
        Type'help;'or'\h'for help. Type'\c'toclearthecurrentinput statement.
        2.2查看数据库
        格式:
        mysql>show databases[like条件];#注意有s
        +-----------------------------+
        |Database|
        +-----------------------------+
        |information_schema|
        |mysql|
        |performance_schema|
        |sys|
        +-----------------------------+
        4rowsin set(0.00sec)

        3.创建数据库

        格式:

        create database数据库名

        实例:

        mysql>create databasetestdb;
        QueryOK,1rowaffected(0.00sec)
        mysql>show databases;
        +------------------------------+
        |Database|
        +------------------------------+
        |information_schema|
        |mysql|
        |performance_schema|
        |sys|
        |testdb|
        +------------------------------+
        若数据库已存在,则报错
        mysql>create databasetestdb;
        ERROR1007(HY000): Can't create database 'testdb'; database exists
        查看创建数据库的语句:
        格式
        show create database数据库名
        实例
        mysql>show create databasetestdb;
        +----------+---------------------------------------------------------------------
        -------------------------------------------------------------+
        |Database|Create Database
        |
        +----------+---------------------------------------------------------------------
        -------------------------------------------------------------+
        |testdb|CREATE DATABASE`testdb`/*!40100 DEFAULT CHARACTER SET utf8mb4
        COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */|
        +----------+---------------------------------------------------------------------
        -------------------------------------------------------------+
        1row in set(0.00sec)
        #上述表格因为内容太长,出现了折行显示
        #可以在语句末尾加上\G
        mysql>show create databasetestdb\G #结尾无分号
        ***************************1.row***************************
        Database: testdb
        Create Database:CREATE DATABASE`testdb`/*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci *//*!80016DEFAULTENCRYPTION='N' */
        #分析:
        #上述显示创建数据库语句的内容可看做3段内容
        # CREATE DATABASE `testdb`:表示创建数据库testdb
        # /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */:表示 注释内容,显示字符集采用utf8mb4方案,一个字符需要1 ~ 4个字节。可以存储一些emoji表情; utf8mb4_0900_ai_ci表示字符比较规则即ai为不区分重音,ci为不区分大小写
        # /*!80016 DEFAULT ENCRYPTION='N' */表示数据库未加密
        注意:在创建数据库或查看创建数据库语句时,database没有s
        mysql中的反引号
        上例中查看的sql语句有反引号,其作用可以避免一些与SQL语法冲突的问题,同时可以使代码更加 规范化和易读性更强
        #创建一个名字为database的数据库,系统会认为database是关键词,所以会报错
        mysql>create database database;
        ERROR1064(42000): You have an errorinyourSQLsyntax;checkthe manual that correspondstoyour MySQLserverversionfortherightsyntaxto usenear
        'database'atline1
        #加上``反引号即可解决
        mysql>create database`database`;
        QueryOK,1rowaffected(0.01sec)
        注意:
        • 只有保留关键字和特殊字符需要使用反引号,普通的表名和列名不需要
        • 数据类型之间可以加或者不加反引号,但为了代码规范化,建议加上
        • 不推荐使用关键字作为数据库或表名

        4.切换数据库

        • 查看当前使用的数据库
        • 格式:
        select database();
        • 示例:
        mysql>select database();
        +--------------+
        |database()|
        +--------------+
        |NULL|
        +--------------+
        • 注意:当前没有使用数据库,则显示空
        • 选择数据库
        • 格式
        use数据库名
        • 实例
        mysql>usetestdb;#切换数据库可不加;号
        Database changed
        mysql>select database();#再次查看
        +---------------+
        |database()|
        +---------------+
        |testdb|
        +---------------+

        5.删除数据库

        • 格式

        drop database数据库名

        • 实例
        mysql>drop databasetestdb;
        QueryOK,0rows affected(0.01sec)
        mysql>show databases;
        +------------------------------+
        |Database|
        +------------------------------+
        |information_schema|
        |mysql|
        |performance_schema|
        |sys|
        +------------------------------+

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询