关系数据库 mysql

终于开始接触数据库了,今天先介绍  mysql  参考手册:mysql 教程

安装mysql

相比Windows ,Linux下的 mysql安装要简单的多,

Windows是在mysql官网是下载了最新版,然后安装,并且使用了一个图形化工具Navicat 

Ubuntu 是直接 sudo apt-get install mysql-server mysql-client,中间会设置root的密码

进入mysql

Windows的cmd  采用 mysql.exe  -uroot -p 

Ubuntu的bash  采用 mysql  -uroot -p 

使用mysql  

ps  windows 下的sql语句 不区分大小写

    Linux 下的sql语句  区分大小写

第一步  先创建一个本地数据库  create database test1;

             可以使用 语句 show databases;  查看 本地的所有 数据库

第二步  选择这个数据库  use test1;

            可以使用语句  show tables;查看这个数据库中的所有表

第三步  创建数据表 

  Windows 下:create table  book(book_id int unsigned auto_increment,book_name varchar(10) not null,PRIMARY KEY(book_id));

  Linux 下:CREATE TABLE book(book_id INT UNSIGNED AUTO_INCREMENT,book_name VARCHAR(10) NOT NULL,PRIMARY KEY(book_id));
        此时 test1这个数据库 中 就有一张 名为 book 的表  表的字段有book_id  和 book_name

第三步 增 insert into book values(1,"算法");  insert into book values(2,"网络");

           删 delete from book where book_id=1;

          改 update book  set  book_name="数据挖掘"  where book_id=2;

         查   select book_name from book;   select book_name from book where book_id=2;   select * from book;

第四步  删除数据表  truncate  book; 删除表中所有数据  

                                drop table book;删除整张表

第五步  删除数据库  drop database test1;

 

C:\Users\c>mysql.exe -uroot -p
Enter password: **
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.5.61 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.
mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)

mysql> create DATABASE test1;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| test1              |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)

mysql> use test1;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> CREATE TABLE book(book_id INT UNSIGNED AUTO_INCREMENT,book_name VARCHAR(10) NOT NULL,PRIMARY KEY(book_id));
Query OK, 0 rows affected (0.02 sec)

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

mysql> select * from book;
Empty set (0.00 sec)

mysql> insert into book values(1,"算法");
Query OK, 1 row affected (0.01 sec)

mysql> insert into book values(2,"网络");
Query OK, 1 row affected (0.03 sec)

mysql> insert into book values(3,"数据结构");
Query OK, 1 row affected (0.01 sec)

mysql> select * from book;
+---------+-----------+
| book_id | book_name |
+---------+-----------+
|       1 | 算法        |
|       2 | 网络          |
|       3 | 数据结构        |
+---------+-----------+
3 rows in set (0.00 sec)

mysql> delete from book where book_id=1;
Query OK, 1 row affected (0.12 sec)

mysql> select * from book;
+---------+-----------+
| book_id | book_name |
+---------+-----------+
|       2 | 网络          |
|       3 | 数据结构        |
+---------+-----------+
2 rows in set (0.00 sec)

mysql> update book  set  book_name="数据挖掘"  where book_id=3;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from book;
+---------+-----------+
| book_id | book_name |
+---------+-----------+
|       2 | 网络          |
|       3 | 数据挖掘         |
+---------+-----------+
2 rows in set (0.00 sec)

mysql> select book_name from book;
+-----------+
| book_name |
+-----------+
| 网络          |
| 数据挖掘         |
+-----------+
2 rows in set (0.00 sec)

mysql> select book_name from book where book_id=2;
+-----------+
| book_name |
+-----------+
| 网络          |
+-----------+
1 row in set (0.00 sec)

mysql> truncate  book;
Query OK, 0 rows affected (0.01 sec)

mysql> select * from book;
Empty set (0.00 sec)

mysql> drop table book;
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
Empty set (0.00 sec)

mysql> drop database test1;
Query OK, 0 rows affected (0.06 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test              |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)

 

 使用  vs  连接  mysql 

参考:vs连接mysql

需要先对项目 进行配置 将项目属性中的c/c++ ->  常规->附加包含目录->添加 mysql安装路径下的 include  ,这个路径

 以及  链接器  ->常规 -> 附加常规目录 ->添加 mysql 安装路径下的lib,这个路径

之后把 项目的平台  设置成  x86

以及把 mysql下lib的 libmysql.dll 拷贝到 工程的x86/debug下

 之后添加一些必须的头文件和 "mysql.h"

常用MySQL的API接口:
mysql_affected_rows() 返回被最新的UPDATE, DELETE或INSERT查询影响的行数。
mysql_close() 关闭一个服务器连接。
mysql_connect() 连接一个MySQL服务器。该函数不推荐;使用mysql_real_connect()代替。
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_error() 返回最近被调用的MySQL函数的出错消息。  
mysql_escape_string() 用在SQL语句中的字符串的转义特殊字符。  
mysql_fetch_field() 返回下一个表字段的类型。  
mysql_fetch_field_direct () 返回一个表字段的类型,给出一个字段编号。  
mysql_fetch_fields() 返回一个所有字段结构的数组。  
mysql_fetch_lengths() 返回当前行中所有列的长度。  
mysql_fetch_row() 从结果集合中取得下一行。  
mysql_field_seek() 把列光标放在一个指定的列上。  
mysql_field_count() 返回最近查询的结果列的数量。  
mysql_field_tell() 返回用于最后一个mysql_fetch_field()的字段光标的位置。  
mysql_free_result() 释放一个结果集合使用的内存。  
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_query() 执行指定为一个空结尾的字符串的SQL查询。  
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。  
mysql_use_result() 初始化一个一行一行地结果集合的检索。

 

代码示例: 

 


#include <string.h>
#include <stdlib.h>
#include <winsock.h>
//#include <WinSock2.h>
#include <cstdlib>
#include "mysql.h"
#include <iostream>

using namespace std;
#pragma comment(lib, "libmysql")

int main()
{

	const char user[] = "root";
	const char pswd[] = "cc";
	const char host[] = "localhost";
	const char table[] = "testdb";
	unsigned int port = 3306;
	MYSQL mysql;
	MYSQL_RES *result;
	MYSQL_ROW sql_row;
	int res;
	mysql_init(&mysql);
	if (mysql_real_connect(&mysql, host, user, pswd, table, port, NULL, 0))
	{
		mysql_query(&mysql, "SET NAMES GBK"); //设置编码格式
		res = mysql_query(&mysql, "select * from book");//查询
		if (!res)
		{
			result = mysql_store_result(&mysql);
			if (result)
			{
				while (sql_row = mysql_fetch_row(result))//获取具体的数据
				{
					cout << "BOOKNAME:" << sql_row[1] << endl;
					cout << "    SIZE:" << sql_row[2] << endl;
				}
			}
		}
		else
		{
			cout << "query sql failed!" << endl;
		}
	}
	else
	{
		cout << "connect failed!" << endl;
	}
	if (result != NULL)
		mysql_free_result(result);
	mysql_close(&mysql);
	system("pause");
	return 0;

}

 

代码结果:

vs程序 查询数据库  与mysql中的对比 : 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值