1、数据定义语言:DDL(Data Definition Language),用来修饰数据库对象:数据库(database)
,表table,列column等。关键字:创建create,修改alter,删除drop等(结构);
2、数据操作语言:DML(Data Manipulation Language),用来对数据库中表的记录进行更新。
关键字:插入inset,删除delete,更新update等(数据);
3、数据查询语言:DQL(Data Query Language),用来查询数据库中表的记录。
关键字:select,from,where等;
4、数据控制语言:DCL(Data Control Language),用来定义数据库的访问权限和安全级别,
及创建用户,关键字:grant等。
二、对数据库记录进行操作(修改)
1、插入记录
insert into 表名(列名1,列名2,列名3...)values(值1,值2,值3....)
注意:列名与后面的值的数据类型必须保持一致;
创建了这个表后可以直接这样:insert into 表名 values(值1,值2,值3....)
2、修改表记录2.1 不带条件的
update 表名 set 字段名=值,字段名=值....
它会将该列所有记录都更改。
2.2 带条件的
update 表名 set 字段名=值,字段名=值.... where 条件;
3、删除记录
3.1 删除不带条件的
delete from 表名;在查看一下,select *from 表名;
结果必然为空!
3.2 带条件的
delete from 表名 where 条件;
3.3 面试题:说说delete与truncate的区别?
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
找回数据命令是rollback;
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表,
它的数据无法被找回,但这个表仍在,重新插入数据是从1开始的。
删除命令:truncate table 表名;
显示表格命令:show table 表名;
打开事务命令:show transaction;
4、查询操作
语法:select [distinct] *| 列名,列名 from 表名 [where 条件];
排序:商品价格排序
select *from product order by price asc;(asc为升序)
select *from product order by price desc;(desc为降序)
聚合函数:
(1)、获得所有商品的价格总和:select sun<price> from product;
(2)、获得所有商品的平均价格:select avg<price> from product;
Ⅰ、多表查询
①、交叉连接查询(基本上不会使用,得到的是两个表的乘积)
语法:select *from A,B;
②、内连接查询(使用的关键词 inner join --inner可以省略)
隐式内连接:select * from A,B where 条件;
显示内连接:select * from A inner join B on 条件;
③、外连接查询(使用的关键词 outer join --outer 可以省略)
左外连接:left outer join
select * from A left outer join B on 条件;
右外连接:right outer join
select * from A right outer join B on 条件;
Ⅱ、子查询
子查询:一条select语句结果作为另一条select语句一部分(查询条件,查询结果,表等)。
Ⅲ、注意事项
从表外键不是添加主表中不存在的记录;主表不能删除从表中已经引用的记录。
1.添加分类(alter table product add cid varchar(32);)
2.初始化数据
update product set cid='1';
update product set cid='2' where pid in (5,6,7);
6、查询总结
select 一般在后面的内容都是要查询的字段
from 要查询到表
where
group by
having 分组后带有条件只能使用having
order by 它必须放到最后面
外键的特点:
1、从表外键的值是对主表主键的引用;
2、从表外键类型,必须与主表主键类型一致。