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
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
);
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   .
     :
           .
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.