【Sqlite3】使用SQL语句操作sqlite3数据库

版权声明:本文为博主不才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;

猜你喜欢

转载自blog.csdn.net/sinat_36184075/article/details/80587796