sql 기초지식-1

아기코딩단2·2022년 3월 8일
0
post-thumbnail

리눅스 쓴다하면 가상 컴퓨터 만들 수 있음(윈도우도 가능 vmware(근데 버전마다 다름 ㅇㅇ 이름이ㅇㅇ)
guest 운영체제

대문자 있는 애가 default

aws쓸 때는 블로그가 최신인지 확인하기

유저는 테이블 // mysql 은 데이터베이스라고

대소문자 구분안함 sql에서

폴더 만들기 = 데이터 베이스 만들기

GRANT ALL ON studydb.* TO 'study'@'localhost';
=> 권한을 부여하겠다 grant all 누구에게? to 누구

information_schema
=> 조회전용 데이터 베이스

실무에서는 dbms 포트번호 안 열어놓음

Private IPs: 172.31.41.18 aws 내부

주소 % 주면 어디서든지 접속가능

-h 옵션안주면 로컬로 접속하라는 거임

DBMS 마다 명령문법이 다르다면 사용하기 매우 불편할 것이다. 그래서 표준 명령 문법을 제정 => Structure Query Language(SQL = Sequal(옛날 발음))

SQL - DBMS에 상관없이 명령문을 작성할 때 사용하는 표준 문법
But DBMS 마다 고유의 문법이 존재 // DBMS에 따라 표준 SQL 문법의 지원 범위가 다르다.(버전마다 지원범위가 조금씩 다를 수 있음 그래서 Oracle에서 지원하는 표준문법이 MS-SQL에 지원하지 않을 수 있음 그래서 MS-SQL에서 지원하지 않는 표준문법을 따로 MS-SQL에 맞게끔 변경해야한다.)
Oracle = 표준 SQL + a
MS-SQL = 표준 SQL + b
MariaDB = 표준 SQL + c

왜 DBMS마다 전용 문법이 있는가?!?
DBMS 마다 특별히 제공하는 고유 기능이 있다(자동차마다 기능이 조금씩 다른 것 처럼(소비자를 모으기 위해서 / 경쟁력)) => 그 기능을 제어하는 문법이다.

필수 입력 항목 = not null ***
root에서 뭐 추가 금지

뭐 추가할 떄마다 db이름 주기가 좀 번거로움 그래서 use 데이터베이스명db; 하면 번거롭게 추가안해도됨
안바꾸면 계속해서 데이터베이스명.test1 이런식으로 줘야함 (번거로움)

sql에서 field = colum

테이블 정보 보기

describe 테이블명;
desc 테이블명;
예) describe test01; // 밑에 두개 같은 거임
예) desc test01;

ERP - 자원관리(계획) 시스템

row = 행 = entitiy = 튜플 = 가로줄

int(11) - 11자리 제한이라는 뜻

UI 프로토타입이 나와야지 데이터 테이블이 나오게 됨

DB모델링 해야지 ER모델링이 나오게 됨

테이블을 지우는 순간 모든 데이터가 지워지게 됨

데이터 베이스는 무결성(온전함을 의미한다 data integrity)

select 쓸 때 컬럼 출력 순서는 데이터 생성한 순으로 나옴

컬럼명 데이터 타입 이후 디폴트

컬럼에 default 옵션이 있는 경우,

  • 컬럼 값을 생략하면 default 옵션으로 지정한 값이 사용된다.
  • 컬럼 값을 null로 지정하면 기본 값이 사용되지 않는다.

    insert into test1(no, age, name) values(6, null, null);

=> 사용자가 명확하게 null 이라고 줬기 때문

https://mariadb.com/ <= documentation

sql 의 주석 /**/ <= 부분주석 -- <= 한줄주석

데이터베이스에 타입안맞아도 괜찮은데 잘려버림(반올림) <= mariaDB의 특징

DBMS는 정교하게 값을 제어가능하다 (6, 2) 같이

create table test1(
c1 int,
c2 float,
c3 numeric(6,2), / 소수점 자릿수를 지정하면 부동소수점으로 사용 /
c4 numeric -- decimal 과 같다
);

numeric = decimal

  • 전체 자릿수와 소수점 이하의 자릿수를 정밀하게 지정할 수 있다.
  • numeric(n,e) : 전체 n 자릿수 중에서 소수점은 e 자릿수다.
    • 예) numeric(10,2) : 12345678.12
  • numeric : numeric(10, 0) 과 같다.

int 는 21억을 넘어가면 안됨
numeric은 자릿수로 따지기 때문

profile
레거시 학살자

0개의 댓글