天天看點

資料庫SQLite常用語句<三>

一、資料庫表的操作:

1. 建立資料庫表

建立資料庫:create table 表名(
        _id integer primary key autoincrement,//主鍵id自增長
        name varchar(),
        age integer(),
        birthday datetime   //最後一行不用寫 逗号(,)
    );
           

2. 修改字段名

遇到建立表的時候字段寫錯了,需要修改字段名稱:
alter table 表名 change 舊的字段名 新的字段名 colType;

例子: alter table person change age sex varchar();
     将person表中年齡的字段改為性别的
           

3. 修改字段類型

如果主鍵本來是int,現在要改成varchar類型:

方法一:alter table tableName change colName colName colType[(size)];
例子: alter table person change age age varchar();

方法二:alter table tableName modify colName colType[(size)];
例子: alter table person modify age varchar();
           

4. 添加新字段

如果實體對象有新屬性了,需要添加表字段:
alter table tableName add newColName colType[(size)];
例子: alter table person add sex varchar();
     添加了性别字段
           

5. 删除字段

如果字段屬性不需要了,應該删除掉:
alter table tableName drop colName;
例子: alter table person drop sex;
     删除性别字段
           

二、資料庫的操作(更适用于背景開發)

1. 插入資料

向資料表中添加新資料,使用關鍵字:insert
方式一:insert into 表名 values("001","zhangsan","23");
例子: insert into person values ("001","張三","23");
      添加了一條資料id為001,姓名張三,年齡23

方式二:insert into 表名(name,age) values("lisi","24");
例子: insert into person(name,age) values("李四","24");
           

2. 修改資料

對已經存在于資料表中的資料進行修改操作,使用關鍵字:update
update 表名 set colName1=newValue1,colName2=newValue2... where 條件
例子:update person set name="張三",age="23" where name="李四"
           

3. 删除資料

對于資料表中廢棄沒有用的資料需要清理删除,使用關鍵字:delete
delete from 表名 where 條件;
例子: delete from person where name="張三";
      删除name為張三的資料,沒有where表示删除所有資料
           

4.查詢資料

查詢是使用會最頻繁的操作,使用關鍵字:select

select * from 表名 where 條件;  
select 字段清單 from 表名 where 條件;
例子: select * from person;
     查詢表中所有資料
           

1). < > <= >= <> 類型

分别表示小于 大于 小于等于 大于等于 不等于

select * from person where age>;
查詢person表中年齡大于23的
           

2). 在一組資料中 in

select * from person where age in (,,);
查詢年齡在22,33,55的所有資料
           

3). 條件并列 and

select * from person where age> and id in ('2222','3333','4444');
查詢年齡大于33 并且 id在2222,3333,4444中的所有資料
           

4). 在兩者之間 between … and …

select * from person where age between '23' and '33';
查找age在 23 和 33之間的所有資訊
           

5). 模糊查詢:like 配合 %使用,%代表位置的字元串部分

select * from person where name like '%張%';
查詢name包含 張 的資料
select * from person where name like '張%';
查詢name 以 張開頭 的資料
           

6). 查詢補充:如果想查詢字段為null的 或者 字段不為null的怎麼判斷?

查詢為null的:
select * from person where age is null;
select * from person where isnull (age);
查詢不為null的:
select * from person where age <> "null";
select * from person where age is not null; 
           

5. 排序、 聚集函數、分組

1). 排序

對查詢的結果根據某一列進行排序,順序、倒序,使用關鍵字 order by desc/asc

select * from 表名 order by 字段  asc/desc;

例子: select * from person order by age desc;
     根據年齡倒序排列
     select * from person where age> order by age desc; 
     加上where條件, 年齡大于22的倒序排列

注意order by 應該放查詢語句最後
           

2). 聚集函數 這些函數是sql給我們提供好的函數,用于各種運算

(1). count():統計記錄數,count(*)表的總記錄數,count(字段)對應字段不為NULL的記錄數
           
select count(*) from person;
person表中的總數

select count(age) from person;
person表中age不為null的總數
           
(2). sum():求和函數統計列數值的總和
           
select sum(age) from person;
person表中age的總和
select sum(age)/count(*) from person;
使用count()和sum()計算平均年齡: person表中平均年齡
           
(3). avg():計算平均數
           
select avg(age) from person;
person表中平均年齡
           
(4). max()最大值、 min()最小值
           
select max(age) from person;
最大年齡 

select min(age) from person;
最小年齡 
           

3). 分組操作 将同一類型的資料分成一組檢視,使用關鍵字 group by

(1). 将按照age年齡分組, 
           
select age, count(*) from person group by age;
檢視每個年齡有多少人
           
(2). 如果在分組時需要聚集函數 作為查詢條件,就不能使用where 子句了,前面有示範,需要使用 having關鍵字來代替
           
select sum(age) from person having sum(age)>;
年齡大于20的人年齡總和為
           

4). 分頁查詢 limit

如果想查詢某幾條連續的資料,從第幾條開始,查詢多少條,使用關鍵字:limit

select * from 表名 limit 記錄數
例子: select * from person limit ;
查詢前3條記錄
           
select * from 表名 limit 開始位置,記錄數
例子: select * from person limit ,;
查詢 limit 1,3 : 說明記錄是從1開始計算的,3的位置結束
           

以上是對資料庫和資料庫表的一些指令操作,有錯誤還望指正!