当前位置:网站首页>MySQL入门尝鲜
MySQL入门尝鲜
2022-07-07 11:05:00 【MirrorYuChen】
1.MySQL安装
具体安装和配置MySQL教程可以参考资料[1]。
2.数据库查询和创建
2.1 数据库查询
通过下面的查询指令,就可以查询到已经创建的数据库
>> show databases;

2.2 数据库创建
数据库创建可以使用下面的命令行来实现:
>> create database [数据库名]
再次使用查询指令,可以看到已经创建的数据库。
2.3 数据库删除
数据库删除可以使用下面的命令行来实现:
>> drop database [数据库名]
再次使用查询指令,可以看到已经删除数据库成功。
2.4 数据库切换
当我们创建表的时候,需要先指定数据库,然后才能进行创建,可以通过下面指令来指定数据库:
>> use [数据库名];

3.表创建、删除、插入和查询
3.1 表创建
表创建的基本语法为:
create table [表名] (
column1 datatype,
column2 datatype,
...
columnN datatype,
primary key(one or more colums)
);
举个例子,创建一个student表:
create table student (
id int not null,
name varchar(20) not null,
gender varchar(20) not null,
age int not null,
primary key(`id`)
);
后面部分是对当前字段的约束,如not null表示当前字段不能为NULL,primary key用于设置表的主键。
可以用下面指令来查询当前创建表的结构:
>> desc [表名]

如果要对表进行重命名,可以使用如下指令:
>> rename [旧表名] to [新表名];
3.2 表删除
表删除很简单,可以使用如下指令
>> drop table [表名];
3.3 表插入
表插入使用如下指令:
>> insert into [表名] values ([表值]);
例如,前面创建的表student,向里面插入两行数据:
>> insert into student values (1, '张三', '男', 20);
>> insert into student values (2, '李四', '男', 21);
3.4 表查询
表查询可以使用如下指令:
>> select * from [表名];

3.5 表删除
删除表中数据可以使用如下指令:
>> delete from [表名] where [删除条件]
这里为了后续实验,先插入了一行数据:王二麻子,然后删除这行数据。
4. C++代码来查询数据库
4.1 MySQL库配置
如果熟悉OpenCV配置过程,这个就很简单,主要分三个步骤:
(1) 将库dll路径添加到系统环境变量,添加完毕后要重启一下电脑,系统变量才会生效:
(2) 创建一个visual studio工程,注意要切换到x64环境,添加个main.cpp,配置MySQL的include位置:
(3) 配置MySQL的lib位置:
(4) 配置系统需要链接的库:
4.2 测试用例
#include <mysql.h>
#include <stdio.h>
int main() {
const char* host = "127.0.0.1";
const char* user = "root"; // 这个改成自己的用户名
const char* passw = "123456"; // 这个改成自己的密码
const char* db = "school"; // 这个改成自己要访问数据库
MYSQL mysql;
// 1.初始化数据库
mysql_init(&mysql);
// 2.设置字符编码
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
// 3.连接数据库
if (mysql_real_connect(&mysql, host, user, passw, db, 3306, NULL, 0) == NULL) {
printf("错误原因:%s\n", mysql_error(&mysql));
printf("连接失败!\n");
exit(-1);
}
// 4.查询结果
int ret = mysql_query(&mysql, "select * from student;"); // 这个要改成要访问的表
printf("ret: %d.\n", ret);
// 5.获取结果
MYSQL_RES* res = mysql_store_result(&mysql);
// 6.打印查询到的结果
MYSQL_ROW row;
while (row = mysql_fetch_row(res)) {
printf("%s ", row[0]); // ID
printf("%s ", row[1]); // Name
printf("%s ", row[2]); // gender
printf("%s \n", row[3]); // age
}
// 7.释放结果集
mysql_free_result(res);
// 8.关闭数据库
mysql_close(&mysql);
system("pause");
return 0;
}
运行结果如下,可以看到跟使用命令行查询得到相同结果:
Enjoy!
参考资料
- [1] C/C++服务器开发
- [2] SQL CREATE TABLE:创建表
边栏推荐
- Test next summary
- Leetcode brush question: binary tree 24 (the nearest common ancestor of binary tree)
- Importance of database security
- Day26 IP query items
- Cmu15445 (fall 2019) project 2 - hash table details
- Ip2long and long2ip analysis
- 达晨与小米投的凌云光上市:市值153亿 为机器植入眼睛和大脑
- 环境配置篇
- Analysis of DHCP dynamic host setting protocol
- About the problem of APP flash back after appium starts the app - (solved)
猜你喜欢

如何将 @Transactional 事务注解运用到炉火纯青?
![[untitled]](/img/6c/df2ebb3e39d1e47b8dd74cfdddbb06.gif)
[untitled]

Leetcode skimming: binary tree 23 (mode in binary search tree)

Star Enterprise Purdue technology layoffs: Tencent Sequoia was a shareholder who raised more than 1billion

明星企业普渡科技大裁员:曾募资超10亿 腾讯红杉是股东

聊聊Redis缓存4种集群方案、及优缺点对比

Aosikang biological sprint scientific innovation board of Hillhouse Investment: annual revenue of 450million yuan, lost cooperation with kangxinuo

Go语言学习笔记-结构体(Struct)

通过Keil如何查看MCU的RAM与ROM使用情况

Leetcode brush questions: binary tree 19 (merge binary tree)
随机推荐
Leetcode skimming: binary tree 23 (mode in binary search tree)
Day26 IP query items
Conversion from non partitioned table to partitioned table and precautions
Analysis of DHCP dynamic host setting protocol
【学习笔记】AGC010
Practical example of propeller easydl: automatic scratch recognition of industrial parts
Ip2long and long2ip analysis
Shortcut key of Bash
- Oui. Migration entièrement automatisée de la Sous - base de données des tableaux d'effets sous net
2022 practice questions and mock examination of the third batch of Guangdong Provincial Safety Officer a certificate (main person in charge)
Query whether a field has an index with MySQL
基于鲲鹏原生安全,打造安全可信的计算平台
抓细抓实抓好安全生产各项工作 全力确保人民群众生命财产安全
Talk about four cluster schemes of redis cache, and their advantages and disadvantages
关于 appium 如何关闭 app (已解决)
.Net下极限生产力之efcore分表分库全自动化迁移CodeFirst
layer弹出层的关闭问题
How does MySQL create, delete, and view indexes?
MySQL导入SQL文件及常用命令
MySQL importing SQL files and common commands