SQL์ด๋?
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค๊ณ๋ ํน์ ๋ชฉ์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
์ดํ๋ฆฌ์ผ์ด์ ์ ํจ๊ณผ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ์ํ์ฌ ๊ตฌ์กฐํ๋ ๋ด๋ถ SQL Database์ธ SQLite Database๋ฅผ ์ง์ํ๊ณ ์์ต๋๋ค.
- SQLite
์๋ฒ๊ฐ ์๋๋ผ ์คํ๋ผ์ธ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฃ์ด ์ฌ์ฉํ๋ ๋น๊ต์ ๊ฐ๋ฒผ์ด ์๋ฒ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ํ๋์ ํ์ผ๋ง์ ์ฌ์ฉํจ
์คํ์์ค๋ก ๋ง๋ค์ด์ง ํ์ผ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- MySQL
์๋ฒ ํด๋ผ์ด์ธํธ ๋ฐฉ์์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค
//MainActivity.java
package com.example.mydatabase;
import androidx.appcompat.app.AppCompatActivity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
EditText editText;
TextView textView;
SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
textView = (TextView) findViewById(R.id.textView);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String databaseName = editText.getText().toString(); //์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๊ฐ์ง๊ณ ์ด
openDatabase(databaseName);
}
});
}
public void openDatabase(String databaseName) {
println("openDatabase() ํธ์ถ๋จ");
database = openOrCreateDatabase(databaseName, MODE_PRIVATE, null); //๋ณด์์ MODE_PRIVATE์ฌ์ฉ
if(database != null){
println("๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํ๋จ");
}
}
public void println(String data){
textView.append(data + "\n");
}
}
<์ฝ๋ ๋ถ์ฐ์ค๋ช >
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ์ฅ์์ด๋ฉฐ ์ฑ์์๋ ํ๋์ ํ์ผ๋ก ๋ง๋ค์ด์ง๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์ด ๋๋ฉด ๊ทธ ๋ค์๋ถํฐ๋ ๋ง๋ค์ด์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํ์ฌ ์ฌ์ฉํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ด๊ณ ์ถ๋ค๋ฉด openOrCreateDatabase ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
@Override
//์๋์์ ๋ง๋ค์ด์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ๋ถ๋ฌ์์ ์ฌ์ฉ
public void onClick(View v) {
String databaseName = editText.getText().toString(); //์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๊ฐ์ง๊ณ ์ด
openDatabase(databaseName);
}
});
}
//๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ฆ
public void openDatabase(String databaseName) {
println("openDatabase() ํธ์ถ๋จ");
database = openOrCreateDatabase(databaseName, MODE_PRIVATE, null); //๋ณด์์ MODE_PRIVATE์ฌ์ฉ
if(database != null){
println("๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํ๋จ");
}
}
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
์์ ์ฝ๋์ ์ถ๊ฐ๋ ๋ถ๋ถ
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tableName = editText2.getText().toString(); //์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๊ฐ์ง๊ณ ์ด
createTable(tableName);
}
});
}
public void createTable(String tableName){
println("createTable() ํธ์ถ๋จ"); //ํจ์๊ฐ ์ ๋๋ก ์ฐ์ฌ์ง๋์ง ํ์ธ
if(database != null){
String sql = "create table " + tableName + "(_id integer PRIMARY KEY autoincrement, name text, age integer, mobile text)";
//column์ ๋ค์ด๊ฐ ๋ด์ฉ ์ค์
//๋์ด์ฐ๊ธฐ ๊ผญํด์ฃผ๊ธฐ! ์ค๋ฅ์ ์์ธ์ด ๋ ์ ์๋ฌ
database.execSQL(sql); //๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์ง ์์๋๋๋ SQL๋ฌธ์ด ์์ผ๋ฉด ์ฌ์ฉ๊ฐ๋ฅ
println("ํ
์ด๋ธ ์์ฑ๋จ");
}else{
println("๋จผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํ์ธ์");
//๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋ ๊ฒฝ์ฐ
}
}
๋ฒํผํ๋๋ฅผ ๋ ๋ง๋ค์ด์ ๋๋ฅด๋ฉด ๋ฒํผ1์ ๋๋ฅด๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๊ฐ ์คํ์ด ๋๊ณ , ๋ฒํผ2๋ฅผ ๋๋ฌ์ ํ ์ด๋ธ์ ์์ฑํ๊ฒ ํ์๋ค.
๋๋ ์ด์ ์ค๋ฅ๊ฐ ํ๋๋ฐ์ํ๋๋ฐ ๋ฒํผ1์ ๋๋ ์๋, "createTable()ํธ์ถ๋จ" ๊ณผ ํจ๊ป "๋จผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํ์ธ์"๊ฐ ํ๋ฉด์ ๋ด์๋ค. ์ด๋ button2.setOnClickListener ์ด๋ ๊ฒ ์์ฑ๋์ด์ผํ ๋ถ๋ถ์ด button.setOnClickListner๋ก ์์ฑ๋์ด ๋ฒํผ1์ ๋๋ ์๋, ๋ฒํผ2์ ๋์์ ์คํ๋์๋ ๊ฒ์ด๋ค.
์ด ์์ ์์ ์ค์ํ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๊ฐ ์คํ์ด ๋ผ์ผ ๋ค์์ SQL๋ฌธ์ ์คํํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
'APP > ANDROID' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ถ์คํธ์ฝ์ค] ์ธํฐ๋ท ์ฐ๊ฒฐ์ํ ํ์ธ (0) | 2020.03.11 |
---|---|
[๋ถ์คํธ์ฝ์ค] ํฌํผ ์ฌ์ฉํ๊ธฐ (0) | 2020.03.11 |
[๋ถ์คํธ์ฝ์ค] ๋คํธ์ํน/HTTP (0) | 2020.03.05 |
[๋ถ์คํธ์ฝ์ค] ์ค๋ ๋(Thread) (0) | 2020.03.04 |
[๋ถ์คํธ์ฝ์ค]์๋๋ก์ด๋ ํญ(Tab) (0) | 2020.02.28 |