my sql 기본 동작 상세 설명(2)
본문 유형
1.데이터베이스 의 몇 가지 제약
2.표 와 표 사이 의 관계
제약 조건:
홈 키 제약 조건:
:
mysql : (primary key) (unique) (not null) (foreign key)
:
: ,
1: : primary key
2:
,
: primary key( 1, 2)
create table pk01(
id int,
username varchar(20),
primary key (id)
);
insert into pk01 values(1,'tom');--
insert into pk01 values(1,'tom');-- Duplicate entry '1' for key 'PRIMARY'
insert into pk01 values(null,'tom');-- Column 'id' cannot be null
create table pk01(
id int primary key,
username varchar(20),
primary key (id)
);--
3: ,
create table pk02(
id int,
username varchar(20)
);
alter table pk02 add primary key( 1, 2..);
alter table pk02 add primary key(id,username);
insert into pk02 values(1,'tom');--
insert into pk02 values(1,'tomcat');--
insert into pk02 values(1,'tomcat');--
유일한 제약 조건
, null
1: : unique
create table un(
id int unique,
username varchar(20) unique
);
insert into un value(10,'tom');--
insert into un value(10,'jack');-- Duplicate entry '10' for key 'id'
insert into un value(null,'jack');--
insert into un value(null,'rose');--
2:
,
unique( 1, 2...)
3: ,
alter table add unique( 1, 2);--
alter table add unique( 1);--
alter table add unique( 2);--
////////////////
create table un01(
id int,
username varchar(20)
);
alter table un01 add unique(id,username);
insert into un01 values(1,'tom');--
insert into un01 values(1,'jack');--
insert into un01 values(1,'tom');-- Duplicate entry '1-tom' for key 'id'
비공 식 제약 조건
:
:
create table nn(
id int not null,
username varchar(20) not null
);
insert into nn values(null,'tom');-- Column 'id' cannot be null
사례 1 쌍 다 중 C 사용자 테이블 만 들 기
create table user(
id int primary key auto_increment,
username varchar(20)
);
--
create table orders(
id int primary key auto_increment,
totalprice double,
user_id int
);
데이터 의 유효성 과 완전 성 을 확보 하기 위해 제약(외부 키 제약)을 추가 합 니 다.다 중 테이블 의 한쪽 에 외부 키 제약 조건 을 추가 합 니 다.
형식:
alter table 다 중 표 이름 add foreign key(외 키 이름)references 표 이름(메 인 키);
예 를 들 면:
alter table orders add foreign key(user_id) references user(id);
외부 키 제약 조건 을 추가 한 후 다음 과 같은 특징 이 있 습 니 다.
주 표 에서 표 에서 인 용 된 데 이 터 를 삭제 할 수 없습니다
다 중 표 에 외 키 를 추가 합 니 다.이름 은 보통 주 표 의 이름 입 니 다id,필드 형식 은 일반적으로 메 인 테이블 의 메 인 키 형식 과 일치 합 니 다.
데이터 의 유효성 과 완전 성 을 확보 하기 위해 서 는 다 중 표 의 외 키 에 외 키 제약 을 추가 하면 됩 니 다.
사례 2 쌍 다 중 C 사용자 테이블 만 들 기
--
create table product(
id int primary key auto_increment,
name varchar(20),
price double
);
--
create table orderitem(
oid int,
pid int
);
C 외부 키 제약 조건 추가alter table orderitem add foreign key(oid) references orders(id);
alter table orderitem add foreign key(pid) references product(id);
개발 중 다 대 다 처리:
중간 표를 도입 하여 두 장의 표를 저장 하 는 메 인 키 는 보통 이 두 필드 를 연합 메 인 키 로 설정 합 니 다.그러면 여러 쌍 의 관 계 를 나 눌 수 있 습 니 다.
두 쌍 이 되 고 한 쌍 이 많아 졌어 요.
데이터 의 유효성 과 완전 성 을 확보 하기 위해
중간 표 에 두 개의 외부 키 제약 을 추가 하면 됩 니 다.
사례 3-다 중 표 조회
피리 칼 적:
.
select a.*,b.* from a,b;
내부 연결
1:
select a.*,b.* from a [inner] join b on ab
2:
select a.*,b.* from a,b where ab
외부 연결
:
select a.*,b.* from a left [outer] join b on ;
:
join (a) , join (b), , null .
:
select a.*,b.* from b right [outer] join a on ;
:
jion (a) , join (b), , null .
:
.
위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 my sql 기본 조작 상세 해석 통합 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답 할 것 입 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.