Linux--数据库(MySQL)操作

一、数据库的安装

1、检测数据库是否安装
sudo  netstat  -tap|grep  mysql

2、数据库的安装
sudo  apt-get install  mysql-server
sudo  apt-get  install  mysql-client
sudo  apt-get install libmysqlclient-dev

3、登录数据库
mysql  [-h主机ip] -u用户名 -p

4、添加用户
create user '用户名'@'localhost'  identified  by '密码'

5、授权
grant  all   on  *.*  to  '用户名'@'localhost'

6、查看用户
select  host,user  from  mysql.user;
 

二、数据库操作

1、数据库关于库的增删显操作sql语句

① 显示所有的库:show databases

② 创建库:create database 库名

③ 删除库:drop database 库名

④ 选中库:use 库名

2、数据库关于整张表格增删改显操作sql语句

① 显示所有表格:show tables;

② 创建表格:

create table 表名 (字段名1 类型,字段名2 类型,.....,字段名n 类型)charset utf8

③ 显示字段详细信息:desc 表名

④ 删除表格:drop table 表名

⑤ 修改表名:rename table 旧表名 to 新表名

3、数据关于字段增删改查操作sql语句

① 添加字段:

alter table 表名 add 字段的定义 //默认放在最后

alter table 表名 add 字段的定义 first   //放在最前

alter table 表名 add 字段的定义 after 字段名  //指定字段后面

② 删除字段:alter table 表名 drop 字段名

③ 修改字段类型:

alter table 表名 modify 字段名 新的类型

④ 修改字段属性:

alter table 表名 change 字段名 重新定义字段

⑤ 显示字段详细信息:desc 表名

4、数据库关于记录增删改查操作的sql语句

① 插入记录:

insert into 表名 values (value1,value2,...,value)

insert into 表名 (字段名1,字段名2,..,字段n) values (value1,value2,...,value)

insert into 表名 values (value1,value2,...,value),(value1,value2,...,value)

ps:字符串类型的数据一定要加单引号

② 删除记录:

delete from 表名 where 条件表达式

③ 修改记录:

update 表名 set 字段名=value   where 条件表达式

④ 查看:

select * from 表名

select 字段1,字段2 from 表名

select * from 表名 where 表达式

5、类型

① 整型:
tinyint   1:默认是有符号类型
unsigned :   设置无符号类型
zerofill :   零填充,默认就是无符号类型
not  null : 不能为空
default   : 设置默认值

② 主键:

主键:能够唯一标识一条记录,不能有重复的,默认就是不能为空 一张只有一个主键,可以定义表格时设置,也可以定义玩表格设置

primary key:   主键

删除主键: alter  table 表名  drop   primary  key

设置主键: alter  table  表名  add primary  key(字段名)

auto_increment:自增属性,默认是从1开始,也可以自定义自增值

设置自增值:alter  table  表名 auto_increment=value

ps:一个字段同时有主键和自增两个属性,如果要删除主键属性,必须先删除自增,再删除主键

alter  table  表名  change  sid  sid  int;
alter  table  表名  drop  primary  key

③ 外键:

外键:让两张表格建立关联 (让一张表中的字段参照另外一张表格的主键),保证数据的有效性和正确性

创建表格设置外键:constraint 外键别名 foreign  key(字段名) references 参照表(字段名)

建表后添加外键:alter  table  表名 add constraint 外键别名 foreign key(字段名) references  参照表(字段名)

删除外键:alter  table 表名 drop  foreign  key 外键别名

③ 浮点类型:
float:   4
double :  8
decimal(m,d)

④ 字符串:
char(32): 定长字符串
varchar(32): 变长字符串   
text  : 文本,不允许设置默认值

⑤ 日期时间类型:
year :年份(以整型表示)
date:日期('yy-mm-dd')
time :时间('hh:mm:ss')
datetime:日期时间('yy-mm-dd hh:mm:ss')

6、库的备份与恢复

备份:
① 表级备份(系统命令终端操作)
mysqldump  -uroot  -p 库名 表1  表2 > 路径   //备份指定表格
mysqldump  -uroot  -p 库名 > 路径        //备份库下的所有表格

② 库级备份
mysqldump  -uroot  -p  库1  库2 -B >路径    //备份指定库
mysqldump  -uroot  -p  --all-databases >路径    //备份所有库

恢复(数据库命令行操作的):
① 表级恢复
use  库名;
source  路径;

② 库级恢复
source  路径

三、数据库编程

1、定义MYSQL类型的变量

MYSQL  mysql;

2、初始化句柄

MYSQL *     STDCALL mysql_init(MYSQL *mysql);

参数:  句柄地址

返回值:  成功返回地址,失败返回NULL

3、连接数据库

MYSQL *   STDCALL mysql_real_connect (MYSQL *mysql , const char *host , const char *user , const char *passwd , const char *db , unsigned int port , const char *unix_socket , unsigned long clientflag);

参数:

MYSQL *mysql               //初始化好的句柄地址

 const char *host             //主机IP   本地: localhost

const char *user             //用户名  

const char *passwd        //密码

const char *db                //库名

unsigned int port             //  0

const char *unix_socket    //  NULL

unsigned long clientflag    //  0

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

4、发送sql语句

 int     STDCALL mysql_query(MYSQL *mysql, const char *q);

参数:

mysql : 句柄地址

q:    sql语句

返回值:成功返回 0, 失败返回 -1

5、关闭数据库

void STDCALL mysql_close(MYSQL *sock);

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值