终于开始接触数据库了,今天先介绍 mysql 参考手册:mysql 教程
相比Windows ,Linux下的 mysql安装要简单的多,
Windows是在mysql官网是下载了最新版,然后安装,并且使用了一个图形化工具Navicat
Ubuntu 是直接 sudo apt-get install mysql-server mysql-client,中间会设置root的密码
Windows的cmd 采用 mysql.exe -uroot -p
Ubuntu的bash 采用 mysql -uroot -p
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
需要先对项目 进行配置 将项目属性中的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
#include
#include
//#include
#include
#include "mysql.h"
#include
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中的对比 :