美文网首页
数据库sqilite学习一

数据库sqilite学习一

作者: 冷武橘 | 来源:发表于2020-04-16 18:10 被阅读0次

    一、数据库简介

    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(二进制数据)
    截屏2020-07-20 下午2.00.06.png
    • 实际上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);
    
    

    相关文章

      网友评论

          本文标题:数据库sqilite学习一

          本文链接:https://www.haomeiwen.com/subject/shzcvhtx.html