sqlite3數據庫命令

SQL:結構化查詢語言 Structrue Query Language
是所有關係型數據庫管理系統的標準語言  
非過程化語言
只需要去定義期望結果,將產生結果的過程交給外部代理(數據庫引擎)來定義
根據SQL語言的功能可以這樣分類:
數據定義語言:DDL

創建表:
CREATE TABLE IF NOT EXISTS 表名(列名 數據類型 約束,...);
示例:
create table IF NOT EXISTS tb_student(id integer primary key,name text not null,age integer check(age > 5));
存儲類型:
integer 整型(int)
real 實型
text 文本類型
null 空類型
blob 二進制類型
常用約束條件:
primary key  主鍵--用於在關係表中唯一的標識一條記錄
unique 唯一
not null  不爲空 
check 檢查
default 默認
修改表:
修改表名:
alter table 表名 rename to 新的表名;
添加一列:
alter table 表名 add column 列名 類型 約束;
alter table tb_stu add  column addr text default "CHINA";
刪除表:
drop table 表名;
數據操縱語言:DML
插入
insert into 表名(列名,...)values(列值,...);
                                示例:
insert into tb_student(id,name,age)values(1001,"zhangfei",20);
刪除
delete from 表名 where 條件;
修改
update 表名 set 列名=新值 where 條件;
條件:
列名 運算符 值; 
運算符:=   !=  >   <     <=   >=
注:可以用 and 和 or 連接多個條件
        示例:
update tb_student set age=29 where name="liubei";
查詢
select 列名1,... from 表名 where 條件;
select id,name,age from tb_student;
        示例:
select * from 表名; //  通配符* :表示所有列
多表查詢:
tb_stu(id,name,age);
                                1001 zhangfei  20 
tb_score(id,cid,score);
1001 A001  59
tb_curse(cid,cname,cscore);
A001 math 10 
-------------------------------
id  name  socre
1001 zhangfei           59

select 列名1,... from 表1,表2,... where 條件;
                        示例:
 select id,name,score 
from tb_student,tb_score 
where name="zhangfei" and cname="A001";

--------------------------------------------------------------------------------------------------------------------------------------------
練習:
刪除zhangfei的數學成績

/*第一步*/
create table stu_tb(sid integer primary key,sname text not null,age integer check(age>16));


insert into stu_tb(sid,sname,age)values(001,"zhangfei",24);
insert into stu_tb(sid,sname,age)values(002,"liubei",30);
insert into stu_tb(sid,sname,age)values(003,"guanyu",28);
insert into stu_tb(sid,sname,age)values(004,"zilong",21);

select * from stu_tb;


/*第二步*/
create table course_tb(cid integer primary key,cname test not null);

insert into course_tb(cid,cname)values(101,"語文");
insert into course_tb(cid,cname)values(102,"英語");
insert into course_tb(cid,cname)values(103,"數學");
select * from stu_tb;


/*第三步*/
create table sc_tb(sid integer,cid integer,score real);

insert into sc_tb(sid,cid,score)values(001,101,91);
insert into sc_tb(sid,cid,score)values(001,103,84);
insert into sc_tb(sid,cid,score)values(002,101,58);
insert into sc_tb(sid,cid,score)values(002,102,96);
insert into sc_tb(sid,cid,score)values(003,102,71);
insert into sc_tb(sid,cid,score)values(003,103,50);

select * from sc_tb;

//刪除zhangfei的數學成績
drop from sc_tb where (select stu_tb.sid from stu_tb where sname="zhangfei")=sc_tb.sid and(select course_tb.cid from course_tb where cname="數學")=sc_tb.cid ;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章