리눅스 쓴다하면 가상 컴퓨터 만들 수 있음(윈도우도 가능 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 옵션이 있는 경우,
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
int 는 21억을 넘어가면 안됨
numeric은 자릿수로 따지기 때문