zoukankan      html  css  js  c++  java
  • sql数据管理语句

    一、数据管理

    1、增加数据

    INSERT INTO student VALUES(1,'张三','男',20);
    -- 插入所有字段。一定依次按顺序插入
    -- 注意不能少或多字段值

    如只需要插入部分字段

    INSERT INTO student(id,NAME) VALUES(2,'李四');
    --只添加id 和NAME两列内容,也要依此按顺序

    2、修改数据

    UPDATE student SET gender='男' WHERE id=1; 
    -- 修改id为1的学生,修改性别为男

    修改多个字段

    UPDATE student SET gender='男',age=30 WHERE id=2;
    -- 修改多个字段,注意: SET  字段名=值,字段名=值

    3、删除数据

    DELETE FROM student WHERE id=2;
    -- 带条件的删除,删除id=2的行
    DELETE FROM student;
    --不带条件,删除student所有数据

    另一种方式

    -- delete from: 可以全表删除     

    1)可以带条件删除  

    2)只能删除表的数据,不能删除表的约束     

    3)使用delete from删除的数据可以回滚(事务)

    -- truncate table: 可以全表删除  

    1)不能带条件删除

    2)即可以删除表的数据,也可以删除表的约束

    3)使用truncate table删除的数据不能回滚

    4、查询数据

    1>查询所有列

    SELECT * FROM student;

    2>查询指定列

    SELECT id,NAME,gender FROM student;

     3>查询时添加常量

    给查询字段添加常量方便观看,对原表格没有影响

    SELECT pro_name AS '产品名称',price FROM product;
    --原显示pro_name 和price,现在换成:产品名称 和 price

     

     4>查询时合并列

    合并列只能合并相同类型且是数值类型的字段

    SELECT sname,(servlet+jsp+html) AS '总成绩'FROM student;

    5>查询时去除重复记录

    -- 需求: 查询学生的性别     男 女
    SELECT DISTINCT sex FROM student;
    -- 另一种语法(是否有括号没有区别)
    SELECT DISTINCT(sex) FROM student;

     

     6>条件查询

    1逻辑条件: and()     or()

    SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集
    SELECT * FROM student WHERE id=2 OR NAME='张三'; -- 并集

    2、比较条件: >   <   >=  <=  =  <>(不等于)  between and (等价于>=  <=)

    SELECT * FROM student WHERE jsp>=75 AND jsp<=90;
    --等同于between and
    SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包后)
    
    --查询不等于男的学生
    SELECT * FROM student WHERE gender<>'';

    3、判空条件

    null,是空,里面没有内容

    '' 是空字符串,里面有内容,内容是空字符串

     is null   是空

    is not null  不是空

    =''    是空字符串

    <>''       不是空字符串

    -- 判断null
    SELECT * FROM student WHERE address IS NULL ;
    SELECT * FROM student WHERE address IS NOT NULL ;
    -- 判断空字符串
    SELECT * FROM student WHERE address='';
    --查询不等于空的学生
    SELECT * FROM student WHERE address<>'';

    查询有地址的学生(不包括null和空字符串)

    SELECT * FROM student WHERE address IS NOT NULL AND address<>'';

    4、模糊条件:like

    -- % : 表示任意个字符

    --%在前表示前面可以有字符,%在后表示后面可以有字符

    --查询含有'索尼'字符的数据
    SELECT * FROM product WHERE pro_name LIKE '%索尼%';

    -- _ : 表示一个字符

    -- 需求: 查询姓‘李’,且姓名只有两个字的学生
    SELECT * FROM student WHERE NAME LIKE '李_';

    7、聚合查询

    -- 常用的聚合函数: sum() 总和,   avg()  平均分, max() 最大值,  min()最小值,   count()统计数量

    -- 需求: 查询学生的servlet的平均分
    SELECT AVG(servlet) AS 'servlet的平均分' FROM student;
    SELECT COUNT(*) FROM student;
    --查询共有多少学生

    -- 注意:count()函数统计的数量不包含null的数据

    -- 使用count统计表的记录数,要使用不包含null值的字段

     8、分页查询

    语法:limit 起始行,查询几行,起始行从0开始

    SELECT * FROM student LIMIT 0,2;
    -- 从第一行开始,显示两行

    9、查询排序

    语法 order by 字段 asc/desc,默认顺序

    -- asc: 顺序,正序。数值:递增,字母:自然顺序(a-z

    -- desc: 倒序,反序。数值:递减,字母:自然反序(z-a)

    SELECT * FROM student ORDER BY id; -- 默认正序123
    
    SELECT * FROM student ORDER BY id DESC;-- 反序321

    多个排序条件

    SELECT * FROM student ORDER BY servlet ASC,jsp DESC
    -- 按照servlet为主顺序,正序排列,当servlet数值相同时,后面的jsp倒序排列其他的JSP不按照倒序排列

    10、分组查询  (group by)

    SELECT gender,COUNT(*) FROM student GROUP BY gender
    --查询男女的人数

    分组查询后筛选

    -- 需求: 查询总人数大于2的性别
    SELECT gender,COUNT(*) FROM student GROUP BY gender HAVING COUNT(*)>2;
    -- 注意: 分组之前条件使用where关键字,分组之后条件使用having关键字
  • 相关阅读:
    POJ2686 Traveling by Stagecoach(状压DP+SPFA)
    POJ3250 Bad Hair Day(单调栈)
    POJ3493 Largest Submatrix of All 1’s(单调栈)
    UVA 10160 Servicing Stations(状态压缩+迭代加深)
    POJ 2187 Beauty Contest
    HDU 6017 Girls Love 233(多态继承DP)
    POJ 2932 Coneology(扫描线)
    POJ 1127 Jack Straws (计算几何)
    挑战程序设计竞赛 3.5 借助水流解决问题的网络流
    AOJ 2230 How to Create a Good Game(费用流)
  • 原文地址:https://www.cnblogs.com/dk2557/p/9288132.html
Copyright © 2011-2022 走看看