sql语句整理

例子:表名:project

字段名:name,age,sex,class

(1)  更新字段内容:字段name为a的更新为b(name不为a的不更新)

       update project set name = 'b' where name = 'a'

(2)  删除字段: 删除字段name

        ATLTER Table ‘project’

        DROP COLUMN ‘name'

(3) 表重命名 :project重命名为pro

        第一种: rename table project to pro

        第二种: ALTER Table project rename to pro

(4) 更新字段为拼接字段(更新字段name为字段age和字段sex拼接起来的内容,中间加空格)

        update project set name = concat(age," ",sex)

(5) 统计一班中男女分别有多少人

        第一种: select sex,count(sex)  c from project where class = 1 group by sex

           此种不统计sex为null的数量,sex为null一行c显示为0

        第二种:select sex,count(1)  c from project where class = 1 group by sex

            此种统计sex为null的数量,sex为null一行c显示为实际数值

        第三种:不想显示sex为null的情况,以下两种都可以

            select sex,count(1)  c from project where class = 1 and sex is not null group by sex

            select sex,count(sex)  c from project where class = 1 and sex is not null group by sex

(6)统计一班中最大年龄是多大

        JAVA语句:@Select("select max(age) from project where class = #{class}")

                        Integer getMaxAge(Integer class);

        说明,此语句返回类型一定要是为Integer,不能为int。int 不能为null,无法处理sql语句返回为null的情况,会一直报错;Integer型可以为null,sql返回为null时可以根据需要进行处理。

(7)外表关联统计:统计六年级中所有班级的男女生数量(外表名为school,年级 grade)

    select sex,count(1) c from project where class in (select class_id from school where grade = 6) group by sex(group by sex:按性别分组,按sex统计数量,则必须按sex分组)

(8)外表关联:六年级中所有班级的所有人的信息

    select * from project where class in (select class_id from school where grade = 6)

    说明:三层嵌套同理两层嵌套  如: select * from project where class in (select class_id from school where grade in (select school_id from nation where id = #{id}))

(9) 清空表

        delete from project

(10)删除六年级

        delete from project where class = 6

(11) 索引六年级之外的所有学生(sql中不等于号用 <>  表示)

    select * from project where class <> 6

(12)索引一班年龄最大的学生的信息(多条)

       select * from project  where class =1 and age = (select max(age) from project where class = 1)

附加题:索引一条一班年龄最大的学生的信息,如下:    select * from project  where class =1 and age = (select max(age) from project where class = 1) limit 1

(13)删除school表中不在本项目的班级

    delete from school where class_id not in (select class from project)

(14)索引按姓名排列的学生信息(查重名)

    先索引一班全部学生名称:select  name  from project where class = 1

    按名称索引学生信息: select * from project where name in (select  name  from project where class = 1)

    索引增加班级条件(否则其他班学生与本班有重名也会索引到): select * from project where name in (select  name  from project where class = 1)  and class = 1

(15)索引一班学生并按年龄排序

        select * from project where class =1 order by age

(16)索引名称为liu的学生的年龄

    select age from project where name = 'liu' limit 1 

    说明:limit 1: 取索引到的第一条数据,返回值为int或Integer;

    如果不加 limit 1,则返回List

(17)模糊匹配name

    select * from project where name like '%name%'

(18)索引name为liu的学生的信息(按类型索引)

    select * from project where name = 'liu'

(19)统计一班中年龄为16的学生数量

    select count(1) c from project where class = 1 and age = 16

(20)索引一班学生年龄,去重显示

    select DISTINCT age from project where class =1

(21)复制表结构和数据:创建表b,复制表a的结构和数据

create table b like a;

insert into b select * from a;

(22)一下语句可直接在navicat中执行

SELECT VERSION( )服务器版本信息

SELECT DATABASE( )当前数据库名 (或者返回空)

SELECT USER( )当前用户名

SHOW STATUS服务器状态

SHOW VARIABLES服务器配置变量

(22)查询重复数据(比如表a和表b之间建立了中间表a_b,字段包括a_id,b_id,查询a,b有没有重复关联)

select count(a_id) as repeations,a_id,b_id from ruleset_rule group by a_id,b_id having  repeations > 1;

说明:repeations可以是任意字段,用于统计重复数,repeations > 1表示显示重复数大于1的数据

(23)比较运算符:= 和 <=> 等于和安全等于的区别

等于

  2=3 ->   0     ; null=null  ->  NULL

2<=>3 -> 0    ; null<=>null   ->  1  (安全等于 比较 null ,返回结果是 true)

(24)取消主键a

ALTER TABLE  `a`

DROP PRIMARY KEY;

(23)求和:计算一班所有学生学习时间的总和

select sum(learn_time) from project where class = 1;

(24)以逆字母顺序显示公司名称,并以数字顺序显示顺序号:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

说明:order by 后面有多个参数时,每个参数应分别指定顺序还是倒序(默认为顺序 asc),排序顺序按参数从左到右先后排序

(25) 全部更新: project 表中 school_id 都设为1

update project set school_id = 1;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342