User_ID와 Consumer_ID, Product_ID와 Product_ID는 type이 동일해야 한다.
SELECT email, UPPER(email) FROM users
SELECT username, LENGTH(username) FROM users
SELECT username, CHAR_LENGTH(username) FROM users
문자열 전체가 일치해야 한다
인강이랑 다르다. 인강에선 LOCATE는 일치하는 부분이 있으면 1을 반환한다 했는데, 실제 mysql에서 일치하는 부분의 인덱스가 반환된다. 업데이트 된건가?
-두 번째 인자 미만의 문자열일 경우, 남은 공간을 왼족에서부터 세 번째 인자로 채움.
-설명 생략
-문자열에서 왼쪽/오른쪽 공백 제거
왼쪽부터 원하는 문자열을 제거하는 쿼리
안되는데요....(오른쪽문자열을 해서 그런가보다)
이렇게 왼쪽 문자열 하니까 된다.
오른쪽부터 원하는 문자열을 제거하는 쿼리
양쪽에서 원하는 문자열 제거
두 번째 인자를 설정하지 않을 시 default는 0
-소수점을 (두번째 인자)자리 까지 출력
-(두번째 인자)미설정 시 default는 0
-(첫 인자)를 (두번째 인자)로 나눈 나머지 값 출력
-숫자 올림한 값 출력
-두번째 인자 줘도 된다 했는데 실제론 해보면 안됨
숫자 내림한 값 출력
1번째 인자를 2번째 인자만큼 제곱한 값 출력
mysql 시스템의 현재 날짜와 시간 출력
SELECT NOW();
주어날 날짜에서 (두번째 인자)만큼 지난 시간을 출력
-시간 단위는 SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR이 있다.
합계
평균
-최대값 최소값은 기본적으로 데이터 정렬이라는 내부과정을 거치기 때문에,
데이터 양이 클수록 많은 부하가 걸린다.
-그룹화
일반 쿼리 조건문엔 where를, group by에선 having을 써야한다.
SELECT ID, avg(Product_Sum) from purchase group by ID having avg(Product_Sum) > 3
select ID, sum(product_price) from product group by ID with(rollup);
-product테이블의 product_price컬럼의 레코드의 합을 구하고 이를 id컬럼으로 그룹화 및 rollup(자동소계)하는 쿼리라는데 모르겠다. 엑셀에서 부부합 기능과 유사하다는데,
단일 행 쿼리, 다중 행 쿼리, 다중 컬럼 쿼리, 상호 연관 커리
단일 행 쿼리는 결과값이 하나일 때, 다중 행 쿼리는 결과값이 여러개 일 때.
메인쿼리의 값을 서브쿼리가 사용하고, 서브쿼리의 값을 받아 메인쿼리가 계산하는 구조
위 조건을 말로 풀어보려 했는데 꼬인다ㅇㄴㅇㄴ
사용법:
원랜 김오성님 직장 위치 null이었는데, 학동역으로 update해야될 경우.
UPDATE user set location ="학동역" where name="김오성";
update에 where을 주지 않으면, 모든 location이 "학동역"으로 바뀐다.