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

深圳网站建设公司排行百度浏览器电脑版

深圳网站建设公司排行,百度浏览器电脑版,做网站时空间的选择,wordpress微信登陆插件下载1000.04.CS.DB-Database-Relational-MySQL-3.3.创建和管理表-Created: 2023-03-08.Thursday17:39 1. 创建和管理表 在 MySQL 中,创建和管理表是数据库操作的基础。以下是创建和管理表的主要步骤和方法。 1.1 定义表结构 定义表结构包括指定表的名称、列的名称和数…

1000.04.CS.DB-Database-Relational-MySQL-3.3.创建和管理表-Created: 2023-03-08.Thursday17:39

1. 创建和管理表

在 MySQL 中,创建和管理表是数据库操作的基础。以下是创建和管理表的主要步骤和方法。

1.1 定义表结构

定义表结构包括指定表的名称、列的名称和数据类型、主键和外键等。

示例:

CREATE TABLE example_table (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,description VARCHAR(100)
);

1.2 设置主键和外键

主键用于唯一标识表中的每一行记录,外键用于建立表之间的关系。

设置主键:

CREATE TABLE example_table (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL
);

设置外键:

CREATE TABLE orders (order_id INT PRIMARY KEY AUTO_INCREMENT,customer_id INT,FOREIGN KEY (customer_id) REFERENCES customers(id)
);

1.3 处理 NULL 值

在数据库设计和操作中,正确处理 NULL 值对于数据完整性和应用程序逻辑非常重要。

1.3.1 定义列时设置 NULLNOT NULL

在创建表时,可以指定列是否允许 NULL 值:

CREATE TABLE example_table (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,description VARCHAR(100) NULL
);
1.3.2 插入数据时处理 NULL

在插入数据时,未指定值的列会默认设置为 NULL(如果允许 NULL):

INSERT INTO example_table (name) VALUES ('Item 1');
-- description 列将被设置为 NULLmysql> SELECT * FROM example_table;
+----+--------+-------------+
| id | name   | description |
+----+--------+-------------+
|  1 | Item 1 | NULL        |
|  2 | Item 2 | NULL        |
+----+--------+-------------+
2 rows in set (0.02 sec)
1.3.3 ERROR 1138 (22004): Invalid use of NULL value : 更新数据中的 NULL

当尝试修改列定义为 NOT NULL 时,如果表中存在 NULL 值,MySQL 会抛出 ERROR 1138 (22004): Invalid use of NULL value 错误。为了避免此错误,需要先将所有 NULL 值更新为非 NULL 值,然后再修改列定义。

mysql> ALTER TABLE test_table MODIFY COLUMN description VARCHAR(100) NOT NULL;
ERROR 1138 (22004): Invalid use of NULL value

在修改列为 NOT NULL 之前,需要将现有的 NULL 值更新为非 NULL 值:

UPDATE example_table SET description = '' WHERE description IS NULL;
1.3.4 ERROR 1364 (HY000): Field 'description' doesn't have a default value : 修改列定义为 NOT NULL 并设置默认值

在将列设置为 NOT NULL 后,如果在插入数据时没有为该列提供值,则会出现 ERROR 1364 (HY000): Field 'description' doesn't have a default value 错误。这是因为该列不允许 NULL 值,并且没有默认值。

mysql> INSERT INTO test_table (name) VALUES ('Item 4'), ('Item 3');
ERROR 1364 (HY000): Field 'description' doesn't have a default value

为了避免插入数据时未指定列值导致的错误,可以在修改列为 NOT NULL 时设置默认值:

ALTER TABLE example_table MODIFY COLUMN description VARCHAR(100) NOT NULL DEFAULT '';
1.3.5 查询时处理 NULL

在查询时,可以使用 IFNULLCOALESCE 函数处理 NULL 值:

SELECT id, name, IFNULL(description, 'No Description') AS description FROM example_table;

or

SELECT id, name, IFNULL(description, '') AS description FROM example_table;
1.3.6 NULL 值的比较

在 SQL 中,使用 IS NULLIS NOT NULL 来检查 NULL 值,而不是使用等号:

SELECT * FROM example_table WHERE description IS NULL;
SELECT * FROM example_table WHERE description IS NOT NULL;

1.4 设置默认值

设置列的默认值可以确保在插入数据时未指定列值时,列会自动使用默认值。

示例:

CREATE TABLE example_table (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,description VARCHAR(100) NOT NULL DEFAULT 'No Description'
);

1.5 修改表结构

在实际应用中,可能需要修改表结构以适应业务需求的变化。可以使用 ALTER TABLE 语句来添加、删除或修改列。

添加列:

ALTER TABLE example_table ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

删除列:

ALTER TABLE example_table DROP COLUMN description;

修改列:

ALTER TABLE example_table MODIFY COLUMN name VARCHAR(100) NOT NULL;

2 实践举例

2.1 处理 NULL 值的方法

  1. 在 SQL 查询中处理 NULL
  2. 在代码中处理 NULL
2.1.1 在 SQL 查询中处理 NULL

在 SQL 查询中,可以使用 IFNULL 函数来替换 NULL 值。例如,可以将 NULL 值替换为空字符串:

SELECT F_channel, F_channel_error_code, IFNULL(F_channel_error_msg, '') AS F_channel_error_msg, F_inner_error_code, F_interface, F_strategy 
FROM lepay.t_channel_error_code_config;
2.1.2 在代码中处理 NULL

在代码中,应该检查 MYSQL_ROW 数组中的值是否为 NULL,而不是检查字符串 “NULL”。

MYSQL_ROW 是 MySQL C API 中定义的类型,通常通过 mysql.h 头文件引入。在 C++ 中处理 MySQL 数据库,可以使用 MySQL 提供的 C API 或者使用更高级的封装库如 mysql++

例如,在 C++ 中,可以手动检查 NULL 值。

std::string channelErrorMsg = (row[2] != nullptr) ? row[2] : "";  // 处理 NULL 值

References

  • https://dev.mysql.com/doc/
  • https://dev.mysql.com/doc/refman/8.0/en/data-types.html
  • https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html
http://www.hkea.cn/news/305476/

相关文章:

  • 小型企业网站系统cilimao磁力猫最新版地址
  • 铁岭网站建设移动网站广东网站seo
  • 网站模板插件sem和seo
  • 用wordpress制作网站模板沈阳seo
  • 优化一个网站多少钱宜昌网站seo
  • 刚做的网站怎么才能搜索到枸橼酸西地那非片功效效及作用
  • 罗湖区网站公司专业模板建站
  • 哪有备案好的网站国产系统2345
  • 网站开发怎么让别人看到最新营销模式有哪些
  • ssm网站开发源码百度推广多少钱一个月
  • 手游门户网站建设appstore关键词优化
  • 齐河网站开发seo服务内容
  • 北京微信网站建设费用想卖产品怎么推广宣传
  • 网站上线的步骤厦门网站推广公司哪家好
  • 网站做app的软件有哪些百度一下你就知道下载
  • 界面设计的重要性百度seo关键词排名推荐
  • 股票做T网站直播营销
  • 北京手机网站建设公司排名技术优化seo
  • wordpress可爱的主题seo优化教程
  • 自己可以申请网站做外卖吗网站描述和关键词怎么写
  • 公司网站网页设计seo站长工具推广平台
  • 重庆南岸营销型网站建设公司哪家专业真实的网站制作
  • 郑州企业网站建设兼职推广渠道
  • 网站哪些数据优化大师的作用
  • 政府网站集约化建设总结营销软文推广平台
  • 学网站开发跟那个专业最相近百度站长平台注册
  • 网站开发python电脑培训班有哪些科目
  • 惠州响应式网站哪家好云盘搜索
  • spring做网站合肥seo排名收费
  • 做58网站怎么赚钱二十个优化