SQLite3 数据库学习(二):SQLite 中的 SQL 语句详解

参考引用

1. SQL 语句操作 SQLite 数据库

1.1 创建数据表格

  • create table 表名(字段名 数据类型, 字段名 数据类型, 字段名 数据类型, 字段名 数据类型);
    • 命令行语句结束要加分号 ;
    • . 开头的命令是 SQLite 数据库自带命令,而非 SQL 语句
    $ sqlite3
    sqlite> .open my.db   # 打开 my.db 数据库(不存在则直接创建)
    sqlite> create table student(number varchar(256), name varchar(256), address text, QQ char(32));
    

1.2 插入数据

  • insert into 表名 values(‘字段数据’,‘字段数据’,‘字段数据’,‘字段数据’ );
    • 如果数据类型是 char, varchar, text 数据必须用 ‘’ 或者 “” 引用,建议用 ‘’
    sqlite> insert into student values('20200101', '张三', '广州','911683830');
    sqlite> insert into student values('20200102', '何青德', '广州','911683831');
    

1.3 查询数据

  • select 字段名…字段名 from 表名;
    • 说明:字段名如果是多个可以用逗号隔开,如果是所有可以用星号 *
    sqlite> select * from student;
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    
    sqlite> select name, qq from student;
    张三|911683830
    何青德|911683831
    
  • select 字段名…字段名 from 表名 where 条件;
    sqlite> insert into student values('20200103', '何阳华', '北京','10080');
    sqlite> insert into student values('20200104', '岳飞', '中国','1000000000');
    sqlite> select * from student;
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    20200103|何阳华|北京|10080
    20200104|岳飞|中国|1000000000
    
    sqlite> select * from student where address='广州';
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    
    sqlite> select * from student where address like '广%';  # 模糊查询
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    
    # 两个条件同时成立(与)-- and
    sqlite> select * from student where address like '广%' and QQ like '%1';
    20200102|何青德|广州|911683831
    
    # 两个条件只要成立一个(或)-- or
    sqlite> select * from student where address like '广%' or QQ like '%1';
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    

1.4 更新数据

  • update 表名 set 字段1=字段1值, 字段2=字段2值… where 条件表达式
    sqlite> update student set qq='199999999999' where name='岳飞';
    sqlite> select * from student;
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    20200103|何阳华|北京|10080
    20200104|岳飞|中国|199999999999
    

1.5 删除数据

  • delete from 表名; // 删除整个表数据,不会删除表格
  • drop table 表名; // 整个表格全部删除–把表格从数据库中也删除
  • delete from 表名 where 条件;
    sqlite> select * from student;
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    20200103|何阳华|北京|10080
    20200104|岳飞|中国|199999999999
    
    sqlite> delete from student where number='20200103';
    sqlite> select * from student;
    20200101|张三|广州|911683830
    20200102|何青德|广州|911683831
    20200104|岳飞|中国|199999999999
    

1.6 查询创建表命令

sqlite> .schema student
CREATE TABLE student(number varchar(256), name varchar(256), address text, QQ char(32));

1.7 alter 添加字段

sqlite> select * from student;
20200101|张三|广州|911683830
20200102|何青德|广州|911683831
20200104|岳飞|中国|199999999999

sqlite> alter table student add column age int ;
sqlite> select * from student;
20200101|张三|广州|911683830|
20200102|何青德|广州|911683831|
20200104|岳飞|中国|199999999999|

sqlite> update student set age=18;
sqlite> select * from student;
20200101|张三|广州|911683830|18
20200102|何青德|广州|911683831|18
20200104|岳飞|中国|199999999999|18

sqlite> alter table student add column sex varchar(8) default '男' ;
sqlite> select * from student;
20200101|张三|广州|911683830|18|男
20200102|何青德|广州|911683831|18|男
20200104|岳飞|中国|199999999999|18|

1.8 pragma 查询表结构信息

0|number|varchar(256)|0||0
1|name|varchar(256)|0||0
2|address|text|0||0
3|QQ|char(32)|0||0
4|age|int|0||0
5|sex|varchar(8)|0|'男'|0

2. SQLite 创建带约束条件表格

  • id 自动增长:ID INTEGER PRIMARY KEY AUTOINCREMENT

  • PRIMARY KEY:主键,not null:不能为 NULL,UNIQUE 唯一 ,DEFAULT 默认值

    # 设置 id 为主键,自增加
    # 设置 name 唯一
    # 设置 status 不能为空-默认为值 0
    # 设置 online 不能为空
    create table device(id integer primary key autoincrement, 
                         name varchar(256) unique,  
                         status int not NULL default 0, 
                         online int not NULL);
    
  • if not exists 判断表格是否存在

    • 如果不存在就创建
    create table if not exists device(id integer primary key autoincrement, 
                                      name varchar(256) unique, 
                                      status int default 0, 
                                      online int not NULL);
    

2.1 插入数据

sqlite> insert into device value(0,'led',0,0);
Error: near "value": syntax error              # 应该写 values

sqlite> insert into device values(0,'led',0,0);
sqlite> insert into device values(0,'led',0,0);
Error: UNIQUE constraint failed: device.id     # id 不能重复

sqlite> insert into device values(1,'led',0,0);
Error: UNIQUE constraint failed: device.name   # name 不能重复
sqlite> insert into device values(1,'led1',0,0);

sqlite> select * from device;
0|led|0|0
1|led1|0|0
  • 指定字段(列)插入
    • 没有指定的就可以用默认值
    sqlite> insert into device(name, online) values('led2',0);
    sqlite> insert into device(name, online) values('led3',0);
    sqlite> select * from device;
    0|led|0|0
    1|led1|0|0
    2|led2|0|0
    3|led3|0|0
    

2.2 删除、退出表

  • 删除表

    • drop table 表名;
    sqlite> .tables
    device   student
    
    sqlite> create table test(id int);
    sqlite> .tables
    device   student  test
    
    sqlite> delete from test;
    sqlite> .tables
    device   student  test
    
    sqlite> drop table test;
    sqlite> .tables
    device   student
    
  • 退出表

    sqlite> .quit
    
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLiteSQL语句大全包括了一系列的语句用于创建、修改和查询数据库。以下是一些常用的SQLite SQL语句: 1. 创建表: 使用CREATE TABLE语句来创建新的表。例如:CREATE TABLE table_name (column1 datatype constraint, column2 datatype constraint, ...); [1] 2. 插入数据: 使用INSERT INTO语句将数据插入到表。例如:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); [3] 3. 查询数据: 使用SELECT语句从表检索数据。例如:SELECT column1, column2, ... FROM table_name WHERE condition; [1] 4. 更新数据: 使用UPDATE语句更新表的数据。例如:UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 5. 删除数据: 使用DELETE语句删除表的数据。例如:DELETE FROM table_name WHERE condition; 6. 创建索引: 使用CREATE INDEX语句创建索引以提高查询性能。例如:CREATE INDEX index_name ON table_name (column1, column2, ...); [1] 7. 创建视图: 使用CREATE VIEW语句创建视图。例如:CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition; [1] 8. 回滚事务: 使用ROLLBACK语句回滚事务。例如:ROLLBACK; [2] 9. 删除表: 使用DROP TABLE语句删除表。例如:DROP TABLE table_name; [2] 这些只是一些常用的SQLite SQL语句,还有其他更多的语句和高级用法可以用于特定的需求。希望这些信息能对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [SQLite3SQL基本语句和高级语句](https://blog.csdn.net/qq_34934140/article/details/121539905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [SQLite3介绍及SQL语句详解SQLite一)](https://blog.csdn.net/LCHONSEONE/article/details/125343201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值