MySQL 의 주 키 와 사 무 를 자세히 설명 합 니 다.

1.MySQL 메 인 키 와 표 필드 의 설명
 1.메 인 키 및 자체 증가
모든 시 계 는 보통 하나의 메 인 키 만 있 고 모든 데이터 의 유일 성 을 나타 낸다.
특성:값 중복 불가,빈 null 불가
형식:테이블 테스트 생 성(ID int primary key)
홈 키+자체 증가 하 는 쓰기:
형식:create table test(ID int primary key autoincrement)

메모:자체 증 가 는 메 인 키 에 맞 춰 만 사용 할 수 있 습 니 다.(단독 정의 시 오류 가 발생 할 수 있 습 니 다)
 2.표 필드 의 주석

mysql> alter table test modify Name varchar(12) comment '   ';

3.다 중 표 조회

mysql> create table A(ID int primary key auto_increment,Name varchar(12),Department int);
mysql> create table B(ID int primary key auto_increment,Name varchar(12));
mysql> insert into B(Name) values("  "),("  ");
mysql> insert into A(Name,Department) values("  ",1),("  ",2),("  ",2);

mysql> select B.Name   ,A.Name from B,A where B.ID=2 and A.Department=2;

2.데이터베이스 사무 개요
데이터베이스:관계 형 데이터베이스(사무 지원);비 관계 형 데이터베이스(지원 되 지 않 음)
  • 사무 란 무엇 입 니까?일괄 작업 이 완전히 실행 되 거나 완전히 실행 되 지 않 거나 데이터 의 완전 성 을 유지 합 니 다.쉽게 말 하면 성공 하거나 성공 하지 못 하 는 것 이다.
  • 하나의 사무 에 여러 개의 SQL 문 구 를 포함 하고 이 SQL 문 구 는 일정한 관계 가 있 습 니 다.
  • 사 무 는 N 개의 SQL 문장(N>=0)
  • 일 수 있 습 니 다.
  • 은 모든 데이터베이스 저장 엔진 이 업 무 를 지원 하 는 것 이 아니 라 InnoDB 저장 엔진 은 업무 처 리 를 지원 합 니 다.
  • 1.데이터베이스 트 랜 잭 션 기능(ACID)
    트 랜 잭 션 특성
    역할.
    원자 성(Atomic)
    업무 의 모든 조작 은 전부 완성 되 거나 전부 완성 되 지 않 으 면 어느 중간 부분 에서 끝나 지 않 는 다.
    일치 성(일관성)
    업무 가 시작 되 기 전과 업무 가 끝 난 후에 데이터 뱅 크 의 완전 성 제한 은 파괴 되 지 않 았 다.
    격 리 성(격 리 성)
    여러 개의 업무 가 데이터베이스 에 있 는 같은 데 이 터 를 동시에 방문 할 때 나타 나 는 것 은 상호 관계 이다.
    지속 성(내구성)
    트 랜 잭 션 이 완료 되면 변경 사항 을 영구적 으로 저장 하고 잃 어 버 리 지 않 습 니 다.
    2.트 랜 잭 션 동시 다발 로 트 랜 잭 션 격 리 하지 않 음
  • 더러 운 읽 기:사무 A 는 사무 B 가 수정 하지 않 은 데 이 터 를 읽 습 니 다.이때 사무 B 가 중간 에 실행 에 실패 하면 다시 굴 러 갑 니 다.이때 사무 A 가 읽 은 것 은 더러 운 데이터 입 니 다.
  • 중복 읽 을 수 없습니다.같은 사무 에서 같은 데 이 터 를 읽 은 결과 가 일치 하지 않 습 니 다(데이터 에 대한).
  • 환 독:같은 사무 에서 같은 조회 가 여러 번 되 돌아 오 는 결과 가 다 릅 니 다.
  • 구별:
  • 더러 운 읽 기와 중복 읽 을 수 없습니다.더러 운 읽 기 는 아직 제출 되 지 않 은 업데이트 데 이 터 를 읽 은 것 입 니 다.중복 읽 을 수 없 는 것 은 같은 사무 에서 몇 번 읽 은 데이터 가 다 릅 니 다.
  • 중복 읽 기와 환 독 불가:모두 같은 업무 에서 전 자 는 몇 번 의 읽 기 데이터 가 다 르 고 후 자 는 몇 번 의 읽 기 데이터 가 전체적으로 다르다.
  • 격 리 단계:
    격 리 단계
    역할.SERIALIZABLE(직렬 화)
    더러 운 독 서 를 피하 고 중복 독 서 를 해 서 는 안 된다.REPEATABLE-READ(중복 읽 기 가능)
    더러 운 독 서 를 피하 고 중복 독 서 는 안 된다.READ-COMMITTED(읽 기 제출)
    오독 을 피하 다READ-UNCOMMITTED(읽 기 미 제출)
    무용지물
    MySQL 은 위의 4 가지 격 리 단 계 를 지원 합 니 다.기본 값 은 중복 읽 기 입 니 다.격 리 단 계 를 수정 하려 면 sed -i '/\[mysqld]/a transaction-isolation = SERIALIZABLE' /etc/my.cnf 이 필요 합 니 다.
    
    mysql> show variables like '%tx_is%';
    mysql> exit
    [root@MySQL ~]# sed -i '/\[mysqld]/a transaction-isolation = SERIALIZABLE' /etc/my.cnf
    [root@MySQL ~]# systemctl restart mysqld
    [root@MySQL ~]# mysql -uroot -p123123 -e "show variables like '%tx_is%';"
    

    4.MySQL 데이터베이스 관리 업무
    트 랜 잭 션 을 관리 하 는 세 가지 명령:
  • BEGIN:업 무 를 시작 하고 뒤에 여러 개의 데이터베이스 조작 문구 가 실 행 됩 니 다.
  • COMMIT:앞의 BEGIN 작업 에 대응 하여 트 랜 잭 션 처리 결 과 를 데이터 파일 에 저장 하 는 트 랜 잭 션 을 시작 합 니 다.
  • ROLLBACK:하나의 사 무 를 스크롤 백 하기 시 작 했 습 니 다.BEGIN 과 COMMIT 사이 에서 업무 중의 모든 문 구 를 취소 하고 BEGIN 이전의 데이터 상태 로 복원 합 니 다.
  • set autocommit=0/1:자동 제출 을 사용 하지 않 거나 켜 거나 MySQL 연결 프로그램 을 종료 할 때 자동 으로 제출 하거나 다음 DML(데이터 조작 언어)문 구 를 실행 합 니 다.
  • 
    mysql> create table C(ID int);
    mysql> insert into C values(1),(2);
    mysql> select * from C;
    mysql> BEGIN;
    mysql> insert into C values(3);
    mysql> COMMIT;
    mysql> select * from C;
    
    
    mysql> show variables like 'autocommit';					#            
    mysql> BEGIN;
    mysql> insert into C values(4)
    mysql> select * from C;
    mysql> exit
    [root@localhost ~]# mysql -uroot -p123123 -e "select * from Coco.C where ID=4"
    
    set autocommit=0:데이터베이스 에서 임시 발효 로 수정(영구 수정 하려 면 sed -i '/\[mysqld]/a autocommit=0' /etc/my.cnf 으로 수정)
    
    mysql> set autocommit=0;
    mysql> select * from Coco.C;
    mysql> insert into Coco.C values(4);
    mysql> select * from Coco.C where ID=4;
    [root@localhost ~]# mysql -uroot -p123123 -e "select * from Coco.C where ID=4"
    

    주의:
  • BEGIN 이나 START TRANSACTION 을 사용 하여 하나의 사 무 를 시작 한 후,자동 으로 제출 하면 COMMIT 나 ROLLBACK 을 사용 하여 사 무 를 끝 낼 때 까지 사용 하지 않 는 상 태 를 유지 합 니 다.
  • 이후 자동 제출 모드 는 이전 상태 로 복 원 됩 니 다.즉,BEGIN 전 autocommit=1 이면 이번 업 무 를 마 친 후 autocommt 또는 1 입 니 다.
  • BEGIN 전 autocommit=0 이면 이번 업 무 를 마 친 후 autocommit 또는 0 입 니 다.
  • 1)별명
    
    mysql> select ID as "  ",Name as "  ",Department as "  " from A where ID=1;
    mysql> select ID "  ",Name "  ",Department "  " from A where ID=1;
    

    2)무 거 운 것 을 제거한다
    
    mysql> select distinct Department from A;
    

    3)AND 와 OR 연산 자
    AND:논리 와(조건 을 모두 만족 시 켜 야 한다);OR:논리 적 이거 나(조건 은 하나만 충족 시 켜 야 한다).
    
    mysql> select * from A where ID >= 3 and Department = 2;
    mysql> select * from A where ID >= 3 or Department = 2;
    
  • in:한 필드 의 값 이 여러 개 일 경우 in 키 워드 를 사용 할 수 있 습 니 다.
  • between and:특정한 두 수치 사이 에 and 양쪽 의 수 를 포함 합 니 다.
  • 
    mysql> select * from A where ID in(1,3,4);
    mysql> select * from A where ID not in(1,3,4);
    mysql> select * from A where ID between 1 and 3;
    

    4)SQL LIKE 연산 자
  • -_:단일 알 수 없 는 문 자 를 대표 합 니 다.
  • -%:여러 개의 알 수 없 는 문 자 를 대표 합 니 다.
  • 예:A%A 시작,%B 끝,%C%C 포함,D%두 번 째 알파벳 은 D,%E마지막 세 번 째 알파벳 은 E,%@163.com 163 메 일 입 니 다.
  • 
    mysql> select * from A where Name like "% %";
    mysql> select * from A where Name like "% %" or Name like "% ";
    

    5)SQL ORDER BY 자구
  • asc:오름차 순(기본 값 은 오름차 순)
  • desc:내림차 순.
  • 
    mysql> select * from A order by ID desc;
    mysql> select * from A order by Department,ID desc;
    

    6)리 미트 자구
    
    mysql> select * from C;
    mysql> select * from C limit 2;
    mysql> select * from C limit 0,2;
    

    총결산
    MySQL 키 와 업무 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 MySQL 키 와 업무 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기