连接数据库
mysql -uroot -p
密码:空
数据库-存储并管理数据的仓库,是一个C/S架构
MySQL客户端通过sql来告诉MySQL服务器,自己需要做什么操作
sql:structure query language结构化查询语言
sql语句应该以英文封号作为结尾
sql语句不区分大小写
sql语句尽量避免使用关键字作为库或者表或者字段的名称
创建:create database ct;
查看所有库:show databases;
选择操作的库:use ct;
查看当前所选操作的库:select database();
删除库:delete database ct;
int整型
decimal(M,D)浮点型
varchar(len)字符串类型
datatime日期类型
创建:create table student(sn int , name varcher(32) , age int );
查看库中所有表:show tables;
查看表结构:desc student;
删除表:drop table student;
insert student values(1,"张三",18);
数据位置一定跟表中字段一致,不能错位或缺少
全字段查询:select * from student;
指定字段查询:select sn , name from student;
条件查询:select *from student where name = "张三";
注意:修改的时候一定要设置过滤条件,否则针对的是表中的所有元素
update student set name = "李四" where name = "张三";
delete from student where name = "张三";
主要了解的是MySQL开发包中的api接口
MYSQL *mysql_init(MYSQL *mysql);
对传入的句柄进行初始化
若传入的句柄为NULL,则内部会动态申请空间,进行初始化,并返回句柄首地址
返回值:若失败则返回NULL
MYSQL *mysql_real_connect(MYSQL *mysql, char *host , char *user , char *pass , char *dbname, int port , char *unix_socket , int client_flag)
mysql:初始化完成的mysql句柄
host:用户名
pass:密码
dbname:要操作的库名称
port:端口,默认0为3306端口,是mysql服务的端口
unix_socket:套接字或管道文件名-通常置NULL
client_flag:客户端的操作标志,通常置0
返回值:成功返回句柄首地址,失败返回NULL
int mysql_set_character_set(MYSQL *mysql , char * name);
mysql:操作句柄
name:字符集名称,通常是“utf8”
返回值:成功返回0;失败返回非0
int mysql_select_db(MYSQL *mysql , char * dbname);
int mysql_query(MYSQL *mysql , char * sql);
mysql:操作句柄
sql:对数据库中的数据进行的操作的sql语句
返回值:成功返回0;失败返回非0
语句有没有执行成功,决定了当前的操作是否完成
因为增删改只要语句执行成功就OK,但是如果是查询语句,因为查询的话语成功执行,还需要获取查询的结果。
MYSQL_RES *mysql_store_result(MYSQL * mysql);
mysql:操作句柄
返回值:成功返回结果集的首地址;失败返回NULL
将结果集保存到本地与执行语句这一步操作,如果使用的是一个操作句柄就会发生线程安全问题
int mysql_num_rows(MYSQL_RES *res);//获取结果行数
int mysql_num_fields(MYSQL_RES *res);//获取结果列数
MYSQL_ROW mysql_fetch_row(MYSQL_RES *res);
这个函数或者说res内部记录了当前的读写位置,只需要不断的调用,就可以逐条取出数据。
这个返回值是给字符指针数组char *arr[] ,将一行中的多列进行扁平化存储,每一个元素都是一列数据。
int mysql_free_result(MYSQL_RES *res);
int mysql_close(MYSQL *mysql);2