11月24日笔记sqlite3数据库1_SQL命令

1.关系型数据库语言SQL
    SQL(Strcutured Query Language)结构化的查询语言
    是一种通用的 功能强大的关系型数据库语言

    SQL包含六个部分
    1.数据查询语言 DQL Data Query Language
        从数据库中查询、获取数据(SELECT)
    2.数据库操作语言 DML Data Manipulation Language
        用来操作数据库中的数据的 增,删,改
    3.事物处理语言
        确保DML语言的作业及时同步到数据库中
    4.数据控制语言
    
    5.数据定义语言 DDL Data Define Language
        用于操作数据库中的元数据的(字段名)
    6.指针控制语言

    所有的SQL语句都是在命令行中执行的
    执行sqlite3名就会进入到sqlite3命令行

    .help 获取帮助
    .quit 退出
    .exit 退出

    1.SQL语句在sqlite3是以 ' ; ' 结尾
    2.SQL语句支持大小写 但是 实际执行的时候 是先把你的
    命令转为为大写,再去执行

    (1)打开或创建数据库
        在终端中输入
        sqlite3 数据库对象名
            如果数据库存在 则打开
            如果不存在 则创建
        
    (2)创建一个表格

        CREATE TABLE 表名(
            列名1(字段名1) 数据类型 约束,
            列名2(字段名2) 数据类型 约束,
            列名3(字段名3) 数据类型 约束,
            ......
        )

        数据类型与约束
        数据类型:用于说明字段中的数据的类型
            int(size) 字段必须为整数 size规定数字最大的位数
            integer(size)
            real(size)
            smallint(size)
            ......

            float(size,d)容纳小数 size规定数字整数部分最大的位数  d规定小数部分最大的位数
            double(size,d)
            decimal(size,d)

            char(size) 固定长度的字符串 size规定了字符串的长度

            varchar(size) 可变长度字符串 size规定了字符串的最大长度
            text

            date 日期
            2020-11-18
            2022/1/1
        
        约束条件
            NOT NULL 此字段不为空
            UNIQUE 此字段唯一
            PRIMARY KEY 主键 主键约束就是  NOT NULL   UNIQUE
                联合主键作为约束条件放在语句的最后面

                CREATE TABLE SCORE_TABLE(STUDENT_NUM int(10) NOT NULL,
                COURSE_NUM int(10) NOT NULL,
                SCORE int(3) CHECK(SCORE>=0 AND SCORE<=100),
                PRIMARY KEY(STUDENT_NUM,COURSE_NUM));

            FOREGIN KEY 外键
            CHECK 限制数据范围

                CHECK(SCORE >=0 AND SCORE <=150)

    查询数据库中的表格
        .table
    查看表格的具体结构
        .schema
    删除数据中的一个表
        DROP TABLE 表名

    修改表格结构 增加字段名 或修改表名
    修改表名
        ALTER TABLE 表名 RENAME TO 新名字;
    增加字段
        ALTER TABLE 表名 ADD 字段名 字段类型;
    
    (2)向表中插入一条新的记录

        INSERT INTO 表名 VALUES(值1,值2...值n);
        INSERT INTO 表名(字段1,字段2....) VALUES(值1,值2...值n);

    SELECT 字段名1,字段2... FROM 表名 WHERE 字段1 运算符 值
    
    显示选项的命令
    .header on 显示表头 
    .mode column 按列显示

    如果希望看整张表
    SELECT * FROM 表名
    *   表示所有字段
    不加WHERE 表示不做限制
    运算符
        = 等于
        <> 不等于
        > 大于
        < 小于
        BETWEEN a AND b  表示a到b之间的范围

        SELECT * FROM STUDENT_INFO WHERE NUM = 1;  表示查询NUM为1的记录

        SELECT * FROM STUDENT_INFO WHERE NUM <> 2;  表示查询除了NUM为2号的记录

        如果有多个条件
            AND 并且
            OR 或者

        限定+排序
        SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;
        ASC 升序
        DESC 降序
        SELECT * FROM SCORE_TABLE ORDER BY SCORE DESC
        
        如果只要升序的前两条信息
        最后面加上 LIMIT 想要查看的记录数量

        SELECT * FROM SCORE_TABLE ORDER BY SCORE DESC LIMIT 2;

        模糊查找 LIKE
        查找姓Wang的人

        SELECT NAME FROM STUDENT_INFO WHERE NAME LIKE "Wang%";

        %表示任意匹配

        多表连接-多表查询
        SELECT 表名.列名1,表名.列名2 .. FROM 表名1,表名2 WHERE 列 运算符 值

        如果不指定连接的条件 就会将一个表中的所有的行都链接到另一个表中所有的行上面
                                                            ----笛卡尔积
        如果一个表有三行 另一个表有四行 就会产生12行记录
        
        SELECT * FROM COURSE_INFO,STUDENT_INFO;

        SELECT COURSE_INFO.NAME,STUDENT_INFO.NAME FROM COURSE_INFO,STUDENT_INFO;

    UPDATE 用于修改表中的用户数据
    语法
        UPDATE 表名 SET 列名1= 新值 列名2 = 新值.. WHERE 列 运算符 值;

            UPDATE STUDENT_INFO SET TIME = "10/1" where NUM = 3;

    DELETE 用于删除表中行
    语法
        DELETE FROM 表名 WHERE 列 运算符 值

        DELETE FROM STUDENT_INFO WHERE NUM <> 3;



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值