SQL关键字的顺序:SELECT …. FROM …. WHERE …. GROUP BY …. HAVING …. ORDER BY …. LIMIT


001、SQL新增

1. 新增字段

  1. alter table 表名 column 字段名;

2. 新增数据

insert into:插入一条新的数据 INSERT INTO 表名称[(列1,列2,列3,…)]VALUES(值1,值2,值3,…);向myemp数据表之中增加一条新的数据
可以先输入desc emp; 查看表中都有那些列,以及数据类型

3. 新增表格

复制一个表:如复制emp表 —— 新的表名称为myemp,CREATE TABLE myemp AS SELECT FROM emp ;select from tab; 查看当前用户所有表

4. 插入日期型数据

to_date用法:
insert into 表名称 (列1,列2) values (值1,todate(‘20210926’,’yyyymmdd’))

002、SQL删除

1. 删除字段

  1. alter table 表名 drop colum 字段名

2. 删除数据

drop:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表,出没场合:drop table tb —tb表示数据表的名字
truncate:出没场合:truncate table tb,绝招:删除内容、释放空间但不删除定义(表的数据结构还在)。与drop不同的是,他只是清空表数据而已,他比较温柔.注意:truncate 不能删除行数据,要删就要把表清空
delete:出没场合:delete table tb,虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率比truncate低) 或 delete table tb where 条件(删除指定的列)绝招:删除内容不删除定义,不释放空间。三兄弟之中最容易欺负的一个

  • delete删除单行数据

    1. DELETE FROM employees WHERE employee_id = 100;
  • delete删除多行数据:

    1. DELETE FROM employees WHERE employee_id >= 101 and employee_id <= 105;

3. 删除表格


4. 删除字段

  1. alter table [表名] drop column [字段名]

003、SQL修改

1. 修改字段名

  1. alter table 表名 CHANGE 旧字段 新字段

2. 修改数据

  1. UPDATE 表名 SET 1=新值1,列2=新值2 WHERE 筛选条件

3. 修改表名称


004、SQL查询(单表查询)

1. 查询表的所有字段

  1. select 'column_name' from information_schema.columns where "table_name"='表名'

2. 查询表中某一个字段是否存在

  1. select count(*) from information_schema.columns where table_name = '表名' and column_name = '字段名'

005、SQL查询(多表查询)

内连接:inner join…on…:从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留.,语法:select from 左表 [inner] join 右表 on 左表.id = 右表.id; (在MySQL中inner可以省略)
左外连接:列出左表所有内容,右表只显示与左表相关内容,右表无内容的显示null,select
from a left join b a.id = b.id;
右外连接:列出右表所有内容,左表只显示与由表相关内容,左表无内容的显示null,select from a right join b a.id = b.id;
全外连接:列出左表与右表的所有内容,select
from a full join b a.id = b.id;


006、拓展

1. 排序:oder…by asc/desc

  1. select * from a oder a.id by asc; 升序,从低到高
  2. select * from a oder a.id by desc; 降序,从高到低

2. trunc

3. exists

exists用法:在子查询中,exists函数为在子查询结果为true时,执行子查询前的sql;当子查询结果为false时,整条sql语句为空,如下:

  1. select * from aa where exists (select * from bb)
  2. select * from bb 查询结果为false,则整条sql返回为空
  3. select * from bb 查询结果为true,则执行select * from aa,结果返回为select * from aa SQL结果