• sql相关语言


    SQL
    掌握一门编程语言:
    C C++ Java C#
    ...

    数据库
    数据结构/算法 链表 队列 栈 数组
    面向对象
    网络
    (界面、业务逻辑)

    关系型数据库:
    以二维表的形式组织数据
    表、索引、视图、触发器...

    记录(行)
    字段(例)


    DDL(数据定义语言)
    创建表
    删除表
    修改表
    创建索引
    删除索引
    DML(数据操纵语言)




    --------------------------------------
    创建表:
    create table 表名(字段名 字段类型 [约束],...);

    字段类型(5):
    integer 整型int
    real 实型float double
    text 文本类型char varchar nchar
    NULL 空类型
    blob 二进制类型

    约束:
    primary key 主键,用来在表中唯一标识一条记录
    not null 不为空
    unique 唯一
    default 默认
    check 检查
    foreign key 外键(了解)

    create table student(id integer primary key autoincrement, name text not null, age integer check(age > 6 and age < 80), addr text default "CHINA" );

    删除表:
    drop table 表名;
    drop table student;

    修改表:
    sqlite3可改变表名,也可以增加字段
    1.修改表名:
    alter table 表名 rename to 新的表名;
    例:
    alter table student rename to stud;
    2.增加字段
    alter table 表名 add column 字段名 字段类型;
    alter table stud add column tel int;

    --------------------------------------------------------
    插入数据:
    insert into 表名(字段1,字段2,...)values(字段值1,字段值2,...);
    insert into 表名 values(字段值,...);
    例:
    insert into stud(id,name,age,tel) values(1001,"limu",24,13100000000);

    修改记录:
    update 表名 set 字段=新值 [字段n=新值] [where 条件];
    例:
    update stud set tel=1380000000;
    条件:
    字段 运算符 值 and/or 字段 运算符 值
    运算符: = != <> >= <=
    update stud set tel=1380000000 where name="limu" and age=24;

    删除记录:
    delete from 表名 [where 条件];
    例:
    delete from stud where id <> 1001;

    查询记录:
    select * from 表名 [where 条件];
    *:通配符,表示所有的字段
    select 字段1,字段2,字段n,...from 表名 [where 条件];
    例:
    select name,age,tel from stud where id=1000;

    -------------------------------------------------------------

    模糊查询:
    like
    where name like '张%'

    SQL通配符:
    % 替代一个或多个字符
    _ 仅替代一个字符

    例:
    select * from stud where name like 'b%';

    限定和排序:
    limit 和 order by
    limit:指定返回记录的最大数量,offset指定偏移的记录数
    select * from stud limit 2;

    order by:排序(升序asc 降序desc)
    select * from 表名 order by 字段 asc/desc;
    select * from stud order by age desc;

    限定+排序:
    select * from stud order by age desc limit 3;


    函数:
    abs(),length(),upper(),lower(),typeof()
    sum(),avg(),count(),min(),max()
    这些函数的参数为字段名
    别名(as):select count() as count from stud;

    日期/时间函数
    date()
    time()
    datetime()
    这几个函数的参数:(timestring,modifier,...)

    例:
    datetime('now','localtime');
    select datetime('now','localtime','+1 day','+1 month');

    分组:group by
    用于结合上述函数,根据一个或多个字段对结果集进行分组。

    select id,sum(score) from cj group by id;
    select id,sum(score) as sum
    from cj
    group by id
    order by sum desc
    limit 1;

    多表查询:
    select stud.id,name from stud,cj where cj.id=stud.id and cj.score=90;

    子查询:
    指select 语句中以嵌套select语句
    子查询最常用的地方是where子句中,特别是在in操作符中。
    select 9 in(1,2,3,4,5);
    select * from stud where age in(select age from stud where id < 1003);

    作业(选修):

    1.统计班上有多少人?

    2.删除姓名是张飞的语文成绩

    3.将数学改成高等数学

    4.查总成绩排名前三的学生学号、名字和分数,要求降序输出

    5.查不及格的学生姓名和不及格的课程名

    学生表(id,name,age);
    课程表(cid,cname,score);
    成绩表(id,cid,fenshu);

    create table student(id integer primary key,name text not null,age integer);

    insert into student values(1000,"limu",23);

    insert into student values(1001,"baiqi",22);

    insert into student values(1002,"wangjian",24);

    insert into student values(1003,"lianpo",25);

    select * from student;

    create table course(cid integer primary key,cname text not null,sorce integer);

    .tab

    insert into course values(1,"yuwen",2);

    insert into course values(2,"shuxue",3);

    insert into course values(3,"english",1);

    select * from course;

    create table card(id integer,cid integer,fenshu integer);

    .tab

    insert into card values(1000,1,80);

    insert into card values(1000,2,90);

    insert into card values(1000,3,70);

    select * from card;

    insert into card values(1001,1,60);

    insert into card values(1001,2,70);

    insert into card values(1001,3,80);

    insert into card values(1002,1,80);

    insert into card values(1002,2,90);

    insert into card values(1002,3,100);

    insert into card values(1003,1,10);

    insert into card values(1003,2,90);

    insert into card values(1003,3,70);

    select * from card;

    .tab;

    1.统计班上有多少人?

    select count(id) as count from student;

    2.删除姓名是limu的yuwen成绩

    delete fenshu from student,course,card

    where student.id=card.id and card.cid=course.cid and name='limu' and cname='yuwen'

    and fenshu=80;

    3.将shuxue改成gaodengshuxue

    update course set cname='gaodengshuxue' where cid=2;

    select student.id student.name card.fenshu from student,card where sum(fenshu)

    and order by age asc limit 3; 

  • 相关阅读:
    C++类模板——博客链接
    static成员变量
    C++之++操作符重载
    运算符重载笔记
    纯虚函数(pure virtual function )和抽象类(abstract base class)
    thinkphp 无限极分类的数据库设计及效果测试
    thinkphp 对百度编辑器里的内容进行保存
    thinkphp 最简单的引入百度编辑器的方法
    thinkphp文章列表及删除文章
    thinkphp添加后台的构思以及添加数据功能
  • 原文地址:https://www.cnblogs.com/liudehao/p/5803933.html
Copyright © 2020-2023  润新知