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

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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐