Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4825920
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: Mysql/postgreSQL

2009-08-28 15:59:29

   花了两天时间搞MySQL,其实不算学习应该是复习了,复习也没复习全部只是大概了而已...
  1.先抛开c不谈,单单将MySQL...
    几个基本的通用的东东应该知道
    show databases;
    show tables;
    use databasename;
    describe tablename;
    create table tablename(
       id  INT(4),
       name VARCHAR(10),
       birth DATE
     );
    insert into tablename(id, name, birth) values(xx,xxx,xxxx);
    update tablename set name='xxxx';
    select * from tablename where name='xxx';
    delete from tablename where name='xxxx'
  2.可以用电小小的正则
    select * from tablename where name like 'ken%'('ken_')
    上面的正则就那么两个
 
   select * from tablename where name REGEXP 'ken$'('ken.*')
    这个正则就和平时用的差不多了...
  3.procedures问题
    delimiter //    
 
    create procedure my()
    begin
    declare i INT;
    set i=1;
    while i<500 do
     insert into ... values....
    set i=i+1;
    end while;
    end;
    //   
   恢复delimiter
    delimiter ;
   这里还有个就是连接字符串MySQL用concat而不是SQL那种+
  然后call my()就可以了...
 4.index就是提高查询速度的
   create index indexname on tablename(colname(length))
   alter table tablename add index indexname(colaname,...)
   单列索引就是where name='xxx'
   组合索引就是where name='xxx' and age=....这种
 
 5.最后就是c来干这些事了,首先是环境的搭建,这个我上篇日志里已经写了...这个过程是痛苦的
   然后就是任何语言,任何DB都逃不过的事了...
   连接数据库,这个各异,不过google是肯定知道的
  
   连上后,并且制定数据库后就可以进行具体的操作了
   mysql_query(conn, "call add_user()")就是这个了
  你也可以mysql_query(conn, "show tables")
  or insert等等其他的...
 
   搞定这些基本上应付一般的笔试面试应该就可以了吧,再加上之前的SQL Server, Sqlite的开发经验就可以开始忽悠了...
   今天的test发现,index的强大,还真不知道B-树有这么NB,等下还要等大脑高效率的时候看看数据库索引的实现....头大的东东
   ok,数据库复习暂告一段落

#include <windows.h>
#include <MySQL\mysql.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

// Entry point...

int main(int nArguments, char *pszArguments[])
{
  MYSQL *conn;
   MYSQL_RES *res;
   MYSQL_ROW row;

   char *server = "localhost";
   char *user = "root";
   char *password = "123456"; /* 此处改成你的密码 */
   char *database = "test";

   conn = mysql_init(NULL);

   /* Connect to database */
   if (!mysql_real_connect(conn, server,
         user, password, database, 0, NULL, 0)) {
      fprintf(stderr, "%s\n", mysql_error(conn));
   }

   /* send SQL query */
  if (mysql_query(conn, "call add_user()")) {
      fprintf(stderr, "%s\n", mysql_error(conn));
   }

   if (mysql_query(conn, "select * from user;")) {
      fprintf(stderr, "%s\n", mysql_error(conn));
    }

   res = mysql_use_result(conn);

   
   printf("query:\n");
   while ((row = mysql_fetch_row(res)) != NULL)
      printf("%s \n", row[0]);

   /* close connection */
   mysql_free_result(res);
   mysql_close(conn);
   system("PAUSE");
   return 0;
}

阅读(2025) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~