mysql相关指令

  1. 前言
  2. QT中连接数据库
  3. linux下C++连接数据库
  4. C++操作MySql数据库常用API函数
  5. 常用命令
    1. 对表结构进行操作
    2. 对表中数据进行操作

前言

​ 数据相关的操作

Mysql安装

第一步:

​ sudo apt update ;

第二步:

​ sudo apt install mysql-server ;

第三步:

1.先进入mysql

sudo mysql

2.在sql命令行输入以下命令回车,你就可以把密码改成 mynewpassword

​ ALTER USER ‘root‘@’localhost’ IDENTIFIED WITH mysql_native_password by ‘mynewpassword’;

即可完成安装

QT链接Mysql

问题 : 在 usr/include/mysql 下找不到mysql.h

输入命令行: sudo apt-get install libmysqlclient-dev 进行安装

教程:

(19条消息) Ubuntu20.04下使用Qt5.12.10连接MySQL8.0.25数据库_夜深人静推公式的博客-CSDN博客_ubuntu下qt连接mysql

sudo /home/shx/Qt5.14.2/5.14.2/gcc_64/bin/qmake “INCLUDEPATH+=/usr/include/mysql” “LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient” mysql.pro

QT中连接数据库

//    //点击查询系统才连接数据库

    QSqlDatabase sql;
    //判断是否已经打开数据库
    if(QSqlDatabase::contains("qt_sql_default_connection"))
        sql = QSqlDatabase::database("qt_sql_default_connection");
    else
        sql =  QSqlDatabase::addDatabase("QMYSQL");

    sql.setHostName("localhost");
    sql.setDatabaseName("Bjpowernode");
    sql.setUserName("root");
    sql.setPassword("shxshx111");

    if(sql.open())
        qDebug() << "success!";
    else
        qDebug()<< "failed!" ;

linux下C++连接数据库

    
    //初始化数据连接变量
    MYSQL *connection = mysql_init(NULL);
    if (connection == nullptr)
    {
        cout << "Erorr:" << mysql_error(connection);
        return;
    }
    //mysql_real_connect 建立数据库连接
    connection = mysql_real_connect(connection, host, user, pwd, datesql_name,0,NULL,0);
    if (connection == nullptr)
    {
        cout << "Erorr:" << mysql_error(connection);
        return ; 
    }    
    //语句查询
    //成功返回0 否则失败
    if (!mysql_query(connection, sql))
    {
        //获取结果集
        result = mysql_use_result(connection);
        //获取整行
        while (row = mysql_fetch_row(result))
        {
            vector<string> rowResult;
                //获取一行的各列
            for (int j = 0; j < mysql_num_fields(result); ++j)
            {
                cout << row[j] << " ";
            }
            cout << endl;
        }
        //释放结果集 
        mysql_free_result(result);
    }
    else
    {
        cout << "query Erorr:" << mysql_error(connection);
        return false;
    }


    //关闭数据库        
    mysql_close(connection);


}



bool Mysql::exeSQL(char* sql)
{    
    //xxx
}

C++操作MySql数据库常用API函数

mysql_query() 执行指定为一个空结尾的字符串的SQL查询。 — 0为成功 否则失败
mysql_close() 关闭一个服务器连接。
mysql_connect() 连接一个MySQL服务器。该函数不推荐;使用mysql_real_connect()代替。 –MYSQL
mysql_error() 返回最近被调用的MySQL函数的出错消息。
mysql_use_result() 初始化一个一行一行地结果集合的检索 —-MYSQL_RES
mysql_fetch_row() 从结果集合中取得下一行。 —MYSQL_ROW
mysql_free_result() 释放一个结果集合使用的内存。

mysql_affected_rows() 返回被最新的UPDATE, DELETE或INSERT查询影响的行数。
mysql_change_user() 改变在一个打开的连接上的用户和数据库。
mysql_create_db() 创建一个数据库。该函数不推荐;而使用SQL命令CREATE DATABASE。
mysql_data_seek() 在一个查询结果集合中搜寻一任意行。
mysql_debug() 用给定字符串做一个DBUG_PUSH。
mysql_drop_db() 抛弃一个数据库。该函数不推荐;而使用SQL命令DROP DATABASE。
mysql_dump_debug_info() 让服务器将调试信息写入日志文件。
mysql_eof() 确定是否已经读到一个结果集合的最后一行。这功能被反对; mysql_errno()或mysql_error()可以相反被使用。
mysql_errno() 返回最近被调用的MySQL函数的出错编号。
mysql_escape_string() 用在SQL语句中的字符串的转义特殊字符。
mysql_fetch_field() 返回下一个表字段的类型。
mysql_fetch_field_direct () 返回一个表字段的类型,给出一个字段编号。
mysql_fetch_fields() 返回一个所有字段结构的数组。
mysql_fetch_lengths() 返回当前行中所有列的长度。
mysql_field_seek() 把列光标放在一个指定的列上。
mysql_field_count() 返回最近查询的结果列的数量。
mysql_field_tell() 返回用于最后一个mysql_fetch_field()的字段光标的位置。
mysql_get_client_info() 返回客户版本信息。
mysql_get_host_info() 返回一个描述连接的字符串。
mysql_get_proto_info() 返回连接使用的协议版本。
mysql_get_server_info() 返回服务器版本号。
mysql_info() 返回关于最近执行得查询的信息。
mysql_init() 获得或初始化一个MYSQL结构。
mysql_insert_id() 返回有前一个查询为一个AUTO_INCREMENT列生成的ID。
mysql_kill() 杀死一个给定的线程。
mysql_list_dbs() 返回匹配一个简单的正则表达式的数据库名。
mysql_list_fields() 返回匹配一个简单的正则表达式的列名。
mysql_list_processes() 返回当前服务器线程的一张表。
mysql_list_tables() 返回匹配一个简单的正则表达式的表名。
mysql_num_fields() 返回一个结果集合重的列的数量。
mysql_num_rows() 返回一个结果集合中的行的数量。
mysql_options() 设置对mysql_connect()的连接选项。
mysql_ping() 检查对服务器的连接是否正在工作,必要时重新连接。
mysql_real_connect() 连接一个MySQL服务器。
mysql_real_query() 执行指定为带计数的字符串的SQL查询。
mysql_reload() 告诉服务器重装授权表。
mysql_row_seek() 搜索在结果集合中的行,使用从mysql_row_tell()返回的值。
mysql_row_tell() 返回行光标位置。
mysql_select_db() 连接一个数据库。
mysql_shutdown() 关掉数据库服务器。
mysql_stat() 返回作为字符串的服务器状态。
mysql_store_result() 检索一个完整的结果集合给客户。
mysql_thread_id() 返回当前线程的ID。

常用命令

1.进入数据库 mysql -u root -p ; 输入密码进入

2.展示数据库 show databases;

3.使用数据库 use databases;

4.查看使用的是哪个数据库 select database();

5.查看mysql数据库版本号 select version();

6.导入资源

​ 6.1 进入数据库 mysql -u root -p ; 输入密码进入

​ 6.2 创建数据库 create database xxx ;

​ 6.3 进入数据库 use xxx;

​ 6.4 导入资源 source D:/XX/XXXX/xxx.sql ; (路径名)

7.查看表格 show tables;

对表结构进行操作

0.创建表格

create table tb_emp1 ( id INT, name VARCHAR(25),deptId INT);

1:删除列

ALTER TABLE 【表名】 DROP 【列名】

2:增加列

ALTER TABLE 【表名】 ADD 【列名】 【类型】

3:重命名列

ALTER TABLE 【表名】 CHANGE 【列名】【新名】 

4:修改表字段

alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];

5:查询表的字段信息

desc 表名称;

6:创建索引

ALTER TABLE tbl_name ADD INDEX index_name (column list);

7:删除索引

ALTER TABLE tbl_name DROP INDEX index_name (column list);

8:修改表名

ALTER TABLE tbl_name rename new_tbl_name;

对表中数据进行操作

9.表中添加数据

insert into book(name, author) value ('红楼梦', '曹雪芹');

10.表中删除数据

delete from 表名 where 查询条件;

11.表中修改数据

update 表名 set 列名1=新数据1,列名2=新数据2列名3=新数据3 where 查询条件

12.表中查询数据

    select * from book;  (where,order by, group by,in , between and)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 351134995@qq.com

×

喜欢就点赞,疼爱就打赏