数据库
首页 > 数据库> > 点餐系统-mysql

点餐系统-mysql

作者:互联网

joncpp基本应用认识:

      Json::Value类 :  json与外界进行数据中转的一个对象类

               重载了大量的操作符 :  赋值运算符

               包含了大量的类型转换函数 :  

      Json::Reader类 :  实现反序列化, 

               将json格式字符串转换为多个数据对象,  存储在Json::Value对象中

      Json::Writer类 :  实现序列化, 

               基类 -- 子类 :  Json::FastWriter / Json::StyledWriter

               将Json::Value对象中的数据序列化成为ison格式的字符串

 

 

mysql数据库的基本操作 :  SQL

客户端操作 :  mysql -uroot -p

sql语句注意事项 : 

             1. sql语句中,  每条语句都应该以 ; 结束

             2. sql语句中不区分大小写

             3. sql语句中,  数据库名称,  表名称,  字段名称不能直接使用sql关键字

    库的操作 :

             1. 创建数据库 :  create database dbname(数据库名称);

                                      create database  if not exists dbname;(如果没有重复的数据库就创建)

 

             2. 查看所有数据库 :  show databases;

             3. 选择所使用的数据库 :  use dbname;

             4. 查看所使用的数据库 :  select database();

             5. 删除数据库 drop database dbname;

     表的操作 :

             常用数据类型 :  int--整形,     decimal(m,d)--浮点型--m表示总位数,d表示小数点后位数,

                                      varchar(255)--字符,限制最多255个字符,可改变,   datetime--日期类型

           创建表:

                 create table if not exists tbname( id int, name varchar(1024), sex bit, socre decimal(4,2), birth datetime);

           查看所有表:show tables;          

           查看指定表结构:desc tbname;

           删除表:drop table tbname;

表中的约束字段

       主键约束:primary key       约束指定字段的值 -- 非空且唯一

       唯一约束:unique key        约束指定字段必须唯一

       非空约束:not null              约束指定字段的值不能为NULL

       自增属性:auto increment   (只能用于整形的主键字段)

                  create table if not exists tbname(id int primary key auto_increment, name varchar(32) not null unique,

                                                                         sex bit, score decimal(4,2), birth datetime );

 

 表中数据的操作 :  增删查改

                 查看表中信息 :  select * from tbname;

                 新增 :

                         insert tbname(id,name,sex) values(null,"张三",0);

                         insert tbname values(null,"李四",1,88.88,"2020-10-8 12:00");

                 删除 :

                        delete from tbname where id=2;      (不加where id=2,  将全部删除)

                 修改:f

                        update tbname set score=66.78,birth="2021-8-6 21:00" where id=1;

                 查询:

                        查询表中所有数据--select * from tbname;

                        指定列查询--select id, name, score from tbname;

                        按升序排序--select id, name, score from tbname order by id;

                        按降序排序--select id, name, score from tbname order by id desc;

                        分页查询--select * from tbname order by id desc limit 3 offset 3;

                        条件查询-select * from tbname where score<70;

                                       select * from tbname where score<90 and score>70;

                                       select * from tbname where id between 2 and 5;

                                       select * from tbname where id in(1,3);

                                       select * from tbname where sex is null;

                                       select * from tbname where sex is not null;

                                       select * from tbname where name like "张%";

                                       select * from tbname where name like "%四%";

                       数据库的导入:mysql -uroot -p <db.sql

 

mysql 代码操作:

初始化操作:

   1.初始化操作句柄

   2.通过句柄连接mysql数据库

   3.设置客服端字符集(utf8)

   4.选择使用的数据库

数据操作:

    5.执行语句:

     增删改:  执行语句 -- 执行语句成功即可

     查询:  执行语句 --

            将查询结果获取到本地

            获取结果中数据的条数和列数

            遍历结果集获取每条数据的每一列                                                                                      

            释放本地结果集

     6.关闭句柄释放资源

     7.获取接口执行失败原因

 

接口介绍

1.初始化操作句柄

MYSQL *mysql_init(MYSQL *mysql);

2.通过句柄连接mysql数据库

MYSQL *mysql_real_connect(MYSQL *mysql, char *host, char *username,

                       char *passwd, char *dbname, int port, char *sock, int flag)

mysql:  初始化完成的句柄;           host:  mysql服务器ip地址

username:  用户名;                      passwd:  密码

dbname:  默认所选择的数据库名称     

port:  mysql服务端口 - 0 - 默认3306

sock:  socket文件,  通常置NULL

flag:  客户端标志 -- 通常置0

返回值:  成功返回句柄,  失败返回NULL

3.设置客服端字符集(utf8)

int mysql_set_character_setr(MYSQL *mysql, char *name);

mysql:  句柄                name:  字符集名称 -- utf8

返回值:  成功返回0,  失败返回非0

4.选择使用的数据库

int mysql_select_db(MYSQL *mysql,char *dbname)

mysql:  句柄                     dbname:  要切换的数据库名称

返回值:  成功返回0   失败返回非0

5.执行语句

(增删改)

int mysql_query(MYSQL *mysql,char *sql)

mysql:  句柄                    sql:  要执行的sql语句

返回值:  成功返回0,  失败返回非0

(将查询结果获取到本地)

MYSQL_RES *mysql_store_result(MYSQL *mysql)

mysql:  句柄

   特殊说明:  mysql_query与mysql_store_result存在线程安全问题

返回值:  成功返回结果集的地址;    失败返回NULL

(获取结果中数据的条数和列数)

int mysql_num_rows(MYSQL_RES *res)   -- 获取行数

int mysql_num_fields(MYSQL_RES *res)  -- 获取列数

(遍历结果集获取每条数据的每一列)

MYSQL_ROW mysql_fetch_row(MYSQL_RES *res);

      MYSQL_RES res中会记录当前获取的位置,  逐条取出

      MYSQL_ROW:  就是一个char**

(释放本地结果集)

int mysql_free_result(MYSQL_RES *res);

6.关闭句柄释放资源

int mysql_close(MYSQL *mysql);

7.获取最近一次操作失败原因

char *mysql_error(MYSQL *mysql);

 

标签:--,mysql,系统,tbname,MYSQL,点餐,id,select
来源: https://www.cnblogs.com/enjoyC/p/14879910.html