Mysql增刪改查

2021-09-25 22:04:41 字數 2753 閱讀 4781

sql和c語言api實現建立資料庫,建立表等操作參考這兩篇部落格:

mysql資料庫的簡單用法

c語言操作mysql資料庫

在開始之前說一下,mysql_query()的返回值,成功為0,異常為非0,需要注意。

1.增加一條資料

char str[

1024];

sprintf

(str,

"insert into student (name,money) values('%s','%d')"

,"mr zhang"

,100);

if(mysql_real_query

(con,str,

strlen

(str)))

(1)這張student表包含id,name,money,三項資料,這裡只加了兩項,另一項id是約束條件是主鍵,所以不新增也會自增,天劍兩項時候就要在表明後面加上(型別2,型別3),如果全部新增只要一一對應就可以了。

(2)這裡採用sprintf格式化輸入,就可以把變數插入,當然這裡任然插入的事普通串,比如可以這樣

sprintf(str,「insert into student (name,money) values(』%s』,』%d』)」,name1,cur_money);(name1和cur_money都是變數),不借助sprintf在my_sql_real()中是沒辦法加入變數的。

2.刪除一條資料

//刪除資料if(

mysql_query

(con,

"delete from student where id = 5"))

後面加上where id = 5就可以實現刪除表中的某一行。

3.修改一條資料

//修改資料if(

mysql_query

(con,

"update student set money = 200 where id = 5"))

與刪除類似,直接set + 修改物件(money = 200),再加指定行(where id = 5);

4.查詢一條資料

if

(mysql_query

(con,

"select *from student where id = 5"))

mysql_res *res =

mysql_store_result

(con);if

(res ==

null

)printf

("id不存在\n");

unsigned

int num_col =

mysql_num_fields

(result)

;printf

("表中一共有%d列\n"

,num_col)

; mysql_row row;

while

(row =

mysql_fetch_row

(res)

)}

獲取資料分三步:

(1)利用select獲得需要的資料,再利用store將結果儲存在res中。

(2)根據res獲得表的行和列

這裡注意行不是乙個整數而是乙個類似陣列,儲存的是字串(所以都用%s輸出),但是money是整數,簡單,用atoi()轉換一下就可以了.另外,my_sql_row每次返回一行,如果需要獲取全部行資料就要迴圈讀取了.

(3)綜上,類似陣列訪問就可以了,下標小於列數.

1.主鍵

主鍵:是用來唯一標示資料的,方便查詢,方便表之間的關聯,乙個表中的主鍵只能有乙個,就好比我們的身份證號.

資料庫的五個約束包括乙個,primary key,這個就是主鍵,建表的時候加上這個約束就可以了.

if

(mysql_query

(con,

"create table student(id int primary key auto_increment,name varchar(20),money int)"))

auto_increment表示自增的,即主鍵不能重賦相同的值,會報錯誤,如果不賦值,主鍵自增.

2.外來鍵

外來鍵:用來和其他表建立聯絡

最好在建立表的時候就設定好,編碼方式,比如這樣

create table author(name varchar(20),country varchar(20),age int)default character set utf8 collate utf8_general_ci;

嘗試插入中文字元:insert into author values(「張」,「中國」,45);

結果如下:

mysql> select *from author

-> ;

±-----±--------±-----+

| name | country | age |

±-----±--------±-----+

| 張 | 中國 | 45 |

±-----±--------±-----+

1 row in set (0.00 sec)

mysql增刪改查效果 mysql增刪改查

檢視所有資料庫 mysql show databases 建立乙個庫ghd並指定字符集為utp8 mysql create database ghd charset utf8 檢視mysql支援的字符集 mysql show char set 建立乙個表,並設定id為主鍵 create table ...

mysql增刪改查擴充套件 MySQL增刪改查

1 插入 insert 1 insert into 表名 values 值1 值2 例子 insert into t1 values zengsf 23 fengshao 22 2 insert into 表名 欄位1,values 值1 例子 insert into t1 name values ...

mysql建刪改查 MySQL增刪改查

登入mysql mysql u root p 密碼 建立使用者 mysql insert into mysql.user host,user,password values localhost test password 1234 這樣就建立了乙個名為 test 密碼為 1234 的使用者。注意 此...