MySQL - Table

iseon_u·2022년 5월 14일
0

Database

목록 보기
16/23
post-thumbnail

Table 테이블


Table 표 구조

식별자 명명 규칙

식별자

  • 테이블명, 데이터베이스 객체명, 칼럼명

MySQL 명명 규칙

  • 길이
    • 최대 64글자까지 가능
  • 사용 가능 문자
    • 0 ~ 9, 영문자, 한글, $, _ 사용 가능
  • 예약어 사용 불가
    • 예약어를 식별자로 사용 불가
  • 대소문자 구분
    • Windows 구분 안함 ❌
    • 리눅스, 유닉스 구분함 ✔️

칼럼 생성 주의사항

  • 칼럼 개수
    • 한 테이블에서 최대 4,096개 칼럼 가능
  • 칼럼명 중복 불가
    • 한 테이블에서 같은 칼럼명 사용 불가

칼럼 제약조건 NULL 처리

  • NULL
    • NULL 허용 칼럼
  • NOT NULL
    • NULL 비허용 칼럼
    • 반드시 값을 입력해야한다.

테이블 생성

CREATE TABLE

CREATE TABLE [IF NOT EXISTS] 테이블명
(
		칼럼1 데이터타입,
		칼럼2 데이터타입,
);
  • 칼럼 구분은 , (콤마) 사용
CREATE TABLE topic(
		id INT(11) NOT NULL AUTO_INCREMENT,
		title VARCHAR(100) NOT NULL,
		description TEXT NULL,
		created DATETIME NOT NULL,
		author VARCHAR(30) NULL,
		profile VARCHAR(100) NULL,
		level VARCHAR(100) DEFAULT '0',
		PRIMARY KEY(id));

column_name DATA_TYPE(m)

NOT NULL : 공백을 허용하지 않게 설정

AUTO_INCREMENT : 데이터가 늘어날 때마다 값 증가

NULL : 값이 없는 것을 허용

DEFAULT : 기본 값 지정

PRIMARY KEY()

Table 확인

SHOW [EXTENDED][FULL] TABLES;

Table 구조 확인

DESC topic;

Table 행 삽입

INSERT INTO topic (title,description,created) VALUES('MySQL','MySQL is ...',NOW());

Table 데이터 가져오기 ⭐

SELECT *
	FROM 테이블
	WHERE 조회 조건
	ORDER BY 칼럼1 [ASC|DESC], 칼럼2 [ASC|DESC]
	LIMIT n;
SELECT * FROM topic;
SELECT id,title FROM topic;
SELECT * FROM topic WHERE title='MySQL';
SELECT * FROM topic WHERE title='MySQL' ORDER BY id DESC;
SELECT * FROM topic WHERE title='MySQL' ORDER BY id DESC LIMIT 1;

-- 다른 데이터 베이스 조회
SELECT * FROM other.topic;
  • WHERE 절
    • 조회 조건에 맞는 데이터를 찾아 해당 로우만 조회 (TRUE)

Table 업데이트

UPDATE topic SET description='ORACLE is NO.1', title='ORACLE NO.1' WHERE id=2;
  • WHERE 문 주의 ⚠️  - 없으면 모든 값 변경

Table 데이터 삭제

DELETE FROM topic WHERE id = 2;
  • WHERE 문 주의 ⚠️  - 없으면 모든 값 삭제

Table 삭제

DROP TABLE topic;

Table 이름 변경

RENAME TABLE topic TO topic_backup;

Table JOIN ⭐

SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
SELECT topic.id,title,name FROM topic LEFT JOIN author ON topic.author_id = author.id;
  • id 이름이 중복 되기 때문에 topic.id 로 누구의 id 인지 명시

Table AS

SELECT topic.id AS topic_id FROM topic;
  • 보여지는 값 변경
profile
🧑🏻‍💻 Hello World!

0개의 댓글