整理了一些mysql的命令及语句,再此和大家分享下:
创建数据库:create database 数据库名;
查看数据库: show databases;
选择数据库: use 数据库名;
删除数据库: drop database 数据库名;
查看数据库中表: show tables;
查看某一个表的结构: describe 表名;
查看某一个表建表语句: show create table 表名;
创建一个表: create table 表名 (字段名 , 类型 , 属性..);
删除表:drop table 表名;
删除表内数据: delete from table 表名;(自增字段不重置)
truncate table 表名(自增字段重置)
修改表结构: alter table 表名 change 修改前 修改后 属性 类型;
添加主键:alter table 表名 add primary key(字段名);
删除主键: alter table 表名 drop primary key(字段名);
创建索引:create 索引类型 index 索引名 on 表名(字段名);
删除索引:drop index 索引名;
注:索引是不可修改的,想修改必须删除重新建
-----------简单sql语句-----------
查看表的数据: select * from 表名;
更新表数据 :update 表名 set 字段名=更改值 where id=**;
增加表数据: insert into 表名 value(值1,值2);
删除表某行数据: delete from 表名 where id=**;
------------高级运算词---------
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL), 不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重 复行。
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不 消除重复行。
注:使用运算词时候几个查询结果行必须一致
------------连接--------------
内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现
例:select t1.字段1, t2.字段2 from 表1 t1 ,表2 t2 where t1.字段=t2.字段
外连接:left(左边的表不加限制)、right(右边的表不加限制)
例:select t1.字段1, t2.字段2 from 表1 t1 left join 表2 t2 on t1.字段=t2.字段
select t1.字段1, t2.字段2 from 表1 t1 right join 表2 t2 on t1.字段=t2.字段
------------常用查找语句
select 字段名 from 表名 where 条件;
select 字段名 from 表名 where 字段名 = 1,2; //相等
select 字段名 from 表名 where 字段名 <> 1,2; //不等
select 字段名 from 表名 where 字段名 in (1,2); //包含
select 字段名 from 表名 where 字段名 not in (1,2) //不包含
select 字段名 from 表名 where like '%哈哈%'; //模糊查询
select 字段名 form 表名 where 字段名 between 值1 and 值2; //中间查询
select 字段名 form 表名 where 字段名 not between 值1 and 值2; //去除中间查询
select 字段名 from 表名 where 字段名 group by 字段名 having 条件; //分组并添加限制条件
having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选 WHERE 子句作用于表和视图,HAVING 子句作用于组.
having一般跟在group by之后,执行记录组选择的一部分来工作的。
where则是执行所有数据来工作的。
再者having可以用聚合函数,如having sum(qty)>1000
select 字段名 from 表名 where 字段名 order by 字段名 desc //排序 desc 倒序 asc正序
注意:group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。要查出group by中最大的或最 小的某一字段使用 max或min函数。
select 字段名 from 表名 where 字段名 limit 0,5; //限制取出数据条数
select count(*) from 表名 ; //计算条数 可优化为 select count(1) from 表名 结果一致但速度较快
select max(字段名 ) from 表名 ; //取最大值
select min(字段名 ) form 表名 ; //取最小值
select avg(字段名) from 表名; //取平均值
select sum(字段名) from 表名; //取和