数据库---对表的增删改查

总结

  对表的增删该

增加数据

-- 插入所有字段。一定依次按顺序插入

                INSERT INTO  表名 VALUES(1,'熊大','2019-07-15');

-- 注意不能少或多字段值

-- 单独插入数据

               INSERT INTO student(pid,aname) VALUE(2,'熊二');

                 INSERT INTO 表名(列名,列名) VALUE(插入的值,插入的值');

-- 待条件修改数据 set 指定列  where条件 指定插入哪行

UPDATE   student  SET    pdate='2019-07-15 '  ,        aname='七七国王'    WHERE pid=2;

UPDATE   student  SET  字段名=值 ,      用逗号隔开   字段名=值              WHERE 修 pid 编号为2的行 or修改 pid 编号为1的行;

--删除数据

-- 删除数据  where指定删除那一行

DELETE FROM student WHERE pid=2;

DELETE FROM 表名 WHERE pid 编号为2的行;

-- 全表删除(不加valure全表删除)可以找回

DELETE FROM   表名

  -- 清空表语句,无法找回

TRUNCATE    TABLE   表名;

1)不能带条件删除

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

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

 6 查询数据(重点)

-- 查询所有数据

SELECT * FROM  表名;

-- 查询指定字段数据

SELECT  pid,aname  FROM  student;

SELECT  列名 列名  FROM  表名;

-- 查询时添加常量列

SELECT pid     AS '编号',   aname AS '姓名'   FROM   student;

SELECT  列名 AS '名字 ',    列明AS '名字 '    FROM   表名;

                   

-- 查询合并列

-- 创建新表

CREATE TABLE score(

       sid INT,

       sname VARCHAR(10),

       html  DOUBLE,

       js DOUBLE,

       jquery DOUBLE)

INSERT INTO score VALUES (1,'山地',99,20,30);

INSERT INTO score VALUES (2,'速降',99,100,89);

INSERT INTO  score VALUES (3,'攻入',60,50,32);

-- 查询时合并列

-- 查询所有同学姓名以及总成绩

SELECT  sname,(html+js+jquery )  AS'grade'  FROM score;

-- 查询时去除重复列   两种方式

-- 需求  查询学生表中的性别

SELECT DISTINCT  sex   FROM sstudent;

SELECT DISTINCT  (sex)   FROM student;

 公式:SELECT   结果  FROM 表明 where(条件查询)条件;

9.条件查询:

and(与)     or(或)

条件查询

selelct  * from 表名where  product='新的';

SELECT * FROM student WHERE id=2 AND NAME='李四'

-- 需求: 查询id为2,或姓名为张三的学生

多个条件查询用AND 进行连接查询

没有唯一条件查询时用 OR 连接查询

2.     < > <> <= >=的使用:

select js from socre where grade>50 or grade<80 or grade>=65  or grade<=75 or grade <> 66;

between and (等价于>= 且 <=)的用法

:select * from f  where grade= between 60 and 70;-- (包前包后)

Select* from  表名 where  字段=条件

Null 是没有

空字符时有值但为空,没有被实参赋值是空字符串。

.null和空字符串的用法:

null是没有值具体用法:is null或者is not null;''

Like  模糊查询

%和_的用法:随便加载任何地方都可以

%表示一个或多个任意字符,

_表示一个任意字符;

一般和like模糊查询一起使用     

      聚合查询

公式:select 函数(列名)from 表名;

聚合函数: sum( 列名)求一个字段所有和 

           avg(列名)求平均值 

max(列名)最大值 

min(列名)最小值 

count(列名)查询计入数

-- 需求:查询学生的servlet的总成绩 (sum() :求和函数)

SELECT SUM(servlet) AS 'servlet的总成绩' FROM student;

-- 需求: 查询学生的servlet的平均分

SELECT AVG(servlet) AS 'servlet的平均分' FROM student;

-- 需求: 查询当前servlet最高分

SELECT MAX(servlet) AS '最高分' FROM student;

-- 需求: 查询最低分

SELECT MIN(servlet) AS '最低分' FROM student;

-- 需求: 统计当前有多少学生(count(字段))

SELECT COUNT(*) FROM student;

COUNT(*)  统计计入最大值

SELECT COUNT(id) FROM student;

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

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

SELECT COUNT(age) FROM student;

Count(*) 表示所有数值

分页查询

limit 起始行,查询几行

公式:起始行= (当前页-1)*每页显示的条数,每页显示多少条;

查询排序

ASC与DESC的用法;

ASC是正序从小到大;DESC是倒叙从大到小;

          

        

order by 是进行排序用的

         SELECT * FROM score ORDER BY js ASC,jquery DESC;-- 是以js为主排序,

当js的值相同的时候再按照jquery的成绩排;也就是 谁在前面谁先执行该条件

         分组查询 与聚合函数组合使用

group by 是分组计数;

有关count()方法的使用

         查询每个班的人数:select clas,count(*)from student group by clas;

         查询每个班js的总分:select clas,count(js) from student group by clas;

原文地址:https://www.cnblogs.com/layuechuquwan/p/11192696.html