@(〓〓 iOS-實用技術)[SQLite 數(shù)據(jù)庫]
- 作者: Liwx
- 郵箱: 1032282633@qq.com
目錄
- 08.iOS SQLite常用SQL語句,Navicat基本使用
- 1.Navicat基本使用
- 數(shù)據(jù)庫的理論基礎
- Navicat基本使用
- 2.SQL語言簡介
- SQL的介紹
- SQL推薦網(wǎng)站
- 3.SQL語句的基本使用
- 條件語句
- DDL數(shù)據(jù)庫定義語句
- 新建查詢
- 創(chuàng)建數(shù)據(jù)表
- 刪除表
- 修改表(重命名表)和添加字段
- 數(shù)據(jù)表添加字段
- DML數(shù)據(jù)庫操作操作(增刪改)
- 插入數(shù)據(jù)(insert)
- 更新數(shù)據(jù)(update)
- 刪除數(shù)據(jù)(delete)
- DQL數(shù)據(jù)庫查詢語句(查詢)
- 4.查詢相關語句
- 統(tǒng)計查詢
- 排序查詢
- limit分頁查詢
- 5.多表查詢
- 多表查詢
- 別名
- 表連接查詢
1.Navicat基本使用
數(shù)據(jù)庫的理論基礎
1.表格組成: 行(記錄)和列(屬性)
2.屬性類型
blob 二進制類型
integer 整型
real 浮點型
text 文本類型
null 空
- 3.主鍵
主鍵(Primary Key违诗,簡稱PK)用來
唯一
地標識某一條記錄.
例如t_student可以增加一個id字段作為主鍵,相當于人的身份證
主鍵可以是一個字段或多個字段
例如: 行和列
主鍵的設計原則
主鍵應當是對用戶沒有意義的
永遠也不要更新主鍵
主鍵不應包含動態(tài)變化的數(shù)據(jù)
主鍵應當由計算機自動生成
Navicat基本使用
- 1.創(chuàng)建SQLite數(shù)據(jù)庫連接
- 2.創(chuàng)建一個數(shù)據(jù)表,添加字段
- 可以選中某個字段,為其設置默認值和排序規(guī)則
字段設置默認值和排序規(guī)則
- 3.添加字段操作(演示添加主鍵)
1.選中要添加字段的表
2.添加主鍵(主鍵自動遞增)
- 4.插入數(shù)據(jù)
- 5.刪除數(shù)據(jù)
2.SQL語言簡介
SQL的介紹
- 1.什么是SQL?
SQL(structured query language):結構化查詢語言
SQL是一種對關系型數(shù)據(jù)庫中的數(shù)據(jù)進行定義和操作的語言
SQL語言簡潔踢代,語法簡單,好學好用
- 2.什么是SQL語句
使用SQL語言編寫出來的句子\代碼,就是SQL語句
在程序運行過程中刨裆,要想操作(增刪改查忿磅,CRUD)數(shù)據(jù)庫中的數(shù)據(jù)另患,必須使用SQL語句
Create , Retrive, Update, Delete
- 3.SQL語句的特點
不區(qū)分大小寫(比如數(shù)據(jù)庫認為user和UsEr是一樣的)
每條語句都必須以分號 ; 結尾
- 4.SQL中的常用關鍵字
select囊陡、insert芳绩、update掀亥、delete撞反、from、create搪花、where遏片、desc、order撮竿、by吮便、group、table幢踏、alter髓需、view、index等等
- 5.SQL語句的種類
數(shù)據(jù)定義語句(
DDL
:Data Definition Language)
包括create和drop, Alert
等操作
在數(shù)據(jù)庫中創(chuàng)建新表或刪除表(create table或 drop table)
數(shù)據(jù)操作語句(DML
:Data Manipulation Language)
包括insert房蝉、delete僚匆、update
等操作
上面的3種操作分別用于添加、修改搭幻、刪除表中的數(shù)據(jù)
數(shù)據(jù)查詢語句(DQL
:Data Query Language)
可以用于查詢獲得表中的數(shù)據(jù)
關鍵字select
是DQL(也是所有SQL)用得最多的操作
其他DQL常用的關鍵字有where咧擂,order by,group by和having
.
SQL推薦網(wǎng)站
- 1.SQL推薦學習網(wǎng)站
phpStudy.net: http://www.phpstudy.net/e/sql/sql_intro.html
W3School: http://www.w3school.com.cn/sql/index.asp
RUNOOB.COM: http://www.runoob.com/sqlite/sqlite-tutorial.html
3.SQL語句的基本使用
條件語句
- 1.條件語句的常見格式
where 字段 = 某個值 ; // 不能用兩個 =
where 字段 is 某個值 ; // is 相當于 =
where 字段 != 某個值 ;
where 字段 is not 某個值 ; // is not 相當于 !=
where 字段 > 某個值 ;
where 字段1 = 某個值 and 字段2 > 某個值 ; // and相當于C語言中的 &&
where 字段1 = 某個值 or 字段2 = 某個值 ; // or 相當于C語言中的 ||
DDL數(shù)據(jù)庫定義語句
新建查詢
創(chuàng)建數(shù)據(jù)表
- 1.創(chuàng)建數(shù)據(jù)表格式
格式: create table 表名 (字段名1 字段類型1, 字段名2 字段類型2, …) ;
示例: create table t_student (id integer, name text, age inetger, score real) ;
- 2.SQLite數(shù)據(jù)類型
為了保持良好的編程規(guī)范檀蹋、方便程序員之間的交流松申,編寫建表語句的時候最好加上每個字段的具體類型
建表時聲明類型或者不聲明類型都可以,也就意味著創(chuàng)表語句可以這么寫:
就算聲明為integer類型俯逾,還是能存儲字符串文本(主鍵除外)
create table t_student(name, age);
- 3.創(chuàng)建表推薦寫法
創(chuàng)建表格時, 最好加個表格是否已經(jīng)存在的判斷, 這個防止語句多次執(zhí)行時發(fā)生錯誤.
格式: create table if not exists 表名 (字段名1 字段類型1, 字段名2 字段類型2, …) ;
if not exists
: 判斷表不存在時才創(chuàng)建表.
- 4.創(chuàng)建表,設置主鍵(主鍵自動遞增)
- SQL不區(qū)分大小寫,編寫SQL規(guī)范,最好關鍵字都使用大寫.表名最好加上
t_
前綴. -
PRIMARY KEY
: 約束為主鍵. -
AUTOINCREMENT
: 自動遞增.
- SQL不區(qū)分大小寫,編寫SQL規(guī)范,最好關鍵字都使用大寫.表名最好加上
創(chuàng)建表SQL語句:
CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, name text, age integer, score integer);
- 5.執(zhí)行創(chuàng)建表的SQL語句
刪除表
- 1.刪除表的格式
格式:
DROP TABLE IF EXISTS 表名;
- 2.刪除表示例
刪除表SQL語句:
DROP TABLE IF EXISTS t_student;
修改表(重命名表)和添加字段
- 1.重命名數(shù)據(jù)表的格式
格式:
ALTER TABLE 舊表名 RENAME TO 新表名;
- 2.重命名表示例
重命名表SQL語句:
ALTER TABLE t_student RENAME TO t_person;
數(shù)據(jù)表添加字段
- 1.數(shù)據(jù)表添加字段的格式
格式:
ALTER TABLE 表名 ADD COLUMN 字段名 數(shù)據(jù)類型 限定符
- 2.數(shù)據(jù)表添加字段示例
數(shù)據(jù)表添加字段SQL語句:
ALTER TABLE t_student ADD COLUMN address text;
DML數(shù)據(jù)庫操作操作(增刪改)
插入數(shù)據(jù)(insert)
- 1.插入數(shù)據(jù)格式
-
注意
: 數(shù)據(jù)庫中的字符串內(nèi)容應該用單引號 ’ 括住;
-
格式:
insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值, …) ;
- 2.插入數(shù)據(jù)示例
插入數(shù)據(jù)示例:
INSERT INTO t_student (name, age) VALUES ('liwx', 18);
更新數(shù)據(jù)(update)
- 1.更新數(shù)據(jù)格式
格式:
update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值 where 條件;
- 2.更新數(shù)據(jù)示例
-
注意
: WHERE 條件是=
號,不是==號.
-
更新數(shù)據(jù)示例:
UPDATE t_student SET age = 19 WHERE name = 'liwx';
刪除數(shù)據(jù)(delete)
- 1.刪除數(shù)據(jù)格式
格式:
delete from 表名 where 條件;
- 2.更新數(shù)據(jù)示例
更新數(shù)據(jù)示例:
DELETE FROM t_student WHERE name = 'liwx';
DQL數(shù)據(jù)庫查詢語句(查詢)
- 1.查詢數(shù)據(jù)格式
格式1:
select * from 表名;
,*
:通配符,表示所有字段.
格式2:select 字段1, 字段2, … from 表名;
格式3:select 字段1, 字段2, … from 表名 where 條件;
- 2.查詢數(shù)據(jù)示例
更新數(shù)據(jù)示例1:
SELECT * FROM t_student;
更新數(shù)據(jù)示例2:SELECT name, age FROM t_student;
更新數(shù)據(jù)示例3:SELECT name, age FROM t_student where name = 'liwx';
4.查詢相關語句
統(tǒng)計查詢
- 1.
count(X)
計算記錄個數(shù)
計算所有記錄個數(shù):
SELECT count(*) FROM t_student;
計算age有值的記錄個數(shù)(Null不計算在內(nèi)):
SELECT count(age) FROM t_student;
- 2.
avg(X)
計算某個字段的平均值 - 3.
sum(X)
計算某個字段的總和 - 4.
max(X)
計算某個字段的最大值 - 5.
min(X)
計算某個字段的最小值
排序查詢
- 1.升序ASC
格式:
SELECT 字段1(或*) FROM 表名 ORDER BY 要排序的字段名 ASC;
示例:
SELECT * FROM t_student ORDER BY age ASC;
- 2.降序
格式:
SELECT 字段1(或*) FROM 表名 ORDER BY 要排序的字段名 DESC;
示例:
SELECT * FROM t_student ORDER BY age DESC;
- 3.多個字段排序
格式:
SELECT * FROM 表名 ORDER BY 字段名1 排序類型, 字段名2 排序類型;
示例:
SELECT * FROM t_student ORDER BY age ASC, score DESC;
limit分頁查詢
- 1.limit分頁查詢
格式:
select * from 表名 limit 數(shù)值1, 數(shù)值2 ;
示例:
SELECT * FROM t_student LIMIT 4, 8;
: 跳過最前面4條語句贸桶,然后取8條記錄.
- 2.查詢第n頁的數(shù)據(jù)
- 假設一頁顯示5條數(shù)據(jù).
示例:
SELECT * FROM t_student LIMIT 5*(n-1), 5;
- 3.特殊案例
示例:
select * from t_student limit 7;
相當于:select * from t_student limit 0, 7;
5.多表查詢
多表查詢
- 1.多表查詢數(shù)據(jù)
格式:
select 字段1, 字段2, … from 表名1, 表名2;
別名
應用場景: 當兩個表的字段同名時,可以使用別名來區(qū)分不同表同名字段.
- 1.數(shù)據(jù)表別名
格式:
select 別名1.字段1 as 字段別名1, 別名2.字段2 as 字段別名2, … from 表名1 as 別名1, 表名2 as 別名2 ;
可以給表或者字段單獨起別名, as 可以省略.
表連接查詢
格式: select 字段1, 字段2, … from 表名1, 表名2 where 表名1.id = 表名2.id;