• sql语句


    基础的查询

    展示所有数据库

    show databases;

    删除数据库

    drop database 数据库名;
    创建数据库
    create database 数据库名 charset utf8;

    进入数据库

    use 数据库名;
    展示所有的表
    show tables;
    “”" 查看表结构 “”"
    desc 表名;
    “”" 修改表名 “”"
    alter table 原表名 rename 新表名;
    “”" 删除表 “”"
    drop table 表名;
    “”" 创建表 “”"
    create table 表名(
    字段名1 类型 [约束],
    字段名2 类型 [约束]
    查询数据 “”"
    select * from 表名;
    给表中添加数据 “”"
    insert into 表名(字段1,字段2,字段3)
    values(数据1,数据2,数据3);
    增加字段 “”"
    alter table 表名 add 字段名 类型;
    删除字段 “”"
    alter table 表名 drop 字段名;
    修改字段名 “”"
    alter table 表名 change 原字段名 新字段名 类型[约束];
    修改字段类型 “”"
    alter table 表名 modify 字段名 类型[约束];
    修改所有数据 “”"
    updata 表名 set 字段名=新值;
    修改一条数据 “”"
    update 表名 set 字段名=新值 where 条件;
    案例:update people set ssex=“男” where sname =“光头强”;
    “”" 删除所有数据 “”"
    delete from 表名;
    “”" 删除一条数据 “”"
    delete from 表名 where 条件;
    案例:delete from people where sname=“玛卡巴卡”;

    时间

    date:年月日
    time:时分秒
    datetime:年月日时分秒
    decimal 小数

    枚举

    enum:单选 enum(“男”,“女”,“中性”)
    集合 “”"
    set:多选 set(“游泳”,“下棋”,“唱歌”)

    约束

    非空约束
    not null
    默认约束 “”"
    default
    唯一约束 “”"
    unique
    主键约束 “”"
    primary key
    自增约束 “”"
    auto_increment
    比较运算符 “”"
    查询指定的数据 “”"
    = < > <= >= <>或!=(这两个意思相同)
    select * from 表名 where 条件;
    select * from 表名 where id<=4;

    逻辑运算符

    指定条件查询

    and 两个条件同时满足
    or 两个条件满足一个就好
    select 字段名 from 表名 where 数据1 and(or) 数据2
    select * from 表名 where id > 3 or id<2;

    模糊查询

    like
    % 表示任意多个任意字符
    _ 表示一个任意字符

    查询姓名中以小开头的信息

    select * from 表名 where 字段名 like ‘李%’;

    查询名字中有"小"的名字

    select * from stu where name like “%小%”;

    查询以香结尾的数据

    select * from stu where name like “%香”

    查询至少有两个字的名字

    select * from stu where name like “__%”;

    范围查

    in 表示在一个非连续的范围内
    select * from 表名 where 字段名 in(1,3,5);
    between … and … 和 >= and <= 性质相同

    表示在一个连续的范围内

    select * from 表名 where 字段名 between 数据1 and 数据2;(在数据1和数据2之间的数)

    空判断

    判空: is null

    查询没有填写身高的学生

    select * from 表名 where 字段名 is null;
    判非空:is not null

    查询填写了身高的学生

    select * from 表名 where 字段名 is not null;

    max() 最大

    select max(age) from stu;

    min() 最小

    select min(age) from stu;

    count() 总数

    select count(*) from stu;

    sum() 总和

    select sum(age) from stu;

    avg() 平均值

    select avg(age) from stu;

    round(小数,保留位数)

    select round(avg(age),2) from stu;

    以性别进行分组获取性别

    group by 分组
    select 字段名1 from 表名 group by 字段名1;
    select gender as “性别”, group_concat(name) as “学生” from students group by gender;

    过滤

    having:过滤,对分组后的结果进行筛选 分组在前 过滤在后

    查询每种性别的平均年龄

    select gender,avg(age) from stu group by gender;

    平均年龄超过30打印出来

    select gender,avg(age),group_concat(name) from stu group by gender having avg(age)>30;

    外键约束

    foreign key (外键列) references 主键表(主键列);
    foreign key(uid) references a(id);

    添加外键

    alter table 表名 add foreign key(字段名) references 表名(字段名);
    alter table b add foreign key(a_id) references a(id);

    查看外键

    show create table 有外键的表名;
    alter table 表名 drop foreign key 外键字段名;
    alter table b drop foreign key b_ibfk_1;

    内连接

    伪代码:select * from 表1 inner join 表2 on 表1.字段名1=表2.字段名2; # 显示内连接
    案例:select * from provinces inner join users on provinces.id=users.uid;

    外连接

    select * from 表名1 left/right join 表名2 on 表名1.字段名1=表名2.字段名2;
    select * from provinces right/left users on provinces.id=users.uid;

    子查询语句

    查询所有有学生的班级 要求显示班级名称和学生的姓名

    select * from student where cls_id in (select id from class);
    查找班级年龄最大,身高最高的学生
    select* from student where cj=(select max(cj) from student) and height=(select max(height) from student);
    或 select * from student where (cj,height) = (select max(cj),max(height) from student);
    需要给子查询语句增加一个any条件

    查询出 年龄 比 (身高大于175的人的年龄) 中的任意一个大的都可以

    select * from stu where age>any(select age from stu where height>175);

    查询身高大于 (年龄小于30岁的身高) 中所有的身高都大才行

    select * from stu where height>all(select height from stu where age<30);

  • 相关阅读:
    springboot和springcloudAlibaba的版本对应关系
    关于Android JS与原生的交互
    网络安全学习--密码学基础
    JavaPTA练习题 7-2 sdut-入门-交换两个整数的值
    断言,类型守卫,联合声明
    FlyFlow:全新开源版问世,支持SpringBoot3+Flowable7
    五个可以永远相信的神仙网站推荐
    新闻速递 | MobTech袤博科技参与中国信通院“绿色SDK产业生态共建行动”
    ffplay源码分析:代码框架
    一键部署区块链背后的秘密(下)
  • 原文地址:https://blog.csdn.net/weixin_60677608/article/details/127841942