SQLite
테이블

SQLite 명령문
삭제 : DELETE from Person
- DELETE FROM PERSON WHERE = '값'
갱신 : INSERT Into Person VALUES('값')
조회 : SELECT *from Person
오름차순 : SELECT Name from Person ORDER by name;
역순 : SELECT Name from Person ORDER by name DESC;
조건 : SELECT *From Person Where Name = '값'
null이 아닌 조건 : SELECT *From Person Where Name NOT NULL
패턴과 일치하는 문자열 찾기 : SELECT *FROM Person WHERE Birthday Like '값'
평균 : SELECT avg('행이름') FROM Person
업데이트 : UPDATE Person Set Birthday = '값' Where name = '민아' (조건)
조건문 CASE Whne '조건' then '값' end
그룹화 : SELECT round(Height), count(*)FROM Person GROUP By 1
Having : SELECT round(Height), count(*)FROM Person GROUP By round(Height) HAVING count(*) > 1;
이를 이용해서 전에 만든 닷지 게임에 적용해 보았다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mono.Data.Sqlite;
using System.Data;
using UnityEngine.UI;
using UnityEditor.UI;
using Unity.VisualScripting.Dependencies.Sqlite;
public class Rank : MonoBehaviour
{
// Start is called before the first frame update
CurrentTime currentTime;
private void Start()
{
currentTime = GetComponent<CurrentTime>();
}
public void record()
{
string dbname = "TEST.db";
string strConnection = "URI=file:" + Application.streamingAssetsPath + "/" + dbname;
IDbConnection dbConnection = new SqliteConnection(strConnection);
dbConnection.Open();
//데이터 읽기
string tablename = "test";
IDbCommand dbcommand = dbConnection.CreateCommand();
int ranktime = (int)currentTime.NewTime;
string insertQuery = $"INSERT INTO {tablename} (Score) VALUES ('{ranktime}');";
dbcommand.CommandText = insertQuery;
dbcommand.ExecuteNonQuery();
string orderQuery = $"SELECT Score from {tablename} Order By Score DESC";
IDbCommand selectCommand = dbConnection.CreateCommand();
selectCommand.CommandText = orderQuery;
IDataReader reader = selectCommand.ExecuteReader();
while (reader.Read())
{
int score = reader.GetInt32(0);
Debug.Log("Score: " + score);
}
dbConnection.Close();
}
}
새로 추가한 스크립트
TEST.db 파일의 test 테이블을 불러와서 닷지게임에서 게임이 끝난 시간을 기록하는 코드이다.
int ranktime = (int)currentTime.NewTime; 코드를 통해 Currnet 스크립트에있는 현재 시간을 참조하고
string insertQuery = $"INSERT INTO {tablename} (Score) VALUES ('{ranktime}');";
dbcommand.CommandText = insertQuery;
test 테이블에 닷지게임 기록이 갱신되도록 코드를 입력한다.
string orderQuery = $"SELECT Score from {tablename} Order By Score DESC";
IDbCommand selectCommand = dbConnection.CreateCommand();
selectCommand.CommandText = orderQuery;
IDataReader reader = selectCommand.ExecuteReader();
while (reader.Read())
{
int score = reader.GetInt32(0);
Debug.Log("Score: " + score);
}
이후 오름차순의 역순으로 테이블을 배열하고 Debug.Log를 통해 유니티에서 출력한다.

기록된 닷지게임 기록 시간

유니티 디버그를 통해 출력되는 오름차순으로 기록되는 닷지게임 기록시간