一、数据库(sqlite)
1.数据库简介
1)概念:数据库是指以一定方式存储在一起,且能为多个用户共享,具有尽可能小的冗余特性,是与应用程序彼此独立的数据集合。
2)常见数据库
Oracle,DB2,SqlServer,Myql等
2.sqlite数据库
1)安装
sudo apt-get install sqlite3 //在线安装
sudo dpkg -i sqlite3_xx-ubuntu_xx.deb //离线安装
2)测试:在终端输入"sqlite3",即可进入sqlite的命令行操作界面:
SQLite version 3.11.0 2016-02-15 17:29:24
Enter ".help" for usage hints.
sqlite>
注:在“sqlite>”可以输入两种指令,一种是sqlite自身配置和显示格式相关指令,这些指令都是以“.”开头,输入“.help”可以查看这些指令的帮助信息;还一种指令是sql语句,实现对数据库增删改查操作。
3)sqlite常用指令
①.help:查看帮助信息
②.exit/.quit:退出
③.database:查看数据库名字
④.open:打开数据库文件
⑤.table:查看数据包含的数据表名字
⑥.schema:查看数据表的详细信息
⑦.header on:查看表头
⑧.mode MODE:设置显示模式
⑨.nullvalue:设置空白字段显示的字符串
4)配置文件
vi ~/.sqliterc
二、在命令行使用SQL语句操作数据库
1.创建数据表
语法:
CREATE TABLE 表名(
列名1 类型[约束],列名2 类型[约束],......);
类型:INT(整形数),TEXT(文本字符串),REAL(浮点数)
约束:NOT NULL(非空),PRIMARY KEY(主键) //数据唯一,加快访问速度
注:SQL语句不区分大小写,每个语句都已“;”结束
参考代码:
sqlite> CREATE TABLE student (
...> id INT NOT NULL PRIMARY KEY,
...> name TEXT NOT NULL,
...> score REAL NOT NULL );
2.删除表
语法:
DROP TABLE 表名;
注:数据表一旦删除“”“”,里面的数据也将随之消失
3.向数据表中插入数据(增)
语法:
INSERT INTO 表名
(列名1,列名2,...,列名n)
VALUE(数值1,数值2,...,数值n);
参考代码:
INSERT INTO company
(id,name,age,address,salary)
VALUES(10018,'张三',22,'洛阳',13500.5);
4.从数据表中删除数据
语法:
DELETE FROM 表名 WHERE 条件表达式;
and ==>逻辑与
or ==>逻辑或
参考代码:
sqlite>DELETE FROM company
sqlite>WHERE id=10029;
sqlite>DELETE FROM company
sqlite>WHERE salary>8500 and salary<9000;
5.修改数据表中的数据
语法:
UPDATE 表名 SET 列名=新数值,... WHERE 条件表达式;
参考代码:
sqlite>UPDATE company SET age=40
sqlite>WHERE id=10011;
sqlite>UPDATE company SET salary=salary+2000
sqlite>WHERE age>=30 and age<=35;
6.从数据表中查询数据
语法:
SELECT 列名,... FROM 表名;
SELECT 列名,... FROM 表名 WHERE 条件表达式;
SELECT 列名,... FROM 表名
WHERE 条件表达式 LIKE '匹配模式';
匹配模式:
%(匹配任意多个字符)
_(匹配一个字符)
SELECT 列名,... FROM 表名
WHERE 条件表达式 LIKE '匹配模式'
ORDER BY 列名 排序方式;
排序方式:
ASC 升序
DESC 降序
SELECT DISTINCT 列名,... FROM 表名
WHERE 条件表达式 LIKE '匹配模式'
ORDER BY 列名 排序方式;
DISTINCT:去除重复的数据
参考代码:
sqlite>SELETE * FROM company
sqlite>WHERE salary LIKE '%8%'
sqlite>SELETE * FROM company
sqlite>WHERE name LIKE '关_'; //姓关,名字两个字符
sqlite>SELETE * FROM company
sqlite>WHERE salary>5000
sqlite>ORDER BY id ASC;