问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何定义SQL主键

发布网友 发布时间:2022-04-26 11:18

我来回答

2个回答

懂视网 时间:2022-05-03 02:37

SET FOREIGN_KEY_CHECKS=0;#取消外键约束,Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构。

DROP TABLE IF EXISTS `custinfo`;
CREATE TABLE `custinfo` (
 `custID` varchar(19) NOT NULL COMMENT ‘客户号‘,
 `name` varchar(10) NOT NULL COMMENT ‘姓名‘,
 `sex` varchar(10) NOT NULL COMMENT ‘性别‘,
 `phone` varchar(20) NOT NULL COMMENT ‘手机号‘,
 `ID` varchar(19) DEFAULT NULL COMMENT ‘身份证号‘,
 `districtID` varchar(19) DEFAULT NULL COMMENT ‘区ID‘,
 `age` varchar(6) NOT NULL COMMENT ‘年龄‘,
 PRIMARY KEY (`custID`),
 KEY `FK_districtID_1` (`districtID`),
 CONSTRAINT `FK_districtID_1` FOREIGN KEY (`districtID`) REFERENCES `area_dim` (`districtID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘客户信息表‘;

-- ----------------------------
-- Records of custinfo
-- ----------------------------
BEGIN;
INSERT INTO `custinfo` VALUES (‘1‘, ‘闫一一‘, ‘男‘, ‘13645667783‘, ‘567891321242345618‘, ‘10101‘, ‘18‘);
INSERT INTO `custinfo` VALUES (‘2‘, ‘朱三枪‘, ‘男‘, ‘13645667890‘, ‘567891984242345618‘, ‘20101‘, ‘28‘);
INSERT INTO `custinfo` VALUES (‘3‘, ‘姜为民‘, ‘男‘, ‘13642345799‘, ‘567891322489345618‘, ‘20101‘, ‘18‘);
INSERT INTO `custinfo` VALUES (‘4‘, ‘刘德华‘, ‘男‘, ‘13612345690‘, ‘567891989909345618‘, ‘30201‘, ‘28‘);
INSERT INTO `custinfo` VALUES (‘5‘, ‘张三三‘, ‘女‘, ‘13643455799‘, ‘567891322489349898‘, ‘30201‘, ‘18‘);
INSERT INTO `custinfo` VALUES (‘6‘, ‘刘思思‘, ‘男‘, ‘13643215690‘, ‘567891989909349007‘, ‘30201‘, ‘28‘);
COMMIT;

-- ----------------------------
-- Table structure for `cardinfo`
-- ----------------------------
DROP TABLE IF EXISTS `cardinfo`;
CREATE TABLE `cardinfo` (
 `acct_no` varchar(19) NOT NULL COMMENT ‘账户‘,
 `balance` varchar(19) NOT NULL COMMENT ‘账号余额‘,
 `acct_status` varchar(19) NOT NULL COMMENT ‘账号状态‘,
 `openDate` varchar(19) NOT NULL COMMENT ‘开卡时间‘,
 `openmoney` varchar(19) NOT NULL COMMENT ‘开卡金额‘,
 `custID` varchar(19) NOT NULL COMMENT ‘客户号‘,
 `districtID` varchar(19) NOT NULL COMMENT ‘开户所在区ID‘,
 PRIMARY KEY (`acct_no`),
 KEY `FK_districtID` (`districtID`),
 KEY `FK_custID` (`custID`),
 CONSTRAINT `FK_districtID` FOREIGN KEY (`districtID`) REFERENCES `area_dim` (`districtID`),
 CONSTRAINT `FK_custID` FOREIGN KEY (`custID`) REFERENCES `custinfo` (`custID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘银行卡信息表‘;

-- ----------------------------
-- Records of cardinfo
-- ----------------------------
BEGIN;
INSERT INTO `cardinfo` VALUES (‘1010357612121001‘, ‘888888‘, ‘1‘, ‘2019-07-19 08:49:37‘, ‘1.00‘, ‘1‘, ‘10101‘);
INSERT INTO `cardinfo` VALUES (‘1010357612121002‘, ‘888888‘, ‘1‘, ‘2019-07-18 08:49:37‘, ‘2.00‘, ‘2‘, ‘20101‘);
INSERT INTO `cardinfo` VALUES (‘1010357612121003‘, ‘888888‘, ‘0‘, ‘2019-07-19 08:49:37‘, ‘3.00‘, ‘3‘, ‘20101‘);
INSERT INTO `cardinfo` VALUES (‘1010357612121004‘, ‘888888‘, ‘1‘, ‘2019-07-19 08:49:37‘, ‘1.00‘, ‘1‘, ‘10101‘);
INSERT INTO `cardinfo` VALUES (‘1010357612121005‘, ‘888888‘, ‘1‘, ‘2019-07-18 08:49:37‘, ‘2.00‘, ‘2‘, ‘20101‘);
COMMIT;

DROP TABLE IF EXISTS `area_dim`;
CREATE TABLE `area_dim` (
 `districtID` varchar(19) NOT NULL COMMENT ‘区域ID‘,
 `area_name` varchar(19) NOT NULL COMMENT ‘区域名‘,
 `city_id` varchar(19) NOT NULL COMMENT ‘城市ID‘,
 `city_name` varchar(19) NOT NULL COMMENT ‘城市名‘,
 `province_id` varchar(19) DEFAULT NULL COMMENT ‘省ID‘,
 `province_name` varchar(19) DEFAULT NULL COMMENT ‘省名‘,
 PRIMARY KEY (`districtID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘区域码值表‘;

-- ----------------------------
-- Records of area_dim
-- ----------------------------
BEGIN;
INSERT INTO `area_dim` VALUES (‘10101‘, ‘二七区‘, ‘101‘, ‘郑州市‘, ‘1‘, ‘河南省‘);
INSERT INTO `area_dim` VALUES (‘20101‘, ‘高新区‘, ‘201‘, ‘青岛市‘, ‘2‘, ‘山东省‘);
INSERT INTO `area_dim` VALUES (‘30201‘, ‘新区‘, ‘301‘, ‘石家庄市‘, ‘3‘, ‘河北省‘);
COMMIT;
SET FOREIGN_KEY_CHECKS = 1; #设置外检约束

注:将同一个字段设置成2个表的外键时,2次的外键名应不同。

SQL/建立数据库/主键&外键

标签:comment   one   value   com   check   values   charset   删除表   money   

热心网友 时间:2022-05-02 23:45

在SQL数据库中,如何定义SQL主键是经常要遇到的问题,下面将为您介绍两种定义SQL主键的方法,供您参考,希望对那您有所帮助。

SQL主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说SQL主键在一张表中的记录值是唯一的。

建立SQL主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。

1.在数据库提供的GUI环境中建立(以SQL7为例)。

输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。

2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。

在建表语句中直接写:

Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )

建表之后更改表结构:

CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO

ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
【】
2.使用SQL语句创建主键约束
使用SQL语句创建主键约束可以在创建表(Create Table)或修改表(Alter Table)时进行 创建。
在修改表中创建主键约束语法:
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
PRIMARY KEY [CLUSTERED | NONCLUSTERED]
{(Column[,…n])}
参数说明:
CONSTRAINT:创建约束的关键字。
constraint_name:创建约束的名称。
PRIMARY KEY:表示所创建约束的类型为主键约束。
CLUSTERED | NONCLUSTERED:是表示为PRIMARY KEY或UNIQUE约束创建聚集或非聚集索引的关键字。PRIMARY KEY约束默认为CLUSTERED,UNIQUE约束默认为 NONCLUSTERED。
下面在指定的数据库中创建一个名为mytable的数据表,并在该数据表中将“userid”列设置为主键。
操作步骤:
(1)在操作系统中选择“开始”→“所有程序”→“Microsoft SQL Server”→“查询分析器”命令,打开查询分析器。
(2)在查询分析器的工具栏中选择要连接的数据库。
(3)在代码编辑区中编写如下代码。
SQL语句如下:
USE 销售管理系统 --引入数据库
GO
CREATE TABLE mytable --创建表
(
USERID int CONSTRAINT pk_id PRIMARY KEY, --创建主键约束
USERNAME char (20), --数据列
USERPASS char (20), --数据列
USERPHONE char (20), --数据列
USERADDRESS varchar (50), --数据列
USERLEVEL char(2) --
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
哪个牌子复印机好 复印店用什么型号的复印机好 开复印店需要什么设备 家用打印复印机哪个好 如何分辨鞋底是不是空心格子底? Ubuntu10.04下安装Oracle11g 超市监控多少钱 超市防盗器要多少钱 超市防盗系统多少钱 智能存放柜管理系统 48小时核酸检测结果在哪里查询-48小时核酸检测怎么看结果 wps演示文稿中怎样让背景应用全部幻灯片 浙江有什么好吃的特产? 想入2450,想知道I3和I5的cpu有多大的区别 东莞哪里有好玩的地方? 东莞汽车东站怎么坐车去松山湖景点 松山湖有什么好玩的地方 东莞什么地方好玩 东莞松山湖有哪几个地方好玩,门票要多少钱? 松山湖有什么好玩的地方,具体一点。 松山湖有什么好玩的地方 东莞松山湖有哪些地方好玩?东城至松山湖乘车路线?到哪个站下车? 东莞松山湖有什么好玩的??? 松山湖有什么好玩的? 东莞松山湖有什么好玩的? 松山湖有什么好玩? 东莞大郎松山湖有什么好玩的地方? 东莞松山湖有哪些好玩的地方 ios游戏被封号怎么解封 苹果商店游戏内购申请退款,为什么不会被封号?是开发商亏钱吗 ios游戏内购退款一部分会封号吗 崩坏学园2 iOS内购了水晶后,申请App Store退款会封我的号吗 SQL创建主键的语法 sql中如何在建好表后,用代码设置主键 用SQL Server 2005 创建数据库,其中的表怎么设置主键(用代码) sql数据库中怎么设置多个列同时作为表的主键? 如何用sql语句在已建立的student_info中建立主键 如何在sqlserver数据库表中建立复合主键 在新建数据库(Access)中,如何设置主键? 在SQL数据库中怎么有SQL语句为一个表创建两个主键? sql的一张表中两个主键怎么创建? 简述SQL数据库如何修改表头并设置主键 sql用命令创建主键与外键。 有没有谁知道外国潮牌和国内潮牌 国人大多还不清楚的那些 比如 极度干燥 TOPMAN ZAR 一个女生她空间发表的说说全部都是一些伤感唯美的爱情语句,搭配的图片也全部都是一些伤感、唯美的图片( 女生发说说,你现在还年轻,去见你想见的人吧,趁阳光不燥,微风正好,趁你还年轻,她还未老。配图(这辈 女朋友发的说说(有图片截图) 女人开心的图片说说 配上女的漂亮衣服图片,写上什么好说说? 表示坚强不息的女人的图片加说说参考 珍惜的,繁体字带符号的女生唯美说说 女人最爱转发的说说带图