数据库设置表的check约束出现乱码

本文介绍了一种在数据库中遇到中文显示为乱码的问题及其解决方案。通过调整数据库的排序规则,成功解决了check约束中中文字符显示异常的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 采用默认的方式见了一个数据库,但是有个表里需要建一个check约束。将约束保存之后再打开看到中文成了??。后来查了一下是数据库排序规则除了问题。

详见两图即可明白:

这里的约束中文显示乱码:

 

按下图设置数据库即可正常显示:

转载于:https://www.cnblogs.com/zhouxiuquan/p/3261285.html

我们先来了解一下,在数据库中创建的SQL语法: CREATE TABLE 名 ( 字段名,数据类型, 字段名,数据类型, ..... ) 例如: 接下来我们通过一个例子,来了解如何在指定数据库中创建: 首先,选择数据库: USE MyDb go 然后,创建t_user: CREATE TABLE t_user ( id INT, username VARCHAR(32), password VARCHAR(32), phone VARCHAR(11) ) go 完整性约束 主键 主键,是中一列或者多列的组合,主键约束( Primary Key Constraint )要求主键列的数据唯一,并且允许为空。主键能够唯一的标识中的每一条记录,可以结合外键,来定义与同数据之间的关系。 怎么理解主键呢?我们知道数据库中的可以存放很多数据,如果把中的每一条数据比作一个人的话,那么的主键就可以看做是人的身份证。 有两种方式可以添加主键约束:1.在定义列的同时指定主键,2.在定义完字段之后,再指定主键。 (1) 定义列级约束 CREATE TABLE t_dept ( deptId INT PRIMARY KEY, name VARCHAR(22), location VARCHAR(50) ); (2) 定义约束 CREATE TABLE t_dept ( deptId INT , name VARCHAR(22), location VARCHAR(50), PRIMARY KEY(deptId) ); 多字段联合主键(只能做约束) 举个例子,我们将员工的名字和部门 ID 联合起来作为主键: CREATE TABLE t_emp2 ( name VARCHAR(32), deptId INT, salary FLOAT, PRIMARY KEY(name,deptId) ) 语句执行后,会将 name 和 deptId 字段组合成为 t_emp2 的多字段组合主键。 非空约束 关键词: NOT NULL 。 CREATE TABLE t_dept( id INT PRIMARY KEY, name VARCHAR(22) NOT NULL, location VARCHAR(50) ) 默认值约束 默认值约束:即给字段一个默认值。 关键词: DEFAULT 。 CREATE TABLE t_emp( id INT PRIMARY KEY, name VARCHAR(22), sex VARCHAR(2) DEFAULT N'男' ) 如果输入中文字符乱码,加N前缀,例如:N'男' check约束 check约束:属性取值必须符合条件达式。 关键词:check (1) 定义列级约束 CREATE TABLE t_emp( id INT PRIMARY KEY, name VARCHAR(22), sex VARCHAR(2) check(sex in(N'男',N'女')) ) (2) 定义约束 CREATE TABLE t_emp( id INT PRIMARY KEY, name VARCHAR(22), sex VARCHAR(2), check(sex=N'男' or sex=N'女') ) 如果输入中文字符乱码,加N前缀,例如:N'男' 设置的属性值自动增加 在数据库应用中,经常需要在每次插入新纪录时,系统自动生成字段的主键值。 关键词: IDENTITY(1,2) 示自动增长,初始值为 1 ,增量为 2 。 PS:同的DBMS对该项支持同 CREATE TABLE t_tmp ( id int PRIMARY KEY IDENTITY(1,2), name VARCHAR(32) ) 实验要求 在begin…end之间填入SQL命令,创建Student结构如下:
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值