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 ;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.