当前位置: 首页 > wzjs >正文

自动做网站的ai郑州seo培训班

自动做网站的ai,郑州seo培训班,html5 爱情网站模板,wordpress+小米商城MySQL数据库编程总结 一、数据库概述 数据库定义 • 数据库是管理数据的软件系统,用于高效存储、管理和检索数据,减少冗余。 • 核心功能:通过SQL语言定义、操作数据,维护完整性和安全性。 常见数据库 • MySQL、Oracle、SQL Ser…

MySQL数据库编程总结


一、数据库概述
  1. 数据库定义
    • 数据库是管理数据的软件系统,用于高效存储、管理和检索数据,减少冗余。
    核心功能:通过SQL语言定义、操作数据,维护完整性和安全性。

  2. 常见数据库
    • MySQL、Oracle、SQL Server、PostgreSQL等。

  3. SQL分类
    | 类别 | 全称 | 功能 | 常用命令 |
    | DDL | 数据定义语言 | 管理数据对象(库、表) | CREATE, DROP, ALTER |
    | DML | 数据操作语言 | 操作数据记录 | INSERT, UPDATE, DELETE |
    | DQL | 数据查询语言 | 查询数据 | SELECT |
    | DCL | 数据控制语言 | 权限管理 | GRANT, COMMIT, ROLLBACK |


二、环境搭建
  1. 安装MySQL
    # Ubuntu安装服务端和客户端
    sudo apt-get install mysql-server mysql-client
    # 安装开发库(编程依赖)
    sudo apt-get install libmysqlclient-dev
    
    注意:安装时需为root用户设置密码。

三、MySQL基础操作
  1. 数据库操作

    -- 登录
    mysql -h主机名 -u用户 -p密码  
    -- 显示所有库
    SHOW DATABASES;
    -- 创建库
    CREATE DATABASE IF NOT EXISTS 库名;
    -- 删除库
    DROP DATABASE IF EXISTS 库名;
    -- 选择库
    USE 库名;
    
  2. 数据类型
    数值型INT, FLOAT, DOUBLE, TINYINT
    字符串型CHAR(定长), VARCHAR(变长), TEXT
    时间型DATE, TIME, DATETIME, TIMESTAMP

  3. 表约束

    约束作用示例
    PRIMARY KEY唯一标识记录id INT PRIMARY KEY
    AUTO_INCREMENT自增字段id INT AUTO_INCREMENT
    UNIQUE字段值唯一email VARCHAR(50) UNIQUE
    FOREIGN KEY外键约束FOREIGN KEY (dpt_id) REFERENCES tb_dept(id)
    NOT NULL非空约束name VARCHAR(20) NOT NULL
    DEFAULT默认值gender ENUM('M','F') DEFAULT 'M'
  4. 表操作

    -- 创建表
    CREATE TABLE 表名 (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20) NOT NULL,dpt_id INT,FOREIGN KEY (dpt_id) REFERENCES dept(id) ON DELETE CASCADE
    );
    -- 修改表
    ALTER TABLE 表名 ADD COLUMN 字段名 类型;  -- 添加字段
    ALTER TABLE 表名 DROP COLUMN 字段名;     -- 删除字段
    ALTER TABLE 表名 MODIFY 字段名 新类型;   -- 修改字段类型
    
  5. 数据操作

    -- 插入
    INSERT INTO 表名 (字段1, 字段2) VALUES (1,2), (3,4);
    -- 更新
    UPDATE 表名 SET 字段=WHERE 条件;
    -- 删除
    DELETE FROM 表名 WHERE 条件;
    

四、查询操作
  1. 单表查询
    -- 基础查询
    SELECT * FROM 表名;
    SELECT name, age FROM 表名 WHERE age > 18;
    -- 去重
    

DISTINCT dept FROM employee;
– 聚合函数
SELECT COUNT(), AVG(salary), MAX(age) FROM employee;
– 分组
SELECT dept, COUNT(
) FROM employee GROUP BY dept HAVING COUNT(*) > 5;


2. **多表连接**  
• **内连接**(仅匹配记录)  ```sqlSELECT a.name, b.dept_name FROM employee a INNER JOIN dept b ON a.dpt_id = b.id;```
左外连接**(左表全部+右表匹配)  ```sqlSELECT a.name, b.dept_name FROM employee a LEFT JOIN dept b ON a.dpt_id = b.id;```
• **右外连接**(右表全部+左表匹配)  ```sqlSELECT a.name, b.dept_name FROM employee a RIGHT JOIN dept b ON a.dpt_id = b.id;```3. **子查询**  
```sql
-- IN子查询
SELECT name FROM employee 
WHERE dpt_id IN (SELECT id FROM dept WHERE locate = '上海');
-- EXISTS子查询
SELECT name FROM employee a 
WHERE EXISTS (SELECT 1 FROM dept b WHERE a.dpt_id = b.id);

五、C API编程接口
  1. 核心函数

    函数作用
    mysql_init()初始化连接对象
    mysql_real_connect()连接数据库
    mysql_query()执行SQL语句
    mysql_store_result()获取结果集
    mysql_fetch_row()逐行读取数据
    mysql_free_result()释放结果集内存
    mysql_close()关闭连接
  2. 示例代码

    #include <mysql/mysql.h>
    #include <stdio.h>int main() {MYSQL *conn = mysql_init(NULL);if (!mysql_real_connect(conn, "localhost", "root", "password", "testdb", 0, NULL, 0)) {fprintf(stderr, "连接失败: %s\n", mysql_error(conn));return 1;}// 设置字符集mysql_set_character_set(conn, "utf8");// 执行查询if (mysql_query(conn, "SELECT * FROM employee")) {fprintf(stderr, "查询失败: %s\n", mysql_error(conn));return 1;}// 处理结果集MYSQL_RES *result = mysql_store_result(conn);MYSQL_ROW row;while ((row = mysql_fetch_row(result))) {printf("ID: %s, Name: %s\n", row[0], row[1]);}// 释放资源mysql_free_result(result);mysql_close(conn);return 0;
    }
    

六、数据库备份与恢复
  1. 备份数据库
    mysqldump -u root -p 数据库名 > backup.sql
    
  2. 恢复数据库
    mysql -u root -p 新数据库名 < backup.sql
    

七、注意事项
  1. 外键约束
    • 需使用InnoDB引擎,设置ON DELETEON UPDATE行为(如CASCADESET NULL)。

  2. 字符集
    • 推荐使用utf8mb4以支持Emoji等特殊字符,建表时指定:

    CREATE TABLE 表名 (...) DEFAULT CHARSET=utf8mb4;
    
  3. 性能优化
    • 避免SELECT *,索引关键字段,合理使用事务。


通过以上内容,可全面掌握MySQL数据库的核心操作、SQL语法及C语言接口编程。

http://www.dtcms.com/wzjs/346410.html

相关文章:

  • 网站与与云的关系糕点烘焙专业培训学校
  • 网站建设asp韩国vs加纳分析比分
  • 淘宝客wordpress想百度搜索关键词排名优化推广
  • dw网站怎么做搜索百度网盟推广
  • 微信怎么做网站廊坊seo整站优化
  • 免费的舆情网站不需下载新乡网络推广外包
  • 哪家建站公司好百度网络电话
  • 内网穿透做网站公司网站怎么弄
  • 大城b2c网站建设报价如何做品牌推广方案
  • 数据型网站温州网站建设优化
  • 莆田外贸建站网络营销组织的概念
  • 怎么找到域名做的那个网站html网页制作代码
  • 手机网站如何站点管理如何搭建公司网站
  • 郑州网站建设费用多层次网络营销合法吗
  • 有网站源码怎么上传bt kitty磁力猫
  • 有网站代码怎么建设百度一下首页官网
  • 哈尔滨 网站建设仟路站长工具精华
  • 响应式网站开发视频教程河南网站排名优化
  • 做百度手机网站关键词微信软文案例
  • 动漫网站设计免费b站推广网站2023
  • b2b和b2c的区别seo薪酬水平
  • 怎样从用户体现提高网站的搜索引擎信任度免费推广网址
  • 品牌网站建设四川运城seo
  • 南京公司网站营销策划公司名称
  • 建设规划展览馆网站的优势成都新闻最新消息
  • 关于网站设计的毕业论文百度知道客服
  • 张家口做网站公司营销策略有哪些内容
  • 一个专做里番的网站网络营销推广工具
  • wordpress调用外部css样式东莞网络优化排名
  • 做网站的程序员留备份怎样制作网页设计