版权声明:本文为博主不才b_d原创文章,未经允许不得转载。 || 博客地址:blog.csdn.net/sinat_36184075 https://blog.csdn.net/sinat_36184075/article/details/80587796
在命令行使用SQL语句操作sqlite数据库
1. 创建数据库文件(DB)
$:
sqlite3 DatabaseName.db
创建成功后,会自动进入sqlite命令行的界面"
sqlite>
"
eg:
$: sqlite3 testDB.db // 打开名为testDB的数据文件,不存在则创建
2. 输入"
.database
" 查看数据库文件信息
seq // 序号
name // 数据库名
file // 数据库文件名
文件权限:- rw- r-- r--
3. 创建数据表 '语法'
CREATE TABLE table_name
(
列名1 类型1 [约束],
列名2 类型2 [约束],
...);
【注】sql语句中不区分大小写,习惯把'关键字'(create table)写成
大写
eg:
创建一个公司员工信息表company,
列包含:ID、姓名、年龄、地址、薪资
sqlite>
CREATE TABLE company(
...> id INT PRIMARY KEY NOT NULL,
...> name TEXT NOT NULL,
...> age INT NOT NULL,
...> address TEXT,
...> salary REAL NOT NULL);
sqlite>
.table
---> ' .table ' // 查看表的名字
.ta
company
sqlite>
.schema
---> ' .schema ' // 查看创建表详细信息
.sc
CREATE TABLE company(
id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address TEXT,
salary REAL NOT NULL);
'[约束]':
PRIMARY KEY
// 主键约束,数据唯一,并且可以加快数据访问
NOT NULL
// 非空,限制插入数据不能为空
'类型关键字':
INT
整型
TEXT
文本字符串
REAL
浮点数
练习:
创建学生成绩的数据表
表名:Student
列名:ID(INT) NAME(TEXT) SCORE(REAL)
要求ID唯一,每一列的数据非空。
sqlite>
create table Student(
...> ID INT PRIMARY KEY NOT NULL,
...> NAME TEXT NOT NULL,
...> SCORE REAL NOT NULL);
4. 删除数据库表 '语法'
DROP TABLE
表名;
eg:
DROP TABLE Student;
将Student
表删除
,里面的
数据也会被删除
,且数据恢复比较困难。
5. 插入数据 '语法'
INSERT INTO
表名
(列名1, 列名2, 列名3...)
VALUES(数据1, 数据2, 数据3...);
eg:向company表中插入数据
10086 "张飞" 30岁 "四川" 800.5
10011 "关羽" 31岁 801.5
INSERT INTO company
(id, name, age, address, salary)
VALUES(10086, "张飞", 30, "四川", 800.5);
INSERT INTO company
(id, name, age, salary)
VALUES(10011, "关羽", 31, 800.5);
6. 查询数据 '语法'
select * from company;
eg:
sqlite>
select * from company
;
10011|关羽|31|成都|801.5
10011|关羽|31|成都|801.5
10086|张飞|30|四川|800.5
10000|曹操|35||999.9
10002|刘备|34|河南|855.5
10013|关兴|28|湖南|600.5
10015|刘禅|18|北京|300.0
10014|曹植|16|广东|1200.5
10008|赵云|26|上海|888.8
7. 删除数据 '语法'
DELETE FROM
表名
WHERE
[条件]
// 一般使用唯一属性进行匹配删除
eg:// 比如 id
DELETE FROM company WHERE id = 10000;
8. 修改数据 '语法'
UPDATE
表名
SET
列名1 = 数值1, 列名2 = 数值2...
WHERE [条件];
// 一般使用唯一属性进行匹配修改单条信息
eg:
UPDATE company SET age= 26 WHERE id= 10014;
UPDATE company SET address= "上海" WHERE id < 10014;
// 算数:+ - * / % 比较:== = != <> > < >= <= !< !>
// 逻辑:AND BETWEEN EXISTS IN LIKE
// 逻辑:GLOB NOT OR IS UNIQUE
9. 查询数据 '语法'
// 所有列,可以用 * 替换
SELECT
列名1, 列名2, 列名3...
FROM
表名;
SELECT
列名1, 列名2, 列名3...
FROM
表名 WHERE [条件];
SELECT
列名1, 列名2, 列名3...
FROM
表名 WHERE [条件]
ORDER
BY
列名
ASC
/
DESC
;
// ASC 升序,DESC 降序
eg:
SELECT id, name FROM company;
SELECT id, name FROM company WHERE id > 10014;
SELECT * FROM company WHERE salary < 1000;
SELECT id,name FROM company ORDER BY id ASC;