数据库sqilite学习一

2020-04-16  本文已影响0人  冷武橘

一、数据库简介

1、 数据库分类:关系型数据库(主流)、对象型数据库。

2、 常用关系型数据库:
a、PC端:Oracle、MySQL、SQL Server、Access、DB2、Sybase
b、嵌入式\移动客户端:SQLite
c、SQLite是一款轻型的嵌入式数据库,在嵌入式设备中,可能只需要几百K的内存就够了,占用资源非常的低;SQLite处理速度比Mysql、PostgreSQL这两款著名的数据库都还快。

数据库的存储结构和excel很像,以表(table)为单位

二、sqlite存储类型

截屏2020-07-20 下午1.54.31.png 截屏2020-07-20 下午2.00.06.png

三、SQL语句

3.1、SQL语言简介

SQL(structured 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、约束

CREATE TABLE IF NOT EXISTS t_student
 (id INTEGER PRIMARY KEY AUTOINCREMENT, seid  TEXT NOT NULL,name  TEXT unique , 
age INTERGER default1)
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);

上一篇下一篇

猜你喜欢

热点阅读