MySQL基本操作命令 & Linux下C语言连接MySQL数据库基本操作流程(入门)

  • 首先呢,在MySQL环境中对输入的代码大小写并不敏感,也不做要求不会影响代码运行结果,但在程序执行的时候,如果你输入的是小写就会先转化为大写字母然后再去执行,但如果直接输入大写字母就会节省一个转化的时间, 在对时间要求非常严格时就能看出大写字母直接输入的重要性了。所以平时敲代码的时候就尽量敲大写字母喽~

常用的MySQL基本操作


  • 数据库的基本操作有:创建、查看、选择、删除:
  1. 创建数据库:CREATE DATACASE database_name;

----创建一个info的数据库病设置默认字符编码
CREATE DATABASE info DEFAULT CHARACTER SET “utf8”;

  1. 查看数据库:SHOW DATABASES;

SHOW DATABASES;

  1. 选择数据库:USE database_name;

选择使用已经创建好的数据库 info
USE info;

  1. 删除数据库:DROP DATABASE database_name;

DROP DATABASE info;

  • 创建表:
    建好了数据库之后,就要选择一个数据库对它进行表的相关操作。表是数据在数据库中一种逻辑上的存储形式,和常见的电子表格类似,其中每一行代表一个记录,(也可以理解成一个数据成员),而记录的每一列代表一个字段,(也可以理解成数据成员的属性相关信息)。

表的基本操作有:创建、查看、修改、删除:

  1. 创建表CREATE TABLE table_name(.....);
    ----创建一个名为person的数据表
    CREATE TABLE ‘person’(
    id SMALLINT,
    persname VARCHAR(20),
    age TINYINT
    );

  2. 查看表SHOW TABLES;

-------先选择数据库,再查看该数据库中都有哪些表(tables)
USE info;
SHOW TABLES;

那么如何查看这个数据表的具体信息呢?

-----先选择数据库,用 DESCRIBE查看
USE info;
DESCRIBE **person**; == (DESCRIBE table_name;)

如果想要查看得更详细,就用 SHOW CREATE TABLE

查看表中具体条目:

select from 表名 where id=2[and name=?] [or name=?];

多表查询关联

---------附表的主键是主表的附键
select * from info inner join hobby where info.id=hobby.id;
select info.name,score,hobby.hobname from info inner join hobby where info.id=hobo.id=hobby;
select i.name,score,h.hobname from info as i inner join hobby as h where i.id=h.id;

  1. 修改表
    修改数据表的名字 :

------ALTER TABLE old_table_name RENAME TO new_table_name;
ALTER TABLE **person** RENAME TO **people**;

  1. 删除表

//整行删除
delete from info where name='test';
//删除列
alter table info drop column age;
//删除表
drop table info;

  • 索引:
    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

类型

  1. 普通索引:最基本的索引,没有任何限制
  2. 唯一索引:与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
  3. 主键索引:它 是一种特殊的唯一索引,不允许有空值。
  4. 全文索引:仅可用于 MyISAM 表,针对较大的数据,生成全文索引很 耗时好空间。
  5. 组合索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。创建复合索引时应该将最常用(频 率)作限制条件的列放在最左边,依次递减。

//创建普通索引
create index id_index on info(id);
//创建唯一索引
create unique index id_index on info(id);

//创建主键索引
alter table info add primary key(id);

//创建全文索引
create table infos (descript TEXT,FULLTEXT(descript));

//创建多页索引
create index multi_index on info(name,address);

!

查看索引:
show index from info;
show index from info \G; 纵向显示

unique 1 不是唯一
unique 0 唯一
//删除索引 (主键、全文索引删除命令比较特殊)
drop index id_index on info; #普通/唯一索引
alter table info drop primary key; #主键索引
drop table infos; #全文索引

  • Mysql --排序、聚合函数:
  1. 排序

select from info where 1=1 order by score ; asc–升序,可不写 #默认升序
select from info where 1=1 order by score desc ; desc–降序

  1. 聚合函数

统计count() ; 可以改为1
select count(*) from info;
平均值avg ()
select avg(score) from info;

  • 视图
    视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。

通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。一张表或多张表中的数据给不同的权限用户提供访问,安全有效。

-------创建视图
create view视图名称 AS
---------select 语句
select from info where score > 80; 查看大于80分的人
---------形成视图进行查看
create view score_view as select from info where score >80;
---------查看视图
select * from score_view;

C语言操作

  1. 连接

MYSQL *mysql
mysql=mysql_init(NULL); -----初始化一下
mysql_real_connect(mysql,HOST,USER,PASSWD,TESTDB,0,NULL,0)

①HOST是主机名
②user是ID
③passwd是密码
④TESTDB是数据库的名称

  1. 错误信息处理

mysql_error(mysql)

  1. 对数据库进行操作

mysql_real_query(mysql,query,strlen(query)) ------query>字符串

  1. 储存数据结果和释放空间

MYSQL_RES res=mysql_store_result(mysql)
mysql_free_result(res)
------必须执行才可以进行后续的操作,不然会出错

  1. 获取行和列

mysql_fetch_row(res)------行

原型:typedef char ** MYSQL_ROW;
MYSQL_ROW row
while(row=mysql_fetch_row(res))//row这个不能放在外面

-------------在while循环中,每一次mysql_fetch_row()都获得当前行数据,并赋值给数组,然后自动滑向下一行
mysql_num_fields(res)//列数

  1. 创建数据库

mysql_create_db(mysql,name)
name是数据库名称

  1. 选择数据库

mysql_select_db(mysql,name)

  1. 关闭数据库

mysql_close(mysql)】

  1. 数据库乱码可以通过修改编码方式来解决:

mysql_query(mysql, “SET NAMES UTF8”);

  • 具体操作

1、创建表

create table 名称(
名称 类型,。。。。
);
类型 int
   varchar(20)//20个字符,使用几个字节就占几个字节
   char(20)就是占20个字节
   text是文本类型,可以占到很大空间
   timestamp//是按存入的数据时间来自动记录
   
2、选择表
select 名称 from 表 ;//具体选择
select  *  from 表 ;//特定选择

3、修改表

update  表 set 列=新值,列=新值 where 条件(加and可以实现多个条件);

4、删除表中数据

delete from 表 where 条件;

5、在表中追加列

alter table 表 add 列 类型;

6、修改列

alter table 表 change 旧列 新列;

7、表中写数据

insert into 表 values (“数值”,”数值”);//必须按顺序

8、删除列

alter table 表 drop 列

9、重命名表

alter table 表 rename 新名字

10、删除整张表

drop table 表

11、查看表的具体名称和列名字

desc 表名

!! Linux下编译时要加-lmysqlclient
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值