MySQL基本语句大囊集,可当作字典来翻看

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL基本语句大囊集,可当作字典来翻看

1.DDL语句

create database xxxx 创建名为xxxx的数据库

use xxx 选择数据库xxx

show tables 查看数据库里的所有数据表

drop database dbname 删除数据库

create table tablename(
  name1  type1  constraints,
  name2  type2  constraints,
  name3  type3  constraints,
  ....
  namex  typex  contraints
) 创建一张表, name表示列名, type表示数据类型, contraints表示约束条件

desc tablename 查看表的定义

show create table xxx 全面查看xxx表的定义信息

drop table xxx 删除表xxx

alter table xxx modify stu_name varchar(20) 修改xxx表的stu_name属性为varchar(20)

alter table xxx drop stu_name 删除一个表的一个字段,删除stu_name这一列


alter table xxx change age age1 int(10) 字段改名, 吧age字段改为age1 类型为int(10)

alter table xxx add stu_age int(10) after stu_name 在stu_name后插入一个字段(默认的插入都是从最后)

alter table xxx modify stu_age int(10) first 修改age字段位置放到最前边

alter table xxx rename xxxx 把xxx表改名为xxxx


2.DML语句

1.插入操作

insert into xxx (name, age) values ('zhangsan', 18)插入语句

insert into xxx values (1, 'zhangsan', 18, ....)若所有列都添加那么就可以不写

insert into xxx (name, age) values ('zhangsan', 18), ('lisi', 19), ('wangwu', 20) 可一次插入多条数据


2. 更新操作

update xxxx set name='liuliu', age=12 where id=1更新语句

update xx1 a, xx2 b set a.name='aaa', b.name='bbb' where xxxxxxxxx同时更新两个表的name


3.删除操作

dalete from xxx where name='zhangsan'删除xxx表中name是张三的记录

delete a, b from xx1 a, xx2 b where a.name=b.name同时删除2个表中的数据


4. 查询操作

select * from xxx查询表中所有数据

select * form xxx where id = 1 带条件查询

select * from xxx where id != 1 不等于查询, 也可以有 <,>, <=, >=等符号

select * from xxx where name like '%nike%'模糊查询

select distinct age from xxx 假如表中很多人年龄相同,我们要查都有几岁的人,就用distinct去重


排序查询

select * from xxx order by id 按照id排序(默认从小到大)

select * from xxx order by id desc 反转排序

select * from xxx order by id, score 如果id相同, 按照score排序

select * from xxx limit 3查询显示三条数据

select * from xxx limit 1, 3 从第二条数据开始显示三条数据


聚合查询

select count(*) from xxx 查询总数

select class, count(1) from xxx group by class 查询每个班的数, (没错就是写作count(1) )

select class, count(1) from xxx group by class with rollup 更细致的查询(包括null)

select class, count(1) from xxx group by class having count(1) > 1 查询总数大于一的结果

select sum(score), max(score), min(score), avg(score) from xxx 查询总分, 最大,最小和平均分

连接查询

select ename, departname from emp, dept where emp.deptno = dept.deptno查询emp和dept两个表中no相同的记录

select a.ename, b.departname from emp a, dept b where a.deptno=b.deptno 就是起了别名, 用a, b 替代emp和dept

内连接

select * from xx1 inner join xx2 where xx1.id = xx2.id 依旧查询两个表, 其中inner可以省去可以只写join

外连接(左连接)

select * from xx1 left join xx2 where xx1.id = xx2.id 查询两个表, 左链接以左边的表为主, 去关联右边

外连接(右连接)

select * from xx1 right join xx2 where xx1.id = xx2.id 这次是以右边的表为主

有关连接详细解释戳这里mysql查询之连接查询

子查询

select * from xxx where xxid in (select id in xxx) 查询某个东西是否在一个集合里边

select * from xxx where xxid = (select id in xxx limit 1)如果查询结果唯一,可以用等于连接

联合查询

select name from xxx union select name from yyy 这个是去重后的姓名

select name from xxx union all select name from yyy 这个是不去重的, 有多少就是多少


3.DCL语句

grant select, insert on dbname.* to 'zhangsan'@'localhost' identified by '123456' 创建一个叫做zhangsan的用户, 密码是123456, 并赋予zhangsan查询和插入权限

revoke insert on dbname.* from 'zhangsan'@'localhost' 剥夺zhangsan的插入权限


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
Python MySQL查询返回字典类型数据的方法
通过使用 `mysql-connector-python`库并选择 `MySQLCursorDict`作为游标类型,您可以轻松地将MySQL查询结果以字典类型返回。这种方式提高了代码的可读性,使得数据操作更加直观和方便。上述步骤和示例代码展示了如何实现这一功能,希望对您的项目开发有所帮助。
152 4
|
6月前
|
存储 关系型数据库 MySQL
深入解析MySQL 8:事务数据字典的变革
深入解析MySQL 8:事务数据字典的变革
|
关系型数据库 MySQL
Mysql数据字典
Mysql数据字典
199 0
Mysql数据字典
|
NoSQL 关系型数据库 MySQL
使用PHP生成MySQL数据字典
给大家分享一个自己写的函数:使用PHP生成mysql字典。
192 0
使用PHP生成MySQL数据字典
|
SQL 关系型数据库 MySQL
使用Navicat快速生成MySQL数据字典
使用Navicat快速生成MySQL数据字典
381 0
使用Navicat快速生成MySQL数据字典
|
存储 SQL 关系型数据库
|
关系型数据库 测试技术 PostgreSQL
PostgreSQL ADHoc(任意字段组合)查询 与 字典化 (rum索引加速) - 实践与方案1
标签 PostgreSQL , rum , adhoc , index scan , bitmap scan , gin 背景 业务背景 某系统数据量: 20亿行左右,64个字段,原始数据多为字符串类型。
3273 0
|
SQL 关系型数据库 PHP
PHP导出MySQL数据字典
2017年11月9日09:30:29 用 PHP mysqli 写的一个类文件, 用来导出MySQL数据字典 导出表信息; 字段信息, 索引信息 可以导出浏览器适用的样式, 也可以导出word文档(默认720px)宽度,字体10px 建议上线前用这个导出一份, 整体过一遍, 防止有些字段, not null, 索引等设置不到位的情况 https://gitee.
1318 0