"Basic"和"Key"都是英文单词,它们在不同的上下文中可能有不同的含义和用法,因此需要具体情况具体分析。
在计算机领域中,"Basic"和"Key"通常被用于描述不同的概念:
1 "Basic"通常指基本的、基础的或初步的意思。例如,在编程语言中,Basic是一种广泛使用的高级编程语言,通常被用于教育和学习编程。
2 "Key"通常指关键的、重要的或核心的意思。例如,在加密技术中,"Key"表示密钥,是加密和解密数据所必需的信息;在数据库管理中,"Key"通常指主键,是用于唯一标识数据记录的字段。
综上所述,"Basic"和"Key"之间的区别主要在于它们所代表的概念不同,前者通常表示基础、初步的意思,后者通常表示关键、重要的意思。
这是外键,用来约束的,下面的表示本表属性id参照person表的id属性,并且删除级联,当删除person表中的数据时,本表中存在person表中id属性的行将被删除,保持数据库的信息一致。
create table news( ---建一个名为news的表
newsid number primary key, ----主键为newsid
title varchar2(20), ----剩下的其他字段
content varchar2(1000),
createdate varchar2(20)
);
create sequence news_seq ----创建一个时序
minvalue 1 ----最小值1
maxvalue 9999999 ----最大9999999
start with 1 ----从1开始
increment by 1 ----增减值1
nocache;
Create Or Replace Trigger news_tri --创建一个触发器
Before insert ---条件是执行insert之前触发
on student ---下边的是触发字段和事件
for each row
begin
select news_seqNEXTVAL into :newnewsid from dual;
end;
自己找本sql的书,自己转。别人动手自己永远学不会
对key-value数据库理解的不正确。
key-value是存储形式,即每存储一次数据(value),必须增加一个key。如存储value为1的数据,那可能需要这样存储:key:1,value:1。
存储数据的区域,可以理解为mysql中的一个字段,但是这个字段可以存储若干个key/value,这个取决与具体key/value数据库
查询时,可以支持该字段中的任意一个或者多个key/value;即可以理解为mysql中的多个字段。
没有字段概念,可以查询存储的任意数据!
对表中的数据进行限定,保证数据的正确性、有效性和完整性。
分类:
①、主键约束:primary key
②、非空约束:not null
③、唯一约束:unique
④、外键约束:foreign key
一、非空约束:not null,某一列的值不能为null
创建表时添加约束
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL -- name为非空
);
1
2
3
4
1
2
3
4
创建表完后,添加非空约束
CREATE TABLE stu(
id INT,
NAME VARCHAR(20)
);
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
1
2
3
4
5
6
1
2
3
4
5
6
在这里插入描述
删除name的非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20);
1
1
在这里插入描述
二、唯一约束:unique,某一列的值不能重复
注意:唯一约束可以有NULL值,但是只能有一条记录为null
在创建表时,添加唯一约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE -- 手机号
);
1
2
3
4
1
2
3
4
在这里插入描述
删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
1
1
在这里插入描述
在表创建完后,添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
1
1
三、主键约束:primary key。
注意:
①、含义:非空且唯一
②、一张表只能有一个字段为主键
③、主键就是表中记录的唯一标识
在创建表时,添加主键约束
create table stu(
id int primary key,-- 给id添加主键约束
name varchar(20)
);
1
2
3
4
1
2
3
4
在这里插入描述
删除主键
-- 错误 alter table stu modify id int ;
ALTER TABLE stu DROP PRIMARY KEY;
1
2
1
2
在这里插入描述
创建完表后,添加主键
create table stu(
id int,
name varchar(20)
);
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
1
2
3
4
5
6
1
2
3
4
5
6
自动增长:
①、概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长
②、在创建表时,添加主键约束,并且完成主键自增长
create table stu(
id int primary key auto_increment,-- 给id添加主键约束
name varchar(20)
);
1
2
3
4
1
2
3
4
在这里插入描述
③、 删除自动增长
ALTER TABLE stu MODIFY id INT;
1
1
在这里插入描述
④、添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
1
1
四、外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。
CREATE TABLE emp(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(30),
age INT,
dep_name VARCHAR(30),
dep_location VARCHAR(30)
);
INSERT INTO emp VALUES (1, '张三', 20, '研发部', '广州');
INSERT INTO emp VALUES (2, '李四', 21, '研发部', '广州');
INSERT INTO emp VALUES (3, '王五', 20, '研发部', '广州');
INSERT INTO emp VALUES (4, '老王', 20, '销售部', '深圳');
INSERT INTO emp VALUES (5, '大王', 22, '销售部', '深圳');
INSERT INTO emp VALUES (6, '小王', 18, '销售部', '深圳');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
在这里插入描述
通过上面的表格,我们可以知道,表中的信息是员工在不同的部门里面,于是我们可以将上面的一张表分开,分成两张表格。一张部门的表,一张员工的表。
-- 创建部门表(id,dep_name,dep_location)
CREATE TABLE department(
id INT PRIMARY KEY AUTO_INCREMENT,
dep_name VARCHAR(20),
dep_location VARCHAR(20)
);
-- 创建员工表(id,name,age,dep_id)
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
age INT,
dep_id INT -- 外键对应主表的主键
);
-- 添加两个部门
INSERT INTO department VALUES(NULL, '研发部','广州'),(NULL ,'销售部', '深圳');
-- 添加员工信息
INSERT INTO employee (NAME,age,dep_id) VALUES('张三',20,1);
INSERT INTO employee (NAME,age,dep_id) VALUES('李四',21,1);
INSERT INTO employee (NAME,age,dep_id) VALUES('王五',20,1);
INSERT INTO employee (NAME,age,dep_id) VALUES('老王',20,2);
INSERT INTO employee (NAME,age,dep_id) VALUES('大王',22,2);
INSERT INTO employee (NAME,age,dep_id) VALUES('小王',18,2);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
在这里插入描述
倘若现在我们把删除department表里面的数据,是可以删除的;但是这不符合实际情况。因为我们此时虽然删除掉了deparment表里的数据,但是employee表里面还是存在部门的信息。只有当部门里面的员工全部开除后,我们才可以删除部门表。
1添加外键
在创建表时,可以添加外键:
create table 表名(
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);
1
2
3
4
5
1
2
3
4
5
-- 创建员工表(id,name,age,dep_id)
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
age INT,
dep_id INT, -- 外键对应主表的主键
CONSTRAINT emp_dept_fk FOREIGN KEY (dep_id) REFERENCES department(id)
);
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
1
1
创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
1
1
2 级联 *** 作
我们如果要是直接在deparment表中直接将id=1修改为id=5的话,是不可以的。因为department的id被关联到employee表中了,所以修改会产生错误。;但是我们可以通过级联 *** 作进行修改。
添加级联 *** 作
语法:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称
FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称)
ON UPDATE CASCADE ON DELETE CASCADE;
1
2
3
1
2
3
分类:
①、级联更新:ON UPDATE CASCADE
②、级联删除:ON DELETE CASCADE
示例演示:
①、删除外键employee表中的外键(因为此时表中已经添加外键,需要先删除)
-- 删除外键
ALTER TABLE employee DROP FOREIGN KEY emp_dept_fk;
1
2
1
2
②、添加外键的同时,还要添加级联 *** 作
ALTER TABLE employee ADD CONSTRAINT emp_dept_fk FOREIGN KEY ( dep_id ) REFERENCES department ( id ) ON UPDATE CASCADE ON DELETE CASCADE;
1
1
③、倘若我们现在要是删除employee表中id=1的数据,那么department表中的数据也会跟着一起更新数据。
delete from department where id=1;
1
1
-- 查询department表数据
select from department;
1
2
1
2
在这里插入描述
-- 查询employee表数据
select from employee;
1
2
1
2
在这里插入描述
primary key(sid,cid)是联合主键,也就是说通过字段sid和cid来确认一条记录的唯一性。
解释:”primary key“在数据库中的意思是主键,用来确保记录的唯一性,这样的例子很多,如身份z号、学生证号等都是这样。联合主键的话,意思就是一个字段无法确认唯一性,要通过两个或者多个字段来确认,如某人的数学成绩,那么就是学号和数学学科的编号来确认某人的数学成绩。
unique Key是唯一键,而Primary key是主键
Primary key 与Unique Key都是唯一性约束。但二者有很大的区别:
1、Primary key的1个或多个列 必须为NOT NULL,如果列为NULL,在增加PRIMARY KEY时,列自动更改为NOT NULL。而UNIQUE KEY 对列没有此要求。
2、一个表只能有一个PRIMARY KEY,但可以有多个UNIQUE KEY。
以上就是关于basic和key的区别全部的内容,包括:basic和key的区别、数据库里foreign key......是什么意思、数据库中的key seq是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)