c语言和mysql 管理系统_Linux运维基础 Mysql

6cce4e513a72fa4ff21eacca45c60945.gif

de81c44b4d4f485275a55edd6265b3b1.png

01

MySQL数据库简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

MySQL是开放源代码的,因此任何人都可以在GeneralPublic License的许可下下载并根据个性化的需要对其进行修改。

MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。

MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。

MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。

b816aa980f025e527bc0fdea5622ad9d.png

02

MySQL发展史

MySQL的历史最早可以追溯到1979年,那时Oracle也才小打小闹,微软的SQL Server影子都没有。有一个人叫Monty Widenius, 为一个叫TcX的小公司打工,并用BASIC设计了一个报表工具,可以在4M主频和16KB内存的计算机上运行。过了不久,又将此工具,使用C语言重写,移植到Unix平台,当时,它只是一个很底层的面向报表的存储引擎。这个工具叫做Unireg。 可是,这个小公司资源有限,Monty天赋极高,面对资源有限的不利条件,他反而更能发挥潜能,总是力图写出最高效的代码。并因此养成了习惯。与Monty同在一起的还有一些别的同事,很少有人能坚持把那些代码持续写到20年后,而Monty却做到了。 1990年,TcX的customer 中开始有人要求要为它的API提供SQL支持,当时,有人想到了直接使用商用数据库算了,但是Monty觉得商用数据库的速度难令人满意。于是,他直接借助于mSQL的代码,将它集成到自己的存储引擎中。但不巧的是,效果并不太好。于是, Monty雄心大起,决心自己重写一个SQL支持。 1996年,MySQL 1.0发布,只面向一小拨人,相当于内部发布。到了96年10月,MySQL 3.11.1发布了,跳过了2.x版本。最开始,只提供了Solaris下的二进制版本。一个月后,Linux版本出现了。 紧接下来的两年里,MySQL依次移植到各个平台下。它发布时,采用的许可策略,有些与众不同:允许免费商用,但是不能将MySQL与自己的产品绑定在一起发布。如果想一起发布,就必须使用特殊许可,意味着要花银子。当然,商业支持也是需要花银子的。其它的,随用户怎么用都可以。这种特殊许可为MySQL带来了一些收入,从而为它的持续发展打下了良好的基础。(细想想,PostgreSQL曾经有几年限入低谷,可能与它的完全免费,不受任何限制有关系)。 MySQL3.22应该是一个标志性的版本,提供了基本的SQL支持。 MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。 MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。 1999-2000年,有一家公司在瑞典成立了,叫MySQL AB (AB是瑞典语“股份公司”的意思)。雇了几个人,与Sleepycat合作,开发出了 Berkeley DB引擎, 因为BDB支持事务处理,所以,MySQL从此开始支持事务处理了。 2000年4月,MySQL对旧的存储引擎进行了整理,命名为MyISAM。同时,2001年,Heikiki Tuuri向MySQL提出建议,希望能集成他们的存储引擎InnoDB,这个引擎同样支持事务处理,还支持行级锁。 如今,遗憾的是,BDB和InnoDB好像都被Oracle收购了,为了消灭竞争对手,哪怕是开源的,都是不择手段。 MySQL与InnoDB的正式结合版本是4.0。 到了MySQL5.0,2003年12月,开始有View,存储过程之类的东东,当然,其间, bug也挺多。 在2008年1月16号 MySQL被Sun公司收购。 最近,MySQL的创始人Monty Widenius已经向Sun提交了辞呈。head都要走了。 据说,被Sun收购的公司多薄命,不知道MySQL今后前途如何,希望一路走好。相信MySQL的生命力还是很长久的。 时至今日 mysql 和 php 的结合绝对是完美.很多大型的网站也用到mysql数据库.mysql的发展前景是非常光明的!

b816aa980f025e527bc0fdea5622ad9d.png

03

MySQL常用命令

1:使用SHOW语句找出在服务器上当前存在什么数据库:

mysql> SHOW DATABASES;

2:创建一个数据库MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

4:查看现在的数据库中存在什么表

mysql> SHOW TABLES;

5:创建一个数据库表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:显示表的结构:

mysql> DESCRIBE MYTABLE;

7:往表中加入记录

mysql> insert into MYTABLE values (”hyq”,”M”);

8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9:导入.sql文件命令(例如D:/mysql.sql)

mysql>use database;mysql>source d:/mysql.sql;

10:删除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中数据

mysql>update MYTABLE set sex=”f” where name=’hyq’;

全局管理权限对应解释:

FILE: 在MySQL服务器上读写文件。

PROCESS: 显示或杀死属于其它用户的服务线程。

RELOAD: 重载访问控制表,刷新日志等。

SHUTDOWN: 关闭MySQL服务。

数据库/数据表/数据列权限:

ALTER: 修改已存在的数据表(例如增加/删除列)和索引。

CREATE: 建立新的数据库或数据表。

DELETE: 删除表的记录。

DROP: 删除数据表或数据库。

INDEX: 建立或删除索引。

INSERT: 增加表的记录。

SELECT: 显示/搜索表的记录。

UPDATE: 修改表中已存在的记录。

特别的权限:

ALL: 允许做任何事(和root一样)。

USAGE: 只允许登录–其它什么也不允许做。

b816aa980f025e527bc0fdea5622ad9d.png

Linux运维往期回顾

  • 1.Linux运维基础 - 基础命令(一)

  • 2.Linux运维基础 - 基础命令(二)

  • 3.Linux运维基础 - 基础命令(三)

  • 4.Linux运维基础 - 基础命令(vi/vim)

  • 5.Linux运维基础 - (FTP)文件传输服务

  • 6.Linux运维基础 - (FTP)实战演练

  • 7.Linux运维基础 - (DNS)域名系统

  • 8.Linux运维基础 - 磁盘管理(一)

  • 9.Linux运维基础 - 磁盘管理(二)

  • 10.Linux运维基础 - 进程和计划任务(一)

  • 11.Linux运维基础 - 进程和计划任务(二)

  • 12.Linux运维基础 - WEB(一)

  • 13.Linux运维基础 - WEB(二)

姿势已摆好

就等你点啦

 点击此链接“网络运维往期回顾”

关于我们:

北京冠程科技有限公司(Beijing GctechTechnologyCo.,Ltd.)是一家集人才、技术和经验于一体的,提供全面网络安全解决方案的专业服务商。冠程科技致力于为各行业的网络安全需求提供软件研发和通用解决方案,业务领域主要包括基础服务、咨询业务、产品研发和安全培训四大版块,各版块相互独立又相辅相成,完美阐释了“专业服务、全程服务、延伸服务”的服务体系和“单一业务与长远目标相融合”的服务理念。

关注冠程科技,关注网络安全!

总公司:北京冠程科技有限公司

地址:北京市昌平区科技园区东区产业基地企业墅上区一号楼九单元四层

河北分公司:河北镌远网络科技有限公司(隶属于冠程科技的河北分公司)

地址:河北省邯郸市丛台区中华北大街193号慧谷大厦14层1418号

实训基地:河北省石家庄市电子信息学校冠程科技研究与实训中心

08daa7eb289d6d317116aadd4bb45808.pngb3b5eb7c555f816f4318a8bcad6d0508.png 

欢迎关注我们,及时了解更多关于网络安全相关知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,产品库存管理系统可以分为客户端和服务器端两部分,客户端负责与用户交互,服务器端负责数据存储和处理。以下是一个简单的用C语言MySQL编写的产品库存管理系统的框架示例: 客户端部分: ```c #include <stdio.h> #include <mysql.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "password"; // MySQL数据库的密码 char *database = "product_inventory"; // 数据库名称 conn = mysql_init(NULL); // 连接 MySQL 数据库 if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } // 查询数据库中的数据 if (mysql_query(conn, "SELECT * FROM products")) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } res = mysql_use_result(conn); // 输出查询结果 printf("Product ID\tProduct Name\tProduct Quantity\n"); while ((row = mysql_fetch_row(res))) { printf("%s\t\t%s\t\t%s\n", row[0], row[1], row[2]); } mysql_free_result(res); mysql_close(conn); return 0; } ``` 服务器端部分: ```c #include <stdio.h> #include <mysql.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "password"; // MySQL数据库的密码 char *database = "product_inventory"; // 数据库名称 conn = mysql_init(NULL); // 连接 MySQL 数据库 if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } // 创建数据库表 if (mysql_query(conn, "CREATE TABLE products (id INT NOT NULL AUTO_INCREMENT, name TEXT NOT NULL, quantity INT NOT NULL, PRIMARY KEY (id))")) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } // 插入数据 if (mysql_query(conn, "INSERT INTO products (name, quantity) VALUES ('product1', 10), ('product2', 20), ('product3', 30)")) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } mysql_close(conn); return 0; } ``` 以上代码仅为示例,具体实现需要根据实际需求进行计和编写。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值