数据库sqilite学习一
一、数据库简介
1、 数据库分类:关系型数据库(主流)、对象型数据库。
2、 常用关系型数据库:
a、PC端:Oracle、MySQL、SQL Server、Access、DB2、Sybase
b、嵌入式\移动客户端:SQLite
c、SQLite是一款轻型的嵌入式数据库,在嵌入式设备中,可能只需要几百K的内存就够了,占用资源非常的低;SQLite处理速度比Mysql、PostgreSQL这两款著名的数据库都还快。
数据库的存储结构和excel很像,以表(table)为单位
- 1、新建数据库文件
- 2、新建一张表
- 3、添加多个字段(column,列,属性)
- 4、添加多行记录(row,每行存放多个字段对应的值)
二、sqlite存储类型
截屏2020-07-20 下午1.54.31.png- 数据存储类型划分为:integer(整型值) 、real(浮点值)、text(文本字符串)、blob(二进制数据)
- 实际上sqlite是无类型的,即时设定了字段类型限制也可以随便存储其它的类型,但为了方便程序员之间的交流和保证数据的规范性 ,我们应严格按照其对应的类型进行 存储。
三、SQL语句
3.1、SQL语言简介
SQL(structured query language):结构化查询语言,是一种对关系型数据库中 的数据进行定义和操作的语言。
-
1、SQL语句的特点:不区分大小写(比如数据库认为user和UsEr是一样的。 每条语句都必须以分号 ; 结尾。
-
2、SQL常用的关键字
create table (创建表) drop table(删除表)
insert、delete、update //增、删、改
select//是数据查询语句用的最多的 -
3、SQL语句的种类:
数据定义语句(DDL:Data Definition Language)
数据操作语句(DML:Data Manipulation Language)
数据查询语句(DQL:Data Query Language)
3.2、DDL
数据定义语句主要包括create和drop, Alert等操作。
CREATE TABLE t_Student(id,name,aage) 新建一张表
DROP TABLE t_Student 删除表
ALTER TABLE t_Student ADD sex 添加字段
3.3、约束
- 1、简单约束
特定的字段设置一些约束条件,常见的约束有:
not null : 规定字段的值不能为null
unique:规定字段的值必须唯一
default:指定字段的默认值
CREATE TABLE IF NOT EXISTS t_student
(id INTEGER PRIMARY KEY AUTOINCREMENT, seid TEXT NOT NULL,name TEXT unique ,
age INTERGER default1)
- 2、主键约束
主键(Primary Key,简称PK)用来唯一地标示某一条记录;
ALTER TABLE t_Student ADD id INTEGER PRIMARY KEY
1、每张表都必须有一个主键,用来标示记录的唯一性
2、只要声明了primary key,就说明是该字段是一个主键。
3、主键字段默认就包含了not null和unique两个约束
CREATE TABLE IF NOT EXISTS t_student
(userid INTEGER PRIMARY KEY AUTOINCREMENT, seid TEXT,name TEXT)
4、如果想要让主键自动增长,那么必须是integer类型,应该增加autoincrement
3.4、 DML
数据操作主要语句包括insert、delete、update等
INSERT INTO t_Student(name,age) VALUES ('lisi',36)
UPDATE t_Student SET age = 18 会将t_student表中所有记录的name都改为wex,age都改为20
DELETE FROM t_Student 会将t_student表中所有记录都删掉
INSERT OR REPLACE INTO t_student(id,age, name) VALUES (‘001','r', @12) 如果这个id的记录不存在就直接插入,如果存在就先删除再插入。
3.5、条件语句
delete from t_student WHERE age = 24 不能用两个 =
delete from t_student WHERE age is 24 is 相当于 =
UPDATE t_Student SET name = 'Shine' WHERE age != 26
UPDATE t_Student SET name = 'sunShine' WHERE age IS NOT 26 is not 相当于 !=
UPDATE t_Student SET age =18 WHERE name is 'zhangsan' OR name = ‘lisi’ 或
UPDATE t_Student SET name ='李四' WHERE name is 'zhangsan' AND age = 18 与
3.5 、DQL
数据查询语句(DQL:Data Query Language)
SELECT name FROM t_Student 查询name字段
SELECT * FROM t_Student 查询所有字段
SELECT age FROM t_Student WHERE name IS 'lisi'
3.6、常见sqlite语句
/*简单约束*/
CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER);
CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL);
CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE, age INTEGER);
CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER DEFAULT 1);
/*分页*/
SELECT * FROM t_student ORDER BY id ASC LIMIT 30, 10;
/*排序*/
SELECT * FROM t_student WHERE score > 50 ORDER BY age DESC;
SELECT * FROM t_student WHERE score < 50 ORDER BY age ASC , score DESC;
/*计量*/
SELECT COUNT(*) FROM t_student WHERE age > 50;
/*别名*/
SELECT name as myName, age as myAge, score as myScore FROM t_student;
SELECT name myName, age myAge, score myScore FROM t_student;
SELECT s.name myName, s.age myAge, s.score myScore FROM t_student s WHERE s.age > 50;
/*查询*/
SELECT name, age, score FROM t_student;
SELECT * FROM t_student;
/*修改指定数据*/
UPDATE t_student SET name = 'MM' WHERE age = 10;
UPDATE t_student SET name = 'WW' WHERE age is 7;
UPDATE t_student SET name = 'XXOO' WHERE age < 20;
UPDATE t_student SET name = 'NNMM' WHERE age < 50 and score > 10;
/*删除数据*/
DELETE FROM t_student;
/*更新数据*/
UPDATE t_student SET name = 'LNJ';
/*插入数据*/
INSERT INTO t_student(age, score, name) VALUES ('28', 100, 'jonathan');
INSERT INTO t_student(name, age) VALUES ('lee', '28');
INSERT INTO t_student(score) VALUES (100);
/*插入数据*/
INSERT INTO t_student(name, age, score) VALUES ('lee', '28', 100);
/*添加主键*/
CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, score REAL);
/*添加主键*/
CREATE TABLE IF NOT EXISTS t_student (id INTEGER, name TEXT, age INTEGER, score REAL, PRIMARY KEY(id));
/*删除表*/
DROP TABLE IF EXISTS t_student;
/*创建表*/
CREATE TABLE IF NOT EXISTS t_student(id INTEGER , name TEXT, age , score REAL);