| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Linux系统编程阶段:MySQL数据库相关知识点和函数。 -> 正文阅读 |
|
[大数据]Linux系统编程阶段:MySQL数据库相关知识点和函数。 |
1.数据库的作用和介绍 ????????数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。 ????????数据库里面的数据的增删改查速度比文件操作要快的多。 2.mysql的安装 sudo apt-get install mysql-server:服务端安装 sudo apt-get install mysql-client:客户端安装 sudo apt-get install libmysqlclient-dev:相关的库 sudo service mysql start:启动数据库 sudo service mysql stop:关闭 注意点: 在安装的过程中会弹出一个框 ,让你输入数据库的root用户的密码 这个密码一定不要选择跳过 ?而要设置一个密码 这个密码建议大家都设置成1 。 3.mysql的进入和退出 ????????登录的时候 ,有两种情况 ->假如在安装的时候 ?成功输入了密码 mysql -u root -p ->假如在安装的时候 ?没有设置密码 1)切换到root用户 ?Ubuntu的root用户 2)在root用户权限下 ??? 输入 :mysql -u root ????????退出:quit 退出数据库 4.mysql的数据类型 布尔类型:只有0和1 字符类型: ?数值类型:整型和浮点型 ?时间类型: ?5.mysql常用词汇 datebase:数据库 table:表 column:列 from:来自 select:选中 *:所有 show:显示 insert:插入 drop:删除 change:更改 update:更新 6.mysql的显示 ????????执行sql语句的时候,要执行的语句的最后加上一个; ????????显示所有的数据库:show ?databases; ????????要想使用某个数据库,在终端输入:use 数据库的名字 ????????????????eg:use mydb; ????????显示数据库里所有的表:show tables from 数据库名字; ????????显示表里的所有的列的信息:show columns from userinfo; 7.mysql的查找 ????????查找表里的所有的数据:select * from 表的名字; ????????查找表里的某一项的信息: ????????select name from 表的名字:查看表里的name这一列 ????????查找满足某一个条件的数据: ????????select * from userinfo where name="duanweizheng" and ?Password="123"; 8.mysql的插入和创建 ????????创建一个数据库:create database mysql_203; ????????创建一张表: ????????reate table 表名 (列名 列的数据类型,列名 列的数据类型,列名 列的数据类型,列名 列的数据类型,列名 列的数据类型); ????????eg:CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); ????????插入数据: ????????????????插入的时候必须要跟列的信息一一对应 ????????????????插入的时候 ?假如某一项是没有信息的,要填NULL ????????eg:insert into 表名values("wangcai","lisi","qiutian","w","2022-7-18",NULL); 9.mysql的修改 ????????修改,主要是修改表的名字以及列的名字。 ????????改表的名字:alter table pet rename mypet; ????????修改列的名字: ????????alter table 表名 ?change 旧的列名 新的列名 新的列的类型; ????????eg:alter table mypet change sex new_sex CHAR(10); ????????新增列: ????????alter table 表名 ?add 要新增的列的名字 要新增的列的类型; ????????eg:alter table mypet add test char; ????????删除列:alter table 表名 drop 要删除的列的名字 ????????eg:alter table mypet drop test; 10.mysql的更新 ????????主要是用来更新数据库的数据: ????????update 表名 ?set 某一列=“” ?where 某个条件=""; ????????eg:update mypet set name="ahuang" where name="tugou"; 11.mysql的删除 ????????数据库的删除 drop ????????删除数据库:drop database 数据库的名字 ????????删除某一个表:drop table 表名 ????????删除某一条数据:delete from 表名 ?where 判断条件 12.mysql的排序 ????????ASC ?表示升序 默认; ????DESC 降序 ????????select * from mypet order by name; ????????select * from mypet order by name ASC;?//表示升序排列 ????????select * from mypet order by name DESC;//表示降序排列 三、数据库相关C语言库函数 1.mysql_real_connect():链接数据库 ????????头文件:mysql/mysql.h ????????原型: MYSQL *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 client_flag) ????????参数: ????????MYSQL *mysql:mysql的核心结构体,需要我们自己申请一个这样的结构体,变量传给他,这个变量需要调用mysql_init函数来初始化这个结构体 ????????const char *host:主机 ?固定填 localhost ?本地主机 ????????const char *user:用户 ??root ????????const char *passwd:密码 ?1 ????????const char *db:要用的数据库的名字 ????????unsigned int port:固定填 0 ????????const char *unix_socket:NULL ????????unsigned long client_flag : 0 ????????返回值: ????????????????成功返回 ?MYSQL结构体的指针 ????????????????失败返回 ?NULL 2.int mysql_query():在程序里执行sql语句 ????????头文件:mysql.h ????????原型:int mysql_query(MYSQL *mysql, const char *query) ????????参数: ????????????????MYSQL *mysql :连接数据库返回的数据库的指针 ????????????????const char *query:字符串,你要执行的sql语句 ????????????????比如要查找数据:select * from mypet; ????????返回值:成功返回 ?0 ???失败返回 ?非零值 3.mysql_store_result():获取sql语句执行后的结果的集合 ????????头文件:mysql.h ????????原型:MYSQL_RES *mysql_store_result(MYSQL *mysql) ????????参数:MYSQL *mysql:数据库的核心结构体的指针 ????????返回值:成功返回,结果集合的结构体 ????????返回的结果集合结构体,一般要借助其他的函数来取里边的值 ????????获取列数:unsigned int mysql_num_fields(MYSQL_RES* res) ????????获取行数:my_ulonglong mysql_num_rows(MYSQL_RES *result) ????????获取一行的信息:MYSQL_ROW mysql_fetch_row(MYSQL_RES *result) ????????????????????????第一次调用 ?返回第一行内容 ????????????????????????第二次调用 ?返回第二行的内容 ????????获取列的信息:MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result) ????????使用数据库相关函数注意事项: ????????1)编译的是要指定链接库的名字?-l(小写L)-lmysqlclient ????????2)指定库的路径?-L(大写L) -L /usr/lib/mysql/plugin 4.mysql_free_result():释放数据库结果结构体 ????????头文件:mysql.h ????????原型:void mysql_free_result(MYSQL_RES *result) ????????参数:MYSQL_RES *result:结果集合结构体指针 ????????返回值:无 5.mysql_close():关闭数据库的链接 ????????头文件:mysql.h ????????原型:void mysql_close(MYSQL *mysql) ????????参数:MYSQL *mysql:mysql的核心结构体指针 ????????返回值:无 练习代码参考:
运行结果展示: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/15 23:51:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |