Python進階2 - 數據庫編程: SQLite入門

主要內容:

  • DDL類語句
    1. 創(chuàng)建表
    2. 刪除表
  • DML類語句
    數據的增刪改查語句

DDL類

1,數據庫管理命令

查看數據庫中的可用數據庫
.database/.databases
查看數據庫中的表
.tables 
查看表的完整信息
.schema company
編程的時候就不能用點命令了
select tb1_name from sqlite_master where type = 'table'
顯示命令:
.header on      打開字段名
.mode column    每個列10個字符的寬度
.mode width     各個列的寬度可以自定義設置
.mode line      打開行模式

2,創(chuàng)建表

create table company(
    id int primary key not null,
    name text not null,
    age int not null,
    address char(50),
    salary real
);

create table DEPARTMENT(
    id int primary key not null,
    dept char(50) not null,
    emp_id int not null
);

3,刪除表

drop table databse_name.table_name

DML類操作

1,插入數據

    insert into table_name [] values ();
    為所有字段添加值,可以省略掉指定列名稱的命令
    insert into company (id,name,age,address,salary) 
    values (1,'mayun',55,'hangzhou',20000.00);

    insert into company (id,name,age,address,salary)
    values (2,'mahuateng',49,'shenzhen',55000);

    insert into company (id,name,age,address,salary)
    values (3,'renzhengfei',70,'shenzhen',10000);

    insert into company (id,name,age,address,salary)
    values(4,'liyanhong',48,'shanxi',30000);

    insert into company (id,name,age,address,salary)
    values(5,'mali',34,'hebei',1000000.00);

    insert into company values (6,'xxx',18,'China',10000.00);

    還可以通過使用其它表來填充另一個表

2,查看數據

    select * from tableName;
    select column1,column2,...,columnN from tableName;
    
    where條件
        where子句用于指定從一個表或者多個表中獲取數據的條件
        如果滿足給定的條件,為真,則從表中返回特定值,用于過濾記錄
        一般使用比較運算符或者邏輯運算符指定過濾條件
        實例: 
        select * from company where age>=25 and salary >10000.00;
        select * from company where age>=25 and salary >20000.00
        select * from company where age is not null;
        select * from company where name like 'ma%%';
        select * from company where name glob 'li_____'   *號能在glob里面使用
        select * from company where age in (55,34);
        select * from company where age between 1 and 60;
        select age from company 
        where exists (select age from company where salary>10000.00);
        條件查詢: 通過子查詢,給了age一個條件,還有另外一種寫法

        select * from company
        where age >(select age from company where salary >10000.00);

        模糊查詢like: %(多個字符) _(單一字符)的使用
        select column_list from tableName where column like '通配符模板';
        模糊查詢glob: *(多個字符) ?(單一字符)的使用  (大小寫敏感)

        limit限制提取的行數
        offset 在哪個位置開始取

        排序: order by 
            select column_list from table_name
            where condition
            order by column1,column2,...,columnN ASC|DESC
        
        group by查詢:
            放在where條件后,order BY子句之前
            目的是使用函數對分組后的記錄做匯總
        having過濾查詢:
            select column_list
            from where
            group by
            having #注意這里位置
            order by
            實例: 
                select * from company 
                group by name
                having count(name)<6

                select * from company
                group by name
                having count(name)>6
        去重查詢:
            distinct

            select distinct column1,column2,...,columnn
            from table_name
            where condition

3,修改數據

    update table_name 
    set column1=value1,column2=value2,...,columnN = vlaueN
    [where condition];
    實例:
        update company set address='China' where id=5;

4,刪除數據

    delete from company where id = 6;
    delete from company;   #刪除全部

3,運算符

    算數運算符: + - * / %
    比較運算符: 
        == = 
        !=  <>
        < > >= <= !< !>
    邏輯運算符:
        and
        or
        not

        between...and...: 最大值和最小值范圍內的搜索值
        in: 某個值與一系列指定列表的值比較
        not in: 
        like: 某個值域通配運算符的相似值你行比較
        glob: 同like,不過是大小寫敏感的
        is  : =
        is not: !=
        ||: 連接運算符
        unique: 搜索指定表中每一行,確保唯一性
        exists: 在滿足一定條件的指定表中搜索行的存在

        
    位運算符
        |
        &
        ~
        <<
        >>
        select 1|0

4,表達式

    布爾表達式
        where之后的條件
    數值表達式
        select (1+1)
        select 1+1;
        select (1+1) as addxxxxxx;    注意不能用add
    日期表達式
        select current_timestamp;

小馬哥正在針對Python的所有常見知識進行匯總,更會有大量實戰(zhàn)項目不斷補充進來.
點擊-->全棧工程師養(yǎng)成---Python內容導航頁<--查看所有Python內容

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末蝶柿,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子交汤,更是在濱河造成了極大的恐慌,老刑警劉巖星岗,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戒洼,死亡現場離奇詭異,居然都是意外死亡寥掐,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門榨汤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怎茫,“玉大人,你說我怎么就攤上這事轨蛤。” “怎么了祥山?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵缝呕,是天一觀的道長。 經常有香客問我供常,道長,這世上最難降的妖魔是什么麻裁? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任源祈,我火速辦了婚禮,結果婚禮上手销,老公的妹妹穿的比我還像新娘。我一直安慰自己原献,他們只是感情好埂淮,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讲仰,像睡著了一般痪蝇。 火紅的嫁衣襯著肌膚如雪冕房。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天耙册,我揣著相機與錄音毫捣,去河邊找鬼。 笑死饶辙,一個胖子當著我的面吹牛斑粱,可吹牛的內容都是我干的弃揽。 我是一名探鬼主播则北,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼尚揣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了惑艇?” 一聲冷哼從身側響起拇泛,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤俺叭,失蹤者是張志新(化名)和其女友劉穎恭取,沒想到半個月后熄守,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡攒发,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年惠猿,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偶妖。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖态秧,靈堂內的尸體忽然破棺而出扼鞋,到底是詐尸還是另有隱情申鱼,我是刑警寧澤藏鹊,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布盘寡,位于F島的核電站楚殿,受9級特大地震影響竿痰,放射性物質發(fā)生泄漏。R本人自食惡果不足惜变隔,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一蟹倾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鲜棠,春花似錦、人聲如沸豁陆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祥诽。三九已至,卻和暖如春原押,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工颇玷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留就缆,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓空郊,卻偏偏與公主長得像切揭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子廓旬,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353