Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client



-> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘PASSWORD

'이것저것 > 잡다한것' 카테고리의 다른 글

라즈베리 node sqlite3 install  (0) 2019.04.02
pm2 ubuntu 18.04  (0) 2018.10.29
아두이노 엑셀연동 (PLX-DAQ)  (0) 2017.03.08
아두이노 수위센서 / 수분센서  (0) 2017.02.20
라즈베리파이 카메라 파이썬  (0) 2017.02.13

학생 정보 관리 웹


필요한 페이지

모든 학생 리스트를 보여주는 페이지

학생정보를 입력해서 학생을 데이터베이스에 추가할 수 있는 페이지

학생정보중 일부를 변경해서 데이터베이스 정보를 수정할 수 있는 페이지


필요 요청

- studentList.do : 학생리스트 보여주는 페이지를 요청

- deleteStudent.do : 파라미터로 넘어온 학생을 삭제해주는 요청 -> 요청 처리 후 studentList.do로 리다이렉트

- addStudentForm.do : 학생 추가 페이지를 요청

- addStudent.do : 학생 추가 작업을 처리 요청 -> 요청 처리 후 studentList.do로 리다이렉트

- modifyStudentForm.do : 학생 수정페이지를 요청

- modifyStudent.do : 학생 수정 작업을 처리 요청


필요 기능

- 학생 리스트 데이터를 얻어오는 기능

- 학생 데이터 한개를 지우는 기능

- 학생 데이터 한개를 추가하는 기능

- 학생 데이터 한개를 수정하는 기능


필요 데이터베이스 쿼리

- 학생 리스트 조회 쿼리

- 학생 레코드 추가 쿼리   insert into student values ~~~~

- 학생 레코드 삭제 쿼리

- 학생 레코드 수정 쿼리



1. web 프로젝트 생성 (web.xml 체크) // maven 설정

2. 디펜던시 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
cs


 * web.xml에 dispatcherServlet 등록과 루트 컨테이너를 위한 리스너등록, 

   한글처리를 위한 필터등록 <- 스프링 MVC한글처리하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    
    <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
cs


* 등록한 dispatch 서블릿이 사용할 스프링 컨테이너 설정파일 생성,

contextLoaderListener에 의해 생성될 루트컨테이너가 사용할 스프링 컨테이너 설정파일 생성


* 구조생성


* controller구현 클래스가 있는 controller패키지 컴포넌트 스캔

HandlerMapping, ViewResolver중에 필요한객체들 빈으로 등록

 Namespaces - context 체크

1
2
3
4
5
<context:component-scan base-package="controller"></context:component-scan>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>



* dataSource 빈 등록, sqlSessionFactory 빈 등록, IstudentDao 인터페이스를 MapperFactoryBean을 통해 매퍼 객체 빈 등록

service 구현클래스가 있는 service패키지 component-scan


 Namespaces - context 체크

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<context:component-scan base-package="service"></context:component-scan>
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost/데이터베이스이름"></property>
        <property name="username" value="아이디"></property>
        <property name="password" value="비밀번호"></property>
    </bean>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="classpath*:dao/mapper/**/*.xml"></property>
     
<property name="typeAliasesPackage" value="model"></property>


    </bean>
    <bean id="studentDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
        <property name="mapperInterface" value="dao.IStudentDao"></property>
    </bean>

cs





' IOT 기반 응용 SW과정 > Web Programing' 카테고리의 다른 글

Day67 네이버 API  (0) 2016.06.23
Day66 Spring-student // 스프링 인터셉터  (0) 2016.06.22
Day64  (0) 2016.06.20
Day63 Spring-member  (0) 2016.06.17
Day62 Spring MVC  (0) 2016.06.16

 


   디펜던시 설정        
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
    </dependencies>
</project>
cs


◎ web.xml에 dispatchServlet을 서블릿으로 등록 *.do에 대해서 처리하도록 서블릿매핑 설정

◎ dispatcherServlet이 사용할 스프링 설정하일 생성

◎ controller패키지에 대해서 컴포넌트 스캔

◎ internalResouceViewResolver등록(prefix는 jsp파을들을 모아놓을 폴더경로, suffix는 jsp파일들의 확장자로)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="UTF-8"?>

 
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>

        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
 
</web-app>
cs


1
2
3
4
5
6
7
8
9
10
11
12
13


    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>
 
cs


- 루트컨테이너 등록하고 사용하기

1. web.xml에 컨텍스트 로더 리스너를 등록

1
2
3
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListner</listener-class>
    </listener>
cs


2. /WEB-INF/applicationContext.xml이름으로 스프링 설정 파일 작성

1
2
3
4
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
cs


dataSource, sqlSessionFactory, mapperFactoryBean(Dao), service클래스들(컴포넌트스캔), 트랜잭션매니저

dispatcher-servlet.xml 서블릿 컨테이너 <- mvc구성요소들, 컨트롤러(컴포넌트스캔), 뷰리졸버,,,,


((((((( 리스너, 필터 참고 // http://wiki.gurubee.net/pages/viewpage.action?pageId=26740229  )))))

 web.xml에 ContextLoaderListener클래스를 리스너로 등록하면, 

/WEB-INF/applicationContext.xml을 설정파일로해서 스프링 컨테이너를 하나 빌드하고, 

1
    <context:component-scan base-package="service"></context:component-scan>
cs

해당컨테이너를 모든 서블릿 컨테이너가 공유할 수 있도록 세팅함 

- 컨트롤러에서 파라미터 받기

- 컨트롤러에서 request, session, response등 기본객체 사용하기

- 컨트롤러에서 ModelAndView외에 다양한 반환유형


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package controller;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
 
import service.MemberService;
 
//서비스 주입받아서
//받은 리퀘스트를 처리하기에 필요한 서비스의 메소드를 호출해서 결과 획득
//결과 데이터랑 적절한 페이지 세팅해서 모덴앤뷰 리턴
 
@Controller
public class MemberController {
    @Autowired
    private MemberService service;
    
    @RequestMapping("test.do")
    public ModelAndView dummy(){
        ModelAndView mav = new ModelAndView();
        mav.addObject("msg",service.getData());
        mav.setViewName("test");
        return mav;
    }
    
}
//작성 후, service참조변수에 루트컨테이너에 등록되있는 MemberSerivce빈 객체를 주입
//test.do에서 서비스 객체의 getData함수호출의 결과를 싣고 test.jsp를 뷰 페이지로 지정
 
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package service;
 
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
 
@Service
public class MemberService {
    public String getData(){
        return "What the Hell!";
        
        //작성후 루트컨테이너에 빈으로 등록
    }
}
//@Component : 이 에노테이션이 달려있는 클래스는 컴포턴트 스캔에 의해서 빈으로 등록이 됨
// 그때의 빈의 아이디는 클래스 첫글자 소문자
 
//@Controller, @Service, @Repository
//->모두 @Component의 아들들, 그러므로 얘네들도 컴포넌트스캔에 의해 빈 등록 됨
cs





' IOT 기반 응용 SW과정 > Web Programing' 카테고리의 다른 글

Day65 Spring-student  (0) 2016.06.21
Day64  (0) 2016.06.20
Day62 Spring MVC  (0) 2016.06.16
Day61  (0) 2016.06.15
Day60 Spring-AOP  (0) 2016.06.14

Model 클래스 :  2000대 초반까지는 VO라고 불렀음 (StudentVO)

         // DTO라고도 불렀음(StudentDTO)


DAO (Data Access Object)


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;


public class StudentDao {

private Connection connection;

private static final String USERNAME = "root";

private static final String PASSWORD = "mysql";

private static final String URL = "jdbc:mysql://localhost:3306/lkb";

public StudentDao(){ //여기서 connection객체를 생성해서 디비에 연결

try{

Class.forName("com.mysql.jdbc.Driver");

connection = DriverManager.getConnection(USERNAME,PASSWORD,URL);

}catch (ClassNotFoundException e) {

e.printStackTrace();

System.out.println("클래스 적재 실패");

} catch (SQLException e) {

e.printStackTrace();

System.out.println("연결 실패");

}

}

public void insertStudent(Student student){

String sql = "insert into student values (?,?,?)";

PreparedStatement pstmt = null;

try{

pstmt = connection.prepareStatement(sql);

pstmt.setInt(1, student.getId());

pstmt.setString(2, student.getName());

pstmt.setInt(3, student.getGrade());

pstmt.executeUpdate();

}catch(SQLException e){

e.printStackTrace();

}finally{

try{

if(pstmt != null && pstmt.isClosed())

pstmt.close();

}catch(SQLException e){

e.printStackTrace();

}

}

}

public void updateStudent(Student student){

//id에 해당하는 레코드를 찾아서 name과 grade를 매개변수로 받은 값으로 수정

String sql = "update student set name=?, grade=? where id=?";

PreparedStatement pstmt = null;

try{

pstmt = connection.prepareStatement(sql);

pstmt.setString(1, student.getName());

pstmt.setInt(2, student.getGrade());

pstmt.setInt(3, student.getId());

pstmt.executeUpdate();

}catch(SQLException e){

e.printStackTrace();

}finally{

try{

if(pstmt != null && pstmt.isClosed())

pstmt.close();

}catch(SQLException e){

e.printStackTrace();

}

}

}

public void deleteStudent(int id){

//유일한 컬럼값인 id가 매개변수 id에 해당하는 레코드를 삭제

String sql = "delete from student where id=?";

PreparedStatement pstmt = null;

try{

pstmt = connection.prepareStatement(sql);

pstmt.setInt(1, id);

pstmt.executeUpdate();

}catch(SQLException e){

e.printStackTrace();

}finally{

try{

if(pstmt != null && pstmt.isClosed())

pstmt.close();

}catch(SQLException e){

e.printStackTrace();

}

}

}

public Student selectOne(int id){

//유일한 컬럼값인 id가 매개변수 id에 해당하는 레코드를 조회

String sql = "select * from student where id = ?";

PreparedStatement pstmt = null;

ResultSet rs = null;

Student student = null; //리턴할 객체참조변수

try{

pstmt = connection.prepareStatement(sql);

pstmt.setInt(1, id);

rs =  pstmt.executeQuery();

if(rs.next())

{

student = new Student();

student.setId(rs.getInt("id"));

student.setName(rs.getString("name"));

student.setGrade(rs.getInt("grade"));

}

}catch(SQLException e){

e.printStackTrace();

}finally{

try{

if(pstmt != null && !pstmt.isClosed())

pstmt.close();

if( rs != null && !rs.isClosed())

pstmt.close();

}catch(SQLException e){

e.printStackTrace();

}

}

return student;

}

public List<Student> selectAll(){

String sql = "select*from student";

PreparedStatement pstmt = null;

ResultSet rs = null;

List<Student> studentList = new ArrayList<Student>();

try{

pstmt = connection.prepareStatement(sql);

rs = pstmt.executeQuery();

while(rs.next())

{

Student student = new Student();

student.setId(rs.getInt("id"));

student.setName(rs.getString("name"));

student.setGrade(rs.getInt("grade"));

studentList.add(student);

}

}catch(SQLException e){

e.printStackTrace();

}finally{

try{

if( pstmt != null && !pstmt.isClosed())

pstmt.close();

if( rs != null && !rs.isClosed())

pstmt.close();

}catch(SQLException e){

e.printStackTrace();

}

}

return studentList;

}

}


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day31 Singleton Pattern  (0) 2016.04.28
Day29 JDBC(Java Database Connectivity)  (0) 2016.04.26
Day28 MySQL  (0) 2016.04.25
Day27 MySQL  (0) 2016.04.22
Day 26 데이터베이스 프로그래밍  (0) 2016.04.21

자바 코드를 이용해  //   JDBC(Java Database Connectivity)

-DB에 접속하고

-DBMS에 명령어를 전달하고

-DBMS로부터 질의결과를 얻어오기


파일 입출력 기능

java.io.~~~~


네트워크 기능

java.net.~~~~


JDBC 기능

java.sql.~~~~   // 

여기에는 어떻게 JDBC가 구현될지 인터페이스만 있고 실제 DBMS에 접속해서 활용하는 기능들은 각각의 DBMS에 구현클래스를 만들어서 배포


외부 라이브러리를 프로젝트에 import하기


Maven Repository: Search/Browse/Explore      -> 초대형 무료라이브러리 저장소

mvnrepository.com/




import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;


//Class 로딩

//DBMS의 특정 DB와 연결을 갖는 Connection객체 획득

//내가 날릴 쿼리문을 품은 Statement객체 생성

//Connection객체에  Statement구문 객체를 전달

public class CreateTableTest {

public static void main(String[] args) {

Connection conn = null;

Statement stmt = null;

//연결한 DBMS의 주소(디비명까지)

String url = "jdbc:mysql://localhost:3306/lkb";

//접속할 mysql id와 비밀번호

String id = "root";

String pw = "mysql";

try {

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection(url,id,pw);

stmt = conn.createStatement(); // DB와 연결된 conn 객체로 부터 구문 객체를 획득

StringBuilder sb = new StringBuilder();

sb.append("create table student(")

.append("id int,")

.append("name varchar(20),")

.append("grade int")

.append(");").toString();

stmt.execute(""); //구문객체 던지기

//execute -> 테이블 생성, 수정, 삭제 등 데이터 베이스 관리 명령어 사용

//executeUpdate -> 레코드 삽입, 수정, 삭제 등 데이터 조작 명령어 사용

//executeQuery -> 레코드 조회, 테이블 조회 등 조회 명령어 사용

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();}

finally{

try {

if(conn != null && !conn.isClosed())

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}}}}


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day31 Singleton Pattern  (0) 2016.04.28
Day30 DAO  (0) 2016.04.27
Day28 MySQL  (0) 2016.04.25
Day27 MySQL  (0) 2016.04.22
Day 26 데이터베이스 프로그래밍  (0) 2016.04.21

정렬

select * from {테이블명} order by {컬럼명} ;  -> 오름차순 정렬

select * from {테이블명} order by {컬럼명} desc ;  -> 내림차순 정렬


문자함수

upper, lower, intcap

select {컬럼명}, upper(컬럼명), lower(컬럼명), intcap(컬럼명) from employee ;


날짜

sysdate() <- 현재 날짜를 구하는 함수

select sysdate() from dual ;   ------------->dual = dummy 테이블


길이

length함수

select length('    ') from dual ; -> ' ' 내의 바이트의 길이를 알려줌

select char_length('    ') from dual ; -> 순수한 문자의 길이


붙이기 = concat

select concat ('붙' , '이기') from dual ;  


substr (문자열, 시작위치 ,가져올 갯수) 

select substr('abcdefghij', 4, 3) from dual ;  -> def

select substr('abcdefghij', -4 ,3) from dual ; -> ghi   >> 음수면 오른쪽부터 시작 위치 선정   

select substr('abcdefghij',  3) from dual ;    -> cdefghij >>3번째부터 전부

select substr('abcdefghij',  -3) from dual ;   -> hij >> 뒤에 3번째부터 전부


그룹함수 : 테이블의 전체 데이터(혹은 특정 조건을 만족하는 데이터 집합)에서 통계적인 결과를 구하는 함수들

-> 그룹함수는 하나이상의 행을 그룹으로 묶어 연산하여 하나의 결과를 구함

 sum, avg, count, max, min

select sum(컬럼명) as '  ' from {테이블명} ; 

select avg(컬럼명) as '  '  from {테이블명} ;

select max(컬럼명) as '  ' from {테이블명} ;

select min(컬럼명) as '  ' from {테이블명} ;

null 값은 무시;


distinct -> 중복값 제거

select distinct 컬럼명 from {테이블명};

select count(distinct 컬럼명) from {테이블명};


select 컬럼명 from {테이블명} where 컬럼명 = (select max(컬럼명) from {테이블명}) ;


데이터 그룹 사용하기 

select 컬럼명1, avg(컬럼명) from {테이블명} group by 컬럼명1 ;


직업이 MANAGER가 아닌 친구들에 대해 직업별로 그루핑해서 직업과 그룹별레코드수 ,그룹변 sal총합을 구하고

그중에서 sal총합이 5000보다 작으면 없애버리고 sum(sal) 기준으로 오름차순 정렬


select * from {테이블1}, {테이블2} ; -> 두개의 테이블을 같이 조회                               join

select * from employee e, dept d ; 

select * from employee, dept where e.deptno = d.deptno ;

select * from employee, dept where employee.deptno = dept.deptno ;

select * from employee e join dept d using(deptno);

select * from employee e join dept d on e.deptno = d.deptno;


self join -> 자기 자신과 자기 자신을 합치는거



insert into {테이블명} (튜플값) value (입력값) -> 입력


select {column명,column명....} -> from {테이블명} 테이블내 특정 column 조회

select * from {테이블명}  -> 테이블 내의 모든 데이터 조회

select {컬럼,컬럼,컬럼,,,,} from {테이블명} where 조건 -> where절을 활용한 select 문


delete from {테이블명} -> 테이블 내의 모든 데이터 삭제

varchar값 찾을때 ' ' 


비교연산자

= 같다

> 크다  >=

< 작다  <=

 다르다 <>, != , ^=


and, or, not

select {컬럼,컬럼,컬럼,,,,} from {테이블명} where 조건 and 조건

select {컬럼,컬럼,컬럼,,,,} from {테이블명} where 조건 not조건

select {컬럼,컬럼,컬럼,,,,} from {테이블명} not where 조건


between -> 특정 컬럼의 데이터값이 하한값, 상한값 사이에 포함되는 레코드를 조회할때 사용

select {컬럼,컬럼,컬럼,,,,} from {테이블명} where {} between 000 and 000;

select {컬럼,컬럼,컬럼,,,,} from {테이블명} where {} between date and date;

select {컬럼,컬럼,컬럼,,,,} from {테이블명} where {} not between              ;


in -> 특정 컬럼의 값이 A,B,C 중에 하나라도 일치되면 참

where {column} in ( val1, val2, val3 ... );

where {column} not in ( val1, val2, val3 ... );


null값은 연산자체가 안됨.

is null -> null인지 확인

is not null -> null이 아닌지 확인


like -> 문자값 확인

select * from {테이블명} where {컬럼} like ' ' ;

select * from {테이블명} where {컬럼} like 'S%' ; -> S로 시작하는            // % -> 0글자 이상의 어떤 문자들

select * from {테이블명} where {컬럼} like '%S%' ; -> S가 포함되는 

select * from {테이블명} where {컬럼} not like '%S%' ; -> S가 포함되지 않은

select * from {테이블명} where {컬럼} like '_S%' ;  -> 두번째 글자가 S인    


산술연산

select 컬럼, 컬럼, 컬럼 (*) 숫자 from {테이블명}; ->컬럼에 숫자 곱한값

select 컬럼, 컬럼, 컬럼 ifnull(컬럼,0) from {테이블명}; -> 컬럼값이 널이면 0으로 


as (생략가능 : '' 필수)

select 컬럼 as 바꿀컬럼명 from {테이블명};

select 컬럼 as '띄어쓰기있는 컬럼명' from {테이블명}; -> 띄어쓰기있는 별칭은 따옴으로 묶어 줘야됨


레코드 수정 , 삭제

update {테이블명} set 컬럼명=값, 컬럼명=값 where 영향받을 레코드의 조건

delete from {테이블명} where 삭제할 레코드의 조건

리눅스

Ubuntu -> 개인


redhat 리눅스

-> RHEL (7) * 서버

-> Cent (7) 

-> Fedora (8?)




리눅스포털

https://www.linux.co.kr/
한국의 리눅스 포털 Linux.co.kr 무료 메일 계정, 리눅스 자료 제공.


Apache Tomcat® 

tomcat.apache.org/


Paint.NET - Free Software for Digital Photo Editing

www.getpaint.net/
Paint.NET is free image and photo editing software for computers that run Windows.


Stack Overflow

stackoverflow.com/


A language-independent collaboratively edited question and answer site for programmers.


MySQL

https://www.mysql.com/


The software's official homepage with news, downloads and documentation.

Begin Your Download - mysql-installer-web-community-5.7.12.0.msi

데이터베이스


관계형 데이터베이스는 데이터를 여러 개의 테이블에 나누어서 저장한다

DBMS ))) 오라클, SQL Server, 사이베이스, MySQL


MySQL:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

show databases; -> db확인

#create database {db이름};  -> db생성

#drop database {db이름}; -> db삭제

use {db 이름}; -> db접속


create table {table명}{      -> 테이블 생성

{컬럼명}{컬럼명}{option...}.

{컬럼명}{컬럼명}{option...}.

{컬럼명}{컬럼명}{option...}.

{컬럼명}{컬럼명}{option...}

};


show tables -> 테이블 확인

desc {테이블명} -> 테이블의 필드구조 확인


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day28 MySQL  (0) 2016.04.25
Day27 MySQL  (0) 2016.04.22
Day24 GUI 그래픽 사용자 인터페이스 // 이벤트 처리  (0) 2016.04.19
Day23 TCP  (0) 2016.04.18
Day22 TCP  (0) 2016.04.12

+ Recent posts