mysql数据库基本操作

数据库操作语句梳理

目录

1.      DDL语句... 1

1.1.       数据库创建|修改|删除|查看... 1

1.2.       创建表格... 2

1.3.       数据库查询:单表查询操作... 3

1.4.       数据库:多表关联查询... 11

 

 

  1. DDL语句

 Ddl: database defined language 数据定义语句

    1. 数据库创建|修改|删除|查看

1.1.1.  创建 CREATE DATABASE语法

1.1.2.  修改 ALTER DATABASE语法

      1. 删除 DROP DATABASE语法
      1. 查看 show databases 语法

使用 use 数据库名称

创建数据库语法:

create database [if not exists]数据库名称 [default charset’utf8’];  # 中括号中的内容可以不写

描述:

创建一个数据库 default charset’utf8’创建数据库时指定的编码方式

if not exists 创建一个不存在的数据库,如果存在,不创建

案例:

 

删除数据库语法:

Drop database 数据库名称;

描述:

删除一个指定的数据库

案例:

 

查看数据库语法:

Show databases;

描述:

展示所有的数据库

案例:

 

    1. 创建表格
      1. 创建表 create table
      2. 修改表 alter table
      3. 删除表 drop table

创建表语法:

Create table 表名(

字段名称 类型 comment’注释’,

字段名称 类型 comment’注释’,

);

描述:

创建一个数据表

案例:

 

表重命名语法:

Alter table 旧表名

   Rename to 新表名;

案例:

 

表格中修改列名称语法:

alter table 表名

   change column 旧列名 新列名 char(8);  # 设置类型

案例 :

 

表格中增加列语法:

alter table 表名

    add column phone char(11); # 增加一列

 

表格中删除一列语法:

Alter table 表名

   Drop column 列名;

 

删除表语法:

Drop table 表名;

Drop table if exists 表名;

描述:

删除数据库中的某个表

案例:

    1. 数据库查询:单表查询操作
      1. 全表查询

语法:

Select *from 表名称;

描述:

查询表中的所有数据

不同的工具会考虑到性能问题,展示部分数据,如sqlyog中全表查询默认展示1000条数据

案例:

 

      1. 单条件查询

语法:

Select *from 表名称 where 条件;

描述:

当进行全表数据查询时,测试指定的条件是否为True,将条件为True的所有数据进行查询展示,其他数据,不予展示。

案例:

 

      1. 多条件查询:并且|或者

语法:

Select *from 表名称 where 条件1 and 条件2 and条件n;

描述:

并且:与查询 同时满足多个条件才能展示

案例:

语法:

Select *from 表名称 where 条件1 or 条件2 or 条件n;

描述:

或者:或查询

满足其中的一个条件即可展示

案例:

 

      1. 比较查询

语法:

Select *from 表名称 where id>25;

描述:

当id列的数据大于25时才展示;

案例:

 

      1. 模糊查询 like:

语法:

Select *from 表名称 where name like’员%’ 查询表中name属性以开头的数据

Select *from 表名称 where name like’_员’ 查询表中 name属性中_的数据_表示一个字符

描述:

模糊查询一数据

案例:

      1. 空值查询

语法:

Select *from 表名称 where 列名称 is null;

Select *from 表名称 where 列名称 is not null;

描述:

查询当某个列表中的数据为空时展示 数据

查询当某个列表中的数据为非空时展示数据

案例:

 

      1. 范围查询

语法:

Select *from 表名称 where 字段 in(值1,值2,值3,…值n);

Select *form 表名称 where 字段=值1 or 字段=值2;

描述:

手工指定满足条件的数据通过范围查询操作符号in,来指定条件取值范围

案例:

 

      1. 范围查询:区间查询

语法:

Select *from 表名称 where id between 1 and 10;

描述:

手工指定一个区间范围,包含起始数据和结束数据:between.. and ..

案例:

 

      1. 排序查询

语法:

Select *from 表名称 order by 列名称 [asc|desc];

Select *from 表名称 order by 列1 asc 列2 desc 列3desc;

描述:

按照指定的列进行顺序或者降序的数据整理展示过程

ORDER BY 默认不写为升序排序

asc 升序排列

desc 降序排列

排序查询时,可以一次指定多列进行升序/降序的指定

案例:

 

      1. 分页查询

语法:

Select *from 表名称 limit m,n;

描述:

从第几行开始 一次展示几行数据

案例:

 

      1. 聚合函数

语法:

Select avg(列名称) from 表名称 # 平均值

Select count(1)from 表名称 # 指定列的数据总数量

Max:最大值 min:最小值 sum:求和

描述:

将数据进行运算

案例:

 

 

      1. 指定列查询

语法:

Select 列名,列名from 表名;

描述:

在查询过程中我们也可以通过列名称,指定查询的具体列

案例:

 

      1. 查询数据剔重

语法:

Select distinct 列名 from 表名称;

描述:

查询数据表中指定列~所有不重复的数据,每个不重复的数据只会出现一次

案例:

 

      1. 分组查询

语法:

Select count(1),列名 from 表名 group by 列名;

Select count(1),列名 from 表名 group by 列名 having 列名 is not null; # 数据中不能出现空数据

描述:

通过GROUP BY 关键字,将数据表中,指定的列按照组的形式查询分别展示

案例:

 

      1. 关于查询的疑问:

描述:

出现的大量的关键词,什么关键词应该写在前面,什么关键词应该写在后面!

案例:

SELECT

    指定查询列

    [FROM 表名称

    (1)[WHERE 条件]

    (2)[GROUP BY {col_name | expr | position}

      [ASC | DESC], ... [WITH ROLLUP]]

    (3)[HAVING 分组条件]

    (4)[ORDER BY {col_name | expr | position}

      [ASC | DESC] , ...]

    (5)[LIMIT {[offset,] row_count | row_count OFFSET offset}]

    [PROCEDURE procedure_name(argument_list)]

    [FOR UPDATE | LOCK IN SHARE MODE]]

 

    1. 数据库:多表关联查询
      1. 直接查询

语法:

Select *from 表名,表名;

描述:

直接查询两张表

案例:

 

      1. 关联查询

语法:

Select *from 表名,表名 where 表名.列名 = 表名.列名;

描述:

通过两张表的关联数据,进行条件关联

案例:

 

      1. 子查询

语法:

Select *from 表名 替代表名,表名 替代表名 where 替代表名.列名 = 替代表名.列名;

描述:

通过替代表名来替代表名以简化表名称的书写

案例:

 

      1. 连接查询

语法:

Select *from 表名1;

Select *from 表名2 where 表名1_id in(2,3)’;

描述:

查询表二中和表一相同属性的数据

案例:

 

      1. 多行子查询

语法:

Select *from 表名1

  Where 列名in

    (select 列名 from 表名2 where 列名 in(‘班委’,’常委’) );

描述:

 查询表一的一列中满足表二中的班委,常委的数据

 

 

      1. 单行子查询

语法:

Select *from 表名

  Where 列名=(select 列名 from 表名 where 列名 =’常委’);

描述

 

 

      1. 查询每个部门下的所有员工

左外连接:left outer join  ->  left join

Select * from 表名 替代表名 left join 表名 替代表名 on 替代表名.列名=替代表名.列名

 

右外连接: right outer join  ->  right join

Select * from 表名 替代表名 right join 表名 替代表名 on 替代表名.列名=替代表名.列名

 

全外连接查询

内连接查询

哈希查询 减少数据之间的运算次数

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值