MySQL常用语句

一、常用操作数据库的命令

1.show databases; 查看所有的数据库
2.create database test; 创建一个叫test的数据库
3.drop database test;删除一个叫test的数据库 
4.use test;选中库 ,在建表之前必须要选择数据库
5.show tables; 在选中的数据库之中查看所有的表
6.create table 表名 (字段1 类型, 字段2 类型);
7.drop table 表名; 删除表
8.desc 表名;查看所在的表的字段

二、对数据库数据进行操作

1.增加数据(insert)3中方式
1.1 insert into 表名 values(1,2,......);
1.2 insert into 表名(字段1,字段2,......) values(1,2,......);(推荐)
1.3 insert into 表名(字段1,字段2,......) values(1,2,......),(1,2,......),(1,2,......);

2.删除数据(delete)
2.1 delete from 表名;(删除全部数据,不建议使用)
2.2 delete from 表名 where 条件;(删除符合条件的数据)

3.更新数据(update)
update 表名 set 字段1=1,字段2=2 where 条件;

4.查询数据(select)
4.1 select * from 表名;(考虑到SQL优化的问题,查询时不要使用*)
4.2 select 字段 from 表名;(推荐)
根据条件查询数据select 字段 from 表名 where 条件;
where 条件 后面跟的条件
关系:>,<,>=,<=,!=
逻辑:or,and
区间:between...and...  (闭区间,包含边界)

5.排序(order by)(desc(降序)|asc(升序(默认)))
5.1 select * from 表名 order by 字段 desc|asc;
5.2 select * from 表名 order by 字段 desc|asc,字段 desc|asc;(多字段排序)

6.常用的统计函数 sum,avg,count,max,min
只分组:select * from 表名 group by 字段;
分组统计:select count(num) as cn,num from a group by num having cn>1;

7.分页 select * from 表名  limit 偏移量,数量
说明:
7.1 不写偏移量的话就是默认的为0
7.2 实现分页的时候必须写偏移量
偏移量计算:limit (n-1)*数量 ,数量

三、修改表的命令

1.修改字段类型  alter table 表名 modify 字段 字段类型;
2.添加新的字段  alter table 表名 add 字段 字段类型;
3.添加字段并指定位置  alter table 表名 add 字段 字段类型 after 字段;
4.删除表字段  alter table 表名 drop 字段;
5.修改指定的字段  alter table 表名 change  原字段名 新字段名 字段类型;

四、多表联合查询

1.内连接(inner join)
方式一:
select studentName,className from t_student s,t_class c where s.classId=c.classId;
方式二:
select studentName,className from t_student s inner join t_class c on s.classId=c.classId;

2.外连接
2.1 左连接(left join)
select studentName,className from t_student left join s,t_class c on s.classId=c.classId;
2.2 右连接(right join)
select studentName,className from t_student right join s,t_class c on s.classId=c.classId;

3.子嵌套查询
一般在子查询中,程序先运行在嵌套在最内层的语句,再运行外层。因此在写子查询语句时,可以先测试下内层的子查询语句是否输出了想要的内容,再一层层往外测试,增加子查询正确率。否则多层的嵌套使语句可读性很低。
子查询一般与in操作符结合使用,也可用=><等。
select studentName from t_student where classId in (select classId from  whereclassName=’一班’);

四、复制表结构和表中数据

insert into select fromselect into from 都是用来复制表结构和表中数据
1.区别
1.1 insert into select from 要求目标表已存在数据库中
1.2 select into from 要求目标表不存在,在插入时会自动创建

2.insert into select from 语句
insert into Table2(field1,field2,...) select value1,value2,... from Table1;
注意:
(1)要求目标表Table2必须存在,并且要复制的字段field,field2...也必须存在
(2)注意Table2的主键约束,如果Table2有主键且不为空,则 field1, field2...中必须包括主键
(3)注意语法,不要写成 
insert into Table2(field1,field2,...) values(select value1,value2,... from Table1);

3.select into from 语句
select value1,value2,... into Table2 from Table1;
注意:
(1)目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值