欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在命令行使用SQL语句操作sqlite数据库(操作解析)

程序员文章站 2022-04-27 20:58:12
在命令行使用sql语句操作sqlite 1. 创建数据库文件(db)  $: sqlite3 databasename.db  创建成功后,会自动进入sqlite命令行的界面&q...

在命令行使用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;