mysql基础语法总结

库级操作

创库:create database dbname;

删库:drop database dbname;

展示库:show databases;

表级操作

数据定义

创表:1.create table tname

​ ( fieldname1 char(50) unique primary key 只有一个主键时可以写后面

fieldname2 int not null references tname2 fieldname ) ; 外键可写后面也可写最后

2.create table tname

​ ( fieldname1 char(50) unique

fieldname2 int not null

​ primary key (fieldname1 , fieldname2),

​ foreign key fieldname references tname2 fieldname);

3.create table tname 子查询;(将子查询创建一个表)

删表:drop table tname;

展示表:show tables;

检查表结构:desc tname;

表结构修改(alter)

添加:alter table tname add column fieldname newdatatype;

删除字段:alter table tname drop column fieldname;

删除字段约束:alter table tname drop constraint (fieldname);

修改字段约束:alter table tname alter column fieldname newdatatype;

修改字段名及约束:alter table tname change fieldname newfieldname newdatatype;

数据操纵
查询(select)
通用语法:

select [all/distinct] 目标列表达式 from tname/viewname

​ where 条件表达式

​ group by fieldname1

​ having 条件表达式

​ order by fieldname2 [asc/desc] ;

优先级:

​ on:关联条件

​ where:行级过滤

​ having:分组过滤

取新名:select fieldname1 ,fieldname2 as newfieldname2 from tname;

谓词:

in/not in (值表)

fieldname [not] like ‘匹配串’ [escape’/’]

% 通配任意字符

_ 通配单个字符

eg:‘hzh/_’ escape ‘/’ _是普通字符,/是转义字符

like/= , not like/!=/<>

配合orderby :

升序:asc

降序:desc

top n(top 和distinct 不可同用)

top n percent

1.limit 3 (取前三个数据)

2.limit 0 , 3 (0是指偏移位置,3指取哪几个数据)

聚集函数:

count([distinct/all] fieldname / *) 计数

sum 求和

avg 求平均值

max

min

连接查询:

内连接(inner join)>等值连接:select fieldname1 ,fieldname2 from tname1,tname2

​ where tname1.fieldname1 =tname2. fieldname2 (通过主键等值连接)

​ ps:去重后的称为自然连接

自身连接(取别名)

eg:select c1.cno,c2.cpno from c as c1,c as c2 where c1.cpno = c2.cno ;

外连接(outer)

eg:select s.sno,sage,sname… from s left / right join sc on s.sno=sc.sno;

左外连接 left join 以左表为基准

右外连接 right join 以右表为基准

集合查询:

标准SOL支持:

并 union <查询块> union <查询块>

商用SQL支持:

并 union

交 intersect

差 except

嵌套查询:

存在量词:exists(内层查询结果非空返真

​ 内层查询结果为空返假 )

不存在: not exists(与exists 相反)

eg: 查询选修了所有课程的学生姓名:

select sname from s where not exists

​ ( select * from c where not exists

​ (select * from sc where s.sno=sc.sno and c.cno=sc.cno));

增删改:

1.insert into tname [(fieldname1fieldname2 ,…)];

2.insert into tname as newtname 子查询;(将子查询插入原表并改表名)

values (常量1,常量2,…);

delete from tname where (conditionexpression);

update tname set fieldname = expression where condtionexpression;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小企鹅upup

有钱的捧个钱场,没钱的点的赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值