35数据库的增删改查

数据库操作

基本命令 数据库/表增删

create database  数据库名

drop database  数据库名

create table   表名 (字段)

drop  table     表名

基本命令  修改表

alter  table  表名  drop  column  列名

alter  table  表名  add   column  列名  类型

alter  table  表名  change  列名   新列名  类型

基本命令  数据增删改查

insert  into  表名(.., ..., ...)  values(..., ..., ...)

delete from  表名    where  elemX=...

update 表名 set  elemY=...  where elemX=...

select  [列名,  ...]  from  表名  (where elemX=...)

数据库授权访问

grant  [select,...],  on   数据库名.表名  to  用户名@”%”   identified  by  “密码”

flush privileges

1: 数据库名, 表名 可以用 *.* ,   数据库.*

2: @localhost    只允许从本地登陆操作

3:  grant all privileges on ...  给予所有权限

数据库收回授权

revoke [delete, ...] on 数据库名.表名 from 用户名

#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>

#define HOST "localhost"
#define USER "root"
#define PASS "rowe"
#define DBNAME "linux"

void Usage()
{
	printf("Usage:\n");
	printf("\tadd:insert data to table\n");
	printf("\tdelete:delete data from table\n");
	printf("\tupdate:modify data in table\n");
	printf("\tselect:show datas in table\n");
	printf("\n");
}

void TestMysql()
{
	int iRet;
	MYSQL conn;

	//step1:init conn
	mysql_init(&conn);

	//step2:connect to mysql server
	if (!mysql_real_connect(&conn, HOST, USER, PASS, DBNAME, 0, NULL, 0))
	{
		printf("connect database failed:%s\n", mysql_error(&conn));
		return;
	}
	Usage();
	char szCmd[100];

	char sql[1000];
	char args[3][40];

	while (1)
	{
		fprintf(stderr, "->");
		scanf("%s", szCmd);

		if (!strcmp(szCmd, "add"))
		{
			fprintf(stderr, "input[name,sex,mobaile]:");
			scanf("%s%s%s", args[0], args[1], args[2]);

			//construct sql string
			sprintf(sql, "insert into student(name ,sex,mobile) value(‘%s‘,‘%s‘,‘%s‘)", args[0], args[1], args[2]);
		}
		else if (!strcmp(szCmd, "delete"))
		{
			fprintf(stderr, "input[name]:");
			scanf("%s", args[0]);

			//construct sql string
			sprintf(sql, "delete from student where=‘%s‘", args[0]);
		}
		else if (!strcmp(szCmd, "update"))
		{
			fprintf(stderr, "input[name,column_name,column_value]:");
			scanf("%s%s%s", args[0], args[1], args[2]);

			//construct sql string
			sprintf(sql, "update student set %s=‘%s‘ where name=‘%s‘", args[1], args[2]);
		}
		else if (!strcmp(szCmd, "select"))
		{
			fprintf(stderr, "input[name]:");
			scanf("%s", args[0]);

			// construct sql string
			if (!strcmp(args[0], "*"))
			{
				sprintf(sql, "select * from student");
			}
			else
			{
				sprintf(sql, "select * from student where name=‘%s‘", args[0]);
			}
		}
		else if (!strcmp(szCmd, "exit"))
		{
			break;
		}
		else
		{
			printf("Command not found\n");
			Usage();
			continue;
		}
		iRet = mysql_real_query(&conn, sql, strlen(sql));
		if (iRet)
		{
			printf("sql:%s\n", sql);
			printf("Failed:%s\n", mysql_error(&conn));
			continue;
		}

		printf("Excute sucess!\n");

		//printf select result
		if (!strcmp(szCmd, "select"))
		{
			char fmt[] = "%4s %8s %8s %8s\n";

			printf("=============================\n");
			printf(fmt,"id", "name", "sex", "mobile");
			printf("-------------------------\n");

			MYSQL_RES *res = mysql_use_result(&conn);
			MYSQL_ROW row;//char **
			while ((row = mysql_fetch_row(res)) != NULL)
			{
				printf(fmt, row[0], row[1], row[2], row[3]);
			}
			printf("=============================\n");
		}
		mysql_close(&conn);
	}
}

int main()
{
	TestMysql();
	return 0;
}

  

原文地址:https://www.cnblogs.com/gd-luojialin/p/10371610.html

时间: 2024-11-08 06:17:25

35数据库的增删改查的相关文章

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas

ADO.NET实现对SQL Server数据库的增删改查

了解了上一篇的ADO.NET简介,我们就可以来对数据库进行增删改查等基本操作了!下面是每种操作的具体实现. 先在自定义类的头部定义好数据库连接对象和连接字符串: 1 string connectionString = "Data Source=SC-201607131829;Initial Catalog=Animal;Integrated Security=True"; 2 3 SqlConnection conn; 1.数据库的查询操作,返回一个DataSet 1 public D

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的

《转载》开源工具DbUtils的使用(数据库的增删改查)

本文转载自https://www.cnblogs.com/smyhvae/p/4085684.html https://www.cnblogs.com/wang-meng/p/5525389.html Bean实体的不规范写法,所导致的奇葩SQLException [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的时才

【Hibernate】Hibernate的在Eclipse+Mysql的配置、安装,纯Java,利用Annotation与HQL完成数据库的增删改查

这篇文章有很多槽点,在Hibernate4.x上面用着Hibernate3.x的写法去写.而且程序中放到Eclipse中会有一大堆警告,但是这好歹也在一定程度上完成了Hibernate的入门.毕竟现在很多介绍Hibernate的书籍都是用Hibernate3.x的写法去写.上次那篇<[Hibernate]最简单的Hibernate工程--账号注册系统>(点击打开链接)杂糅Struts的技术其实是不对的.因为Hibernate完成的是,从Java到数据库,从数据库到Java的任务.之后Java与

android中SQLite数据库的增删改查

1.数据库帮助类PersonSQLiteOpenHelper package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

TP框架中 数据库的增删改查

框架会用到数据库的内容,这一篇就是关于数据库的增删改查. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作, 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中(父类的conv