35数据库的增删改查
数据库 增删 改查 35
2023-09-11 14:21:07 时间
数据库操作
基本命令 数据库/表增删
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; }
相关文章
- mongodb 创建数据库权限账号,增删改查(基本操作)
- MySQL 数据库的导入 导出
- [转]PL/SQLDeveloper导入导出Oracle数据库方法
- MySQL(三)——数据库、数据表的基本操作(增删查改)、子查询、分组查询、多表查询等
- 数据库Sharding的基本思想和切分策略
- Android中数据库的一些操作(增删改查)
- 解决数据库PL/SQL Developer记录被另一个用户锁住,无法操作问题
- oracle-Dbca数据库模板
- OceanBase架构浅析_OceanBase分布式数据库
- nodejs驱动mongodb 实现数据增删改查,将数据库数据渲染在页面,通过表单项数据库新增数据
- mysql数据库增删改基础语句
- Scrapy连接到各类数据库(SQLite,Mysql,Mongodb,Redis)
- 比OrmLite更好用的数据库框架,支持高并发,不用写任何sql语句实现对数据库的增删改查
- 【C#】使用NHibernate连接MySQL数据库及增删改查
- C#数据库连接配置文件存放至App.Config