六、数据表操作(对表的增删查改)

数据表操作

创建数据表

普通创建表

基本语法:create table 表名(字段名 字段类型 [字段属性], 字段名 字段类型 [字段属性],…) [表选项]

  

以上错误说明:表必须放到对应的数据库下:有两种方式可以将表挂入到指定的数据库下

1 在数据表名字前面加上数据库名字,用.”连接即可:数据库.数据表

 

2、在创建数据表之前先进入到某个具体的数据库即可:use 数据库名字;

 

表选项:与数据库选项类似

Engine:存储引擎,mysql提供的具体存储数据的方式,默认有一个innodb5.5以前默认是myisam

Charset:字符集,只对当前自己表有效(级别比数据库高)

Collate:校对集

 

复制已有表结构

从已经存在的表复制一份(只复制结构:如果表中有数据不复制)

基本语法:create table 新表名 like 表名; //只要使用数据库.表名,就可以在任何数据库下访问其他数据库的表名

 

显示数据表

每当一张数据表创建,那么就会在对应的数据库下创建一些文件(与存储引擎有关)

 

注意:这个结构文件来自于innodb存储引擎,innodb存储引擎所有的文件都存储在外部的ibdata文件中

 

 

显示所有表

基本语法:show tables;

 

 

匹配显示表

基本语法:show tables like  ‘匹配模式’;

 

显示表结构

本质含义:显示表中所包含的字段信息(名字,类型,属性等)

 

Describe 表名

Desc 表名

show columns from 表名

 

显示表创建语句

查看数据表创建时的语句:此语句看到的结果已经不是用户之前自己输入的。

基本语法:show create table 表名;

 

Mysql中有多种语句结束符

;\g所表示的效果是一样的,都是字段在上排横着,下面跟对应的数据

\G字段在左侧竖着,数据在右侧横着

 

设置表属性

表属性指的就是表选项:enginecharsetcollate

基本语法:alter table 表名 表选项 [=] ;

 

 

注意:如果数据库已经确定了,里面有很多数据了,不要轻易修改表选项(字符集影响不大)

 

修改表结构

修改表名:rename table 旧表名 to 新表名

 

 

修改表选项:alter table 表名 表选项 [=] 新值

 

 

新增字段:alter table 表名 add [column] 新字段名 列类型 [列属性] [位置first/after 字段名]

 

字段位置:字段想要存放的位置

First:在某某之前(最前面),第一个字段

After 字段名:放在某个具体的字段之后(默认的)

 

修改字段名:alter table 表名 change 旧字段名 新字段名 字段类型 [列属性] [新位置]

 

修改字段类型(属性):alter table 表名 modify 字段名 新类型 [新属性] [新位置]

 

删除字段:alter table 表名 drop 字段名

 

删除表结构

基础语法:drop table 表名[,表名2…],可以同时删除多个数据表

 

 

批量删除表

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答您的问题。 首先,您需要读取`saving`文件中的用户名,并将其存储到一个`vector<string>`中,以便后续使用。这可以通过以下代码实现: ```c++ #include <iostream> #include <fstream> #include <vector> #include <string> using namespace std; int main() { vector<string> usernames; string username; ifstream fin("saving.txt"); while (fin >> username) { usernames.push_back(username); } fin.close(); // 现在usernames中存储了所有的用户名 return 0; } ``` 接下来,您需要连接到MySQL数据库。这可以通过使用MySQL C++ Connector库实现。您可以从MySQL官网下载并安装这个库。在连接数据库之前,您需要先创建一个数据库和一个用户名和密码,以便于连接。假设您的数据库名为`mydb`,用户名为`myuser`,密码为`mypassword`,则可以通过以下代码连接到MySQL数据库: ```c++ #include <iostream> #include <string> #include <mysql/mysql.h> using namespace std; int main() { MYSQL *conn; conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "myuser", "mypassword", "mydb", 0, NULL, 0)) { cout << "Error connecting to MySQL: " << mysql_error(conn) << endl; return 1; } // 现在已经成功连接到MySQL数据库 return 0; } ``` 现在,您已经成功连接到MySQL数据库,接下来您需要创建一个,以便于存储每个用户名对应的数据。假设您的名为`mytable`,包含两个字段`name`和`data`,则可以通过以下代码创建这个: ```c++ #include <iostream> #include <string> #include <mysql/mysql.h> using namespace std; int main() { MYSQL *conn; conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "myuser", "mypassword", "mydb", 0, NULL, 0)) { cout << "Error connecting to MySQL: " << mysql_error(conn) << endl; return 1; } if (mysql_query(conn, "CREATE TABLE mytable (name VARCHAR(50), data TEXT)")) { cout << "Error creating table: " << mysql_error(conn) << endl; return 1; } // 现在已经成功创建了一个名为mytable的 return 0; } ``` 接下来,您需要实现增删查改操作。假设您已经从`saving`文件中读取了所有的用户名并存储在`usernames`中,您可以通过以下代码实现向`mytable`中插入数据的操作: ```c++ #include <iostream> #include <string> #include <mysql/mysql.h> using namespace std; int main() { MYSQL *conn; conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "myuser", "mypassword", "mydb", 0, NULL, 0)) { cout << "Error connecting to MySQL: " << mysql_error(conn) << endl; return 1; } for (int i = 0; i < usernames.size(); i++) { string username = usernames[i]; string data = "some data for " + username; string query = "INSERT INTO mytable (name, data) VALUES ('" + username + "', '" + data + "')"; if (mysql_query(conn, query.c_str())) { cout << "Error inserting data: " << mysql_error(conn) << endl; return 1; } } // 现在已经成功向mytable中插入了数据 return 0; } ``` 同样地,您可以使用类似的代码实现删除、查询和修改的操作。例如,以下代码实现了根据用户名删除中数据的操作: ```c++ #include <iostream> #include <string> #include <mysql/mysql.h> using namespace std; int main() { MYSQL *conn; conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "myuser", "mypassword", "mydb", 0, NULL, 0)) { cout << "Error connecting to MySQL: " << mysql_error(conn) << endl; return 1; } for (int i = 0; i < usernames.size(); i++) { string username = usernames[i]; string query = "DELETE FROM mytable WHERE name = '" + username + "'"; if (mysql_query(conn, query.c_str())) { cout << "Error deleting data: " << mysql_error(conn) << endl; return 1; } } // 现在已经成功从mytable中删除了数据 return 0; } ``` 请注意,这里的代码仅供参考,实际操作中还需要考虑许多其他因素,例如错误处理、数据类型转换等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值