MySQL数据库的基本操作
客户端操作:mysql -uroot -p
注意事项:
- sql语句中,每条语句都应该以;结尾
- sql语句中,并不区分大小写
- sql语句中,数据库名称,表名称,字段名称不能直接使用sql关键字—”
库的操作:
创建数据库:create database if not exists dbname;
查看数据库:show databases;
选择所操作的数据库:use dbname; select database();
删除数据库:drop database dbname;
表的操作:
常用数据类型
Int整型, decimal(m,d) -浮点型,varchar(255 字符长度), datetime
Create table if not exists tbname(id int,name varchar(32),sex bit,score decimal(4,2),birth datetime) ;
查看所有表:
show tables;
查看指定表结构 desc tbname;
修改表结构:alter table tbname add sn int;
删除表结构: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 not null unique key,sex bit,score decimal(4,2),birth datetime);
表中数据的操作:增删改查
新增:
insert tbname(id,name,sex)values(null,”张三”,0);
insert tbname values(null,”李四”,1,88.88,” 2020-8-5 12:45:45”);
删除:
delete form tbname where id=2;
修改:
update tbname set scroe=66.78,birth =”2020-7-6 12:11:10”
where id=1;
查询:
查询表中所有数据:select * from tbname;
指定列查询:select id,name,score from tbname;
按序查询:select id,name ,score from tbname order by id desc;降序
分页查询:limit count offset(page*count)
Select * from
between and
mysql代码操作:
初始化操作: - 初始化操作句柄
- 通过句柄连接mysql服务器
- 设置客户端字符集(utf8)
4选择使用的数据库
数据操作:
5.执行语句:
增删改:执行语句—执行语句成功即可
查询:执行语句-将查询结果获取到本地
获取结果中数据条数、列数
遍历结果集获取每一条数据的每一列
释放本地结果集
6.关闭句柄释放资源
7.获取接口执行失败原因
接 口介绍:
MYSQL * MYSQL=NULL;
MYSQL *mysql_init(MYSQL *mysql);
Int mysql_real_connect(MYSQL *mysql,char *host,char * username,char *password,char *dbname,int port,char *sock,int flag)
Mysql:初始化完成的句柄;host:mysql 服务器IP地址
username:用户名; password:密码 dbname:默认所选择使用的数据库名称
port:mysql服务端口-0-默认3306;
flag:客户端标志—通常置零
返回值:成功返回句柄地址,失败返回NULL
int mysql_set_character_set(MYSQL *mysql, const char *name);
mysql:句柄;name:字符集名-utf8
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_filelds(MYSQL_RES *res); --获取列数
MYSQL_ROW mysql_fetch_row(MYSQL_RES *res);
MYSQL_RES res中会记录当前获取的位置,逐条读出
MYSQL_ROW:就是一个char **
Int mysql_free_result(MYSQL_RES * res);–释放
int mysql_close(MYSQL *mysql)
char *mysql_error(MYSQL *mysql);获取最近一次操作失败原因