MySQL小记——DDL、DML、DQL

这篇具有很好参考价值的文章主要介绍了MySQL小记——DDL、DML、DQL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

数据库概念

关系型数据库

MySQL使用

SQL语言

sql分类

DDL:操作数据库和表

操作数据库

操作表

DML:数据操作语言,用来增删改数据库记录

1.插入数据

2.删除数据

3.修改数据

DQL:查询

条件查询

模糊查询

字段的运算和去重

排序 order by

聚合函数

分组 group by 

分页 limit


数据库概念

存储数据的仓库,用于存储和管理数据

关系型数据库

由行和列组成的这种二维表,而且表和表之间有对应关系。

MySQL就是关系型数据库的一种。


MySQL使用

1.登录

cmd-->mysql -uroot -p密码

2.退出

exit


SQL语言

结构化查询语言

通过sql语言可以操作所有的关系型数据库。每种数据库之间会存在差异,称为 "方言"。

sql分类

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(增、删、改)
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。


DDL:操作数据库和表

操作数据库

创建:create database 数据库名称;

删除:drop database 数据库名称;

修改字符集:alter database 数据库名称 character set gbk;

查询:show databases;   查询所有数据库名称

            show create database 数据库名称;      查看建库语句,可以看到编码

切换库:use 库名

操作表

就是创建表头(列,字段)

常见字段的数据类型:

     int:整型 id int,
     * double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;     money double(5,2)
      char(10):固定长度字符串类型;
      name char(10)        "张三"
      varchar(10):可变长度字符串类型;
       例:name varchar(10)    "张三"             
       text:字符串类型;存大格式的文本 比如存个小说 一般不用
       blob:字节类型;存字节类型的数据  比如电影字节  图片字节 但是一般不会把字节数据存到数据库当中
        date:日期类型,格式为:yyyy-MM-dd; 2020-10-12
        time:时间类型,格式为:hh:mm:ss 14:30:30
        datetime:日期时间类型   yyyy-MM-dd hh:mm:ss 2020-10-12 14:30:30
        * timestamp:时间戳类型     yyyy-MM-dd hh:mm:ss
        * 如果该类型的字段不给赋值,则默认当前时间

创建:

create table 表名(

            列名1 类型1,
            列名2 类型2,
               ...
             列名n 类型n

);

create table student(
    id int, -- 编号
    sname varchar(10), -- 姓名
    age int, -- 年龄
    sal double(6,2), -- 工资
    birthday date -- 生日
);

删除表:  drop table 表名;

查看库中所有表:show tables;

查看表结构:desc 表名;

增加一个表头:alter table student add(phone char(11));

删除一个表头:alter table student drop phone;

修改表头名称:alter table student change id sid int;

修改表头数据类型:alter table student modify sal int ;

或:alter table student change sal sal double(5,2);

修改表名:alter table student rename to stu;

DML:数据操作语言,用来增删改数据库记录

1.插入数据

插入所有:

insert into student(id,name,age)  values (1,'zhangsan',23);

简写:

insert into student values (1,'zhangsan',23);

个别字段插入:

insert into student(id,name) values(2,'lisi');

2.删除数据

1.全部删除:

delete from student;

2.where  条件删除   

=、!=、<、<=、>、>=、and (&&) 、or (||)

delete from student where id=1;

3.修改数据

1.没有条件修改

update student set sname='wangwu',age=30;

2.有条件修改

update student set sname='zhangsan',age=20 where id=1;

DQL:查询

1.查询表中所有数据

select * from student;

建议全写,而不是写个*

select id,sname,age,sal,birthday from student;

2.查询个别字段

select sname,id from student;

条件查询

=、!=、<>(不等于)、<、<=、>、>=;

BETWEEN…AND;  在什么范围之间
IN(set);
IS NULL;为空
IS NOT NULL; 不为空
AND; 并且
OR;   或者
NOT;非

1.等值查询

select * from emp where empno=7566;

2.between....and

select * from emp where sal between 2000 and 5000;

3.in

select * from emp where empno in(7499,7788,7934,55555);

4.null值(is null / is not null)

select * from emp where comm is null;

5.as 字段别名     as可不写

select empno as 员工工号,ename as 员工姓名,sal 工资 from emp;

select empno 员工工号,ename 员工姓名,sal 工资 from emp;

6.表别名

select empno 员工工号,ename 员工姓名,sal 工资 from emp e where e.empno=7499;

模糊查询

% 通配多个任意字符

_ 通配单个任意字符

1.姓名包含M

select * from emp as e where ename like '%M%';

2.以S开头

select * from emp as e where ename like 'S%';

3.以S结尾

select * from emp as e where ename like '%S';

4.第二个字母是A

select * from emp as e where ename like '_A%';

5.五个字母组成

select * from emp as e where ename like '_____';

字段的运算和去重

查询年薪

SELECT empno,ename,sal,comm,sal*12 AS 年薪 FROM emp;

null值参与运算结果是null,若想要把null值当作0,用ifnull

IFNULL(comm,0) 如果comm是null,就取0 不是null 取你原本的值

去重

select distinct sal from emp where sal=3000;

排序 order by

升序 asc

降序 desc

聚合函数

对列做运算

-- 统计员工有多少人
SELECT COUNT(empno) AS 总人数 FROM emp;

-- 传入* 也可以
SELECT COUNT(*) AS 总人数 FROM emp;

-- 工资最值
SELECT MAX(sal) AS 最高工资  FROM emp; 
SELECT MIN(sal) AS 最低工资  FROM emp; 

-- 平均工资
SELECT AVG(sal) AS 平均工资  FROM emp; 

-- 总工资
SELECT SUM(sal) AS 总工资  FROM emp; 

分组 group by 

和聚合函数配合使用

-- 比如我按部分编号分组  比如有三个部门 然后我求每个部门的平均工资  那展示出来的数据应该有三条

SELECT deptno '部门编号',AVG(sal) '部门的平均工资' FROM emp GROUP BY deptno;

-- 按照岗位分组,统计每种岗位多少人

SELECT job '岗位',COUNT(job) '岗位人数' FROM emp GROUP BY job;

-- 1.例如查询 每个部门的部门编号 以及每个部门工资大于1500的人数,分组之前要进行筛选

-- where 在分组之前进行条件的筛选,符合条件的参与分组,不符合条件的不参与分组。
SELECT deptno '部门编号',COUNT(empno) '部门人数' FROM emp WHERE sal>1500 GROUP BY deptno;


-- 2.例如 我要查询 各个部门平均工资 大于2000 的部门

-- having:在分组之后,对结果集的筛选
SELECT deptno '部门编号',AVG(sal) '部门的平均工资' FROM emp GROUP BY deptno HAVING AVG(sal)>2000;

SELECT deptno '部门编号',AVG(sal) '部门的平均工资' FROM emp GROUP BY deptno HAVING 部门的平均工资>2000;

-- 3. 例如我要查询 各个部门  员工工资大于1500 的平均工资  并且平均工资 大于2000的部门
SELECT deptno '部门编号',AVG(sal) '部门的平均工资' FROM emp WHERE sal>1500 GROUP BY deptno HAVING 部门的平均工资>2000;

-- having 和where的区别?
    
        -- * where和having
        --     * where:在分组之前对条件进行限定。不满足条件,就不会参与分组
        -- * having:在分组之后,对结果集的筛选
        
        
                
-- 4. 例如我要查询 各个部门  员工工资大于1500 的平均工资  并且平均工资 大于2000的部门,升序排列
SELECT deptno '部门编号',AVG(sal) '部门的平均工资' 
FROM emp WHERE sal>1500 
GROUP BY deptno HAVING 部门的平均工资>2000 
ORDER BY 部门的平均工资 ASC;    

分页 limit

limit 起始索引,每页的条数


 -- 第一页
SELECT * FROM emp LIMIT 0,3;
-- 第二页
SELECT * FROM emp LIMIT 3,3;
-- 第三页
SELECT * FROM emp LIMIT 6,3;

-- 第四页
SELECT * FROM emp LIMIT 9,3;

-- 第五页
SELECT * FROM emp LIMIT 12,3;

-- 起始索引=(页码-1)*每页条数文章来源地址https://www.toymoban.com/news/detail-451468.html

到了这里,关于MySQL小记——DDL、DML、DQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL之数据库DML

    数据操作DML 这里的数据操作就是增删改的更新操作,不包括查询 插入 第一种是需要按照列名对应写数值的,可以省略,但必须对应 第二种是一次插入一行,是都要写的 也可以插入多行只需在之后填入新的行即可 修改 例如 删除 例如 需要注意的是delete和truncate原理不同,

    2024年01月25日
    浏览(40)
  • MySQL数据库基础(八):DML数据操作语言

    文章目录 DML数据操作语言 一、DML包括哪些SQL语句 二、数据的增删改(重点) 1、数据的增加操作 2、数据的修改操作 3、数据的删除操作 insert插入、update更新、delete删除 增加:insert 删除:delete 修改:update 1、数据的增加操作  基本语法: 特别注意:在SQL语句中,除了数字,

    2024年02月19日
    浏览(50)
  • MySQL数据库——DML基本操作

    前面我们学习了MySQL——DDL操作,对数据库和表的结构的操作,那么今天我将为大家分享MySQL——DML操作,对表数据的操作。 MySQL DML操作有以下几种: 插入操作(INSERT):用于向数据库中插入新的数据行。可以一次插入单行数据,也可以使用一条SQL语句一次性插入多行数据。

    2024年02月15日
    浏览(60)
  • mysql 数据库定义语言(DDL)

    目录 库的操作 数据库创建 数据库编码集 数据库删除 数据库修改 数据库查询 数据库备份 表的操作 表的创建 查询表 删除表 修改表 这里先声明一下,这篇文章主要是讲数据库表的定义操作,也就是 DDL,只要是对数据库以及表结构操作的 SQL 数据库的创建,其实在之前我们浅

    2024年02月12日
    浏览(42)
  • 【MySQL】数据库SQL语句之DML

    目录 前言: 一.DML添加数据 1.1给指定字段添加数据 1.2给全部字段添加数据 1.3批量添加数据 二.DML修改数据 三.DML删除数据 四.结尾   时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、放松等,哈哈哈,所以博客就这样被搁了。   今天感觉不错,给大

    2024年02月08日
    浏览(69)
  • 【MySQL】:DDL数据库定义与操作

    🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! SQL是一种强大的语言,根据其功能可以分为DDL、DML、DQL和DCL四类。其中,DDL用于定义数据库对象,如数据库、表和字段。本文将深入探讨DDL的数据库操作,包括查询数据库、创建数据库

    2024年02月01日
    浏览(56)
  • MySQL数据库——DDL基本操作

    DDL 操作是与数据库结构相关的操作,它们不涉及实际的数据操作,而是用于管理数据库的结构和元数据。今天我将为大家分享关于MySQL数据库的DDL操作。 SQL 功能 show databases; 查看所有的数据库 create database [if not exists] 数据库名 [charset/character=utf8]; 创建数据库 use 数据库名; 选

    2024年02月15日
    浏览(85)
  • MySQL数据库的DDL语法汇总

    DDL(数据定义语言):针对数据库对象结构的操作,如:数据库、表、视图、索引等 DML(数据操纵语言):对数据库对象中的数据进行操作,比如数据的增删改查 DCL(数据控制语言):授权及取消授权等 TCL(事务控制语言):对事务的控制,如事务的提交及回滚 创建数据库

    2024年02月09日
    浏览(56)
  • MySQL-DDL-数据库操作

    开发项目流程 DDL:Data Definition Language,数据定义语言,用来定义数据库对象(数据库、表) 常见操作 查询 查询所有数据库:show databases; 查询当前数据库:select database(); 使用 使用数据库:use 数据库名称; 创建 创建数据库:creste database[if not exists] 数据库名称; 删除

    2024年02月15日
    浏览(44)
  • 数据库MySQL(三):DML、DQL、DCL

    数据操作语言(Data Manipulation Language,DML) 该语言主要对数据库表中的数据进行增删改 数据查询语言(Data Query Language,DQL) 该语言主要用于查询数据库表的记录 命令格式 SELECT [DISTINCT]    字段1 [AS 字段别名], [字段2 [AS 字段别名]], … FROM    表名列表 WHERE    条件

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包