mysql数据库的增删改查
一:定义/删除/使用数据库
create database 数据库名; //创建一个数据库
drop database 数据库名; //删除一个数据库
use 数据库名; //使用一个数据库
二:表的创建/删除/截断/使用/使用子查询创建一个新的表
create table 表名 (列名 数据类型 默认值default <是否是主键> 。。。。); //创建一个新的表
drop table 表名; //删除一个表
truncate table 表名; //j截断表,删除表内数据,但是保留表的结构
create table 表名2 select *from 表名1; //利用表一创建表二,内容相同,表名不同
三:对于表结构进行修改,删除
alter table 表名1 add 列名1 数据类型 <默认值>; //在表名一中增加一个列名1的列
alter table 表名2 modify 列名2 数据类型<默认值>; //修改表2中的列2
desc 表名; //显示表的结构
alter table 表名1 drop 列1; //删除表1的列1,一次删除一个,不可恢复
四:表内数据的查询
select*from 表名; //显示表内所有数据
select 列名1,2,3..... from 表名1; //查询表1的列1,2,3.....
select distinct 列1,列2.... from 表名; //去掉重复行,只是把重复的显示一遍,不代表删除了
## 指定查询条件
where 条件1 and 条件2;指定查询条件,常见的有算数比较判断,逻辑比较判断,之内判断,空值判断,之间判断 字符串模糊判断
字符模糊判断:select 列1,列2,.....from 表名 where 列1 like '%k' or 列2 '_c%'; //%表示零个或任意个多个字符,“_”表示任意一个字符
order by 列名 <desc>(降序),列名,.....; //order by 排序语句,select 语句中如果都多个子句 order by 语句放在最后
## 聚合函数
常见的聚合函数有count(计算记录的个数);sum<列名>(求和);avg<列名>(平均数);max<列名>(最大值);min<列名>(最小值);聚合函数只能出现所查询的的列、order by、having句中。where、group by 句子中不能出现。
group by <列名>...... ; //语句 按照所给出的列进行分组。注意group by 语句必须跟在聚合函数后面,否则错误。
having <聚合函数> <逻辑判断符> <条件>; //通常和group by 语句连用,弥补了其不能与where语句的连用。“另类的where语句”
## 连接查询
连接查询有相等连接,不等连接,自身连接,左外连接,右外连接。是关于表与表,表与自己的连接查询。
相等连接:把两个表连接起来来查询某些信息,方便起见from 表名 <别名>,表名 <别名>。两个表中相同的列要标注好 如 <别名>.列名。
自身连接:有的表中不同的列也会有相同的元素,如果我们要把这些给找出来,就要联系两列的元素这就是自身连接。即把一个表起两个别名,以此来查询。
不等连接:上面的两种连接也可以使用不等号,就是不等连接。
左外连接:两个表,显示表一中所有的数据和表二中与表一列相同的数据。//select 列名。。。from 表一 left outer join 表二 on 表一.列名=表二.列名
右外连接:两个表,显示表二中的所有数据和表一中与表二相同列的数据。//select 列名。。。from 表一 right outer join 表二 on 表一.列名=表二.列名
子查询:select语句中镶嵌一个select语句,having,where,from,select语句后面可以使用,group by语句不可以使用子查询语句。子查询出来的是一个集合,或者说是一个表。子查询有返回单值和返回多值所以
返回单值查询:
返回多值查询:子查询向外层返回多个值时,在where语句中必须使用<not >in、<not>exists、any、all。all和any必须与比较运算符结合使用。
使用all语句时<all小于最小的;>all大于最大的。
使用any 语句时<any小于最大的;>any大于最小的。
exists操作符比较子查询返回列表中的每一行,使用格式外层where exists,内层子查询必须有where语句,且要给出内外层表的连接条件。
## 合并查询结果
union 语句放置于两个查询语句之间,结果会自动删除重复的行,如果不想删除重复的在union后加all。

浙公网安备 33010602011771号