回到javaweb的第三天(二)(sql的基本语法全部了)

回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 mysql里面是用--做注释呀。

 

回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 这里说的是:删除记录,DELETE FROM 关键字  然后的话 WHERE 关键字

 

回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 就是知道了很多的关键字,然后的话知道怎么去使用它们。

回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 回到javaweb的第三天(二)(sql的基本语法全部了)

 

 改变一个表的列:

ALTER TABLE 表名 CHANGE  COLUMN 列名1  列名2  新的字段名 +是否not null的规定

ALTER TABLE  表名 ADD COLUMN 列名+ 类型(VARCHAR(20)之类的)+NOT NULL

ALTER TABLE 表名 DROP COLUMN +column的名字

 

一般应该是DESC 列出了表的结构再去看是否改变这个表的吧。

实用的sql语句:

 

1. 如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就先删除原记录,再插入新记录。此时,可以使用REPLACE语句,这样就不必先查询,再决定是否先删除再插入:

REPLACE INTO students (id,class_id,gender,name) VALUES(1,1,‘M‘,‘小明‘)

如果记录存在,就删除再插入,如果记录不存在,就直接插入

2.如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录,此时,可以使用

INSERT INTO 表名(字段的列举)VALUES(值的列举) ON DUPLICATE KEY UPDATE‘字段1‘=,‘字段2‘=

其实1和2达到的效果是一样的。

3.如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就啥事也不干直接忽略,此时,可以使用

INSERT IGNORE INTO students (id,class_id,gender) VALUES(1,2,‘M‘)

4.如果想要对一个表进行快照,即复制一份当前表的数据到一个新表,可以结合CREATE TABLESELECT

CREATE TABLE 表名 SELECT * FROM students WHERE class_id=1;

复制了查询之后的数据到另外一张表里面去

5.

如果查询结果集需要写入到表中,可以结合INSERTSELECT,将SELECT语句的结果集直接插入到指定表中。

CREATE TABLE 表名

(

id                    BIGINT NOT     NULL,

字段2名字     字段2类型          是否能够为空,

PRIMARY KEY (指定的主键是谁)

)

表里面说的是:id 班级id  平均成绩

例如,创建一个统计成绩的表statistics,记录各班的平均成绩:

然后,我们就可以用一条语句写入各班的平均成绩:

确保INSERT语句的列和SELECT语句的列能一一对应,就可以在statistics表中直接保存查询的结果:

回到javaweb的第三天(二)(sql的基本语法全部了)

 

需要在A表算了每个班的平均成绩之后放到B表里面去,B表已经存在

 

INSERT INTO B(列名1,列名2) SELECT (class_id,AVG(score))  FROM A GROUP BY (class_id)

这两个位置标红的地方,都是一定要加括号的吧。

因为记得吗?  INSERT INTO 就是要加括号的   那么你给它 分配出来的位置也是写成两边的括号对应

6.在查询的时候,数据库系统会自动分析查询语句,并选择一个最合适的索引。但是很多时候,数据库系统的查询优化器并不一定总是能使用最优索引。如果我们知道如何选择索引,可以使用FORCE INDEX强制查询使用指定的索引。例如:

SELECT * FROM 表名  FROCE INDEX() WHERE ..

这里FORCE INDEX force的是谁要标明在此处的。

FORCE INDEX 是放在FROM后面的吧。

7.也就是现在知道了一些新的用法,包括replace into等等,以及说一个表的数据如何复制到另外一个表等等,两个表的相互操作等等。

 

回到javaweb的第三天(二)(sql的基本语法全部了)

上一篇:SQL读取当天的数据


下一篇:“12306” 是如何支撑起百万 QPS 的?