linux-MySQL语句记录

这是我平时学习中积累的常用sql语句

希望对大家游泳

显示所有数据库
show databases;

进入到数据库里面
use 数据库名字;

显示数据库中所有表
show tables

创建表
create table 表名 (_id int primary key auto_increment, ...);

添加一列
alter table 表名 add 列名 类型(长度);

删除一列
alter table 表名 drop 列名 类型(长度);

修改表名
alter table 表名 rename to 新表名;

修改字段名称
alter table 表名 change 原列名 新列名 类型(长度);

修改字段类型
alter table 表名 modify 列名 类型(长度);

补充主键
alter table 表名 add primary key(键名);

删除一张表
drop table 表名;

删除数据库
drop database 数据库名字;

展现表结构
desc 表名; 

显示表的创建语句 
show create table 表名

清除表并且创建新的表
truncate 表名;

添加外部约束,外键
alter table 多表名 add foreign key (需要添加约束的key) references 主表名(主表中对应al的key);

auto_increment对int值进行自增,一般针对键


------------------对表进行操作--------------

------多表查询操作-----

方式一,显式的内连接
 select A表.*,B表.* from A表 join B表 on 条件表达式(例如user.id = orders.user_id)
方式二,(尽量使用第一种),隐式的内连接
 select A表.*,B表.* from A表,B表 where 条件表达式(例如user.id = orders.user_id)

外链接 (原则上使用左外链接)
方式一 , 显示的左外链接,实际上是先查询A表,然后显示出来,再查询B表,有结果就显示结果,没结果显示null,其中left代表的是join左边的表
 select A表.*,B表.* from A表 left join B表 on 条件表达式(例如user.id = orders.user_id)
方式二, 显示的右外链接,实际上是先查询B表,然后显示出来,再查询A表,有结果就显示结果,没结果显示null,其中right代表的是join左边的表
 select A表.*,B表.* from A表 right join B表 on 条件表达式(例如user.id = orders.user_id)

结果为单个的子查询
select * from 表名 where 字段名 = (select * from 表名 where 表达式)

多个条件下子查询,一般用这个
select * from 表名 where 字段名 in(select * from 表名 where 表达式)


内连接 带多个条件的查询
select * from 表名 where 表达式 and 表达式

-------查-------

查询所有
select * from 表名

查询指定字段
select 字段名,字段名1 from 表名

查询指定字段并去除重复
select distinct 字段名,字段名1 from 表名

查询指定字段并给其一个别名
select 字段名1,字段名2 as '别名1','别名2' from 表名

带条件的查询
select * from 表名 where 字段

查询一个字段有多个条件
select * from 表名 where 字段名 in(xx,xx,xx)

查询一个字段并且分组
select count(*) from 表名 group by 要分组的字段名

查询一个字段并且分组,分组之后有条件
select count(*) from 表名 group by 要分组的字段名 having 条件表达式

通用聚合方法

sum()求和
avg()平均数
max()最大
min()最小
count()统计

having跟where一样,但是where只能在分组前使用,having可以在分组后进行使用


-------改-------

修改字段值
update 表名 set 字段名=字段值,字段名1=字段值1.. [where 表达式]

-------删-------

删除字段
delete from 表名 [where 表达式];

-------增-------

插入一条数据
insert into 表名 (列名,列名1) values (xx,xxx);


 

猜你喜欢

转载自blog.csdn.net/ci250454344/article/details/85060596