博客
关于我
MySQL学习-SQL语句的分类与MySQL简单查询
阅读量:789 次
发布时间:2023-02-12

本文共 2707 字,大约阅读时间需要 9 分钟。

1. SQL 语句的分类

SQL(Structured Query Language,结构化查询语言)是用于与数据库交互的标准化查询语言,广泛应用于关系型数据库管理系统中。SQL 可以按照功能主要分为以下几类:

  • DQL(数据查询语言):专门用于查询数据的语言,所有 select 语句都属于 DQL。

  • DML(数据操作语言):负责对数据库中的数据进行增、删、改操作,包括 insertdeleteupdate 等语句。

  • DDL(数据定义语言):用于定义或修改数据库中的表结构,包括 create tabledrop tablealter table 等语句。

  • TCL(事务控制语言):负责事务管理,常用的语句有 commit(提交事务)和 rollback(回滚事务)。

  • DCL(数据控制语言):负责对数据库用户的权限进行管理,包括 grant(授权)和 revoke(撤销权限)等操作。

2. 简单查询

在 MySQL 中,select 语句是执行数据查询的主要语句。最简单的查询方式是使用 select * from table,可以获取表中所有字段的数据。

示例:查询员工表中的所有记录

mysql> select * from emp;

查询结果表格:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 1980-12-17 800 NULL 20
7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30
7521 WARD SALESMAN 7698 1981-02-22 1250 500 30
7566 JONES MANAGER 7839 1981-04-02 2975 NULL 20
7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30
7698 BLAKE MANAGER 7839 1981-05-01 2850 NULL 30
7782 CLARK MANAGER 7839 1981-06-09 2450 NULL 10
7788 SCOTT ANALYST 7566 1987-04-19 3000 NULL 20
7839 KING PRESIDENT NULL 1981-11-17 5000 NULL 10
7844 TURNER SALESMAN 7698 1981-09-08 1500 0 30
7876 ADAMS CLERK 7788 1987-05-23 1100 NULL 20
7900 JAMES CLERK 7698 1981-12-03 950 NULL 30
7902 FORD ANALYST 7566 1981-12-03 3000 NULL 20
7934 MILLER CLERK 7782 1982-01-23 1300 NULL 10

查询字段的具体说明

  • EMPNO:员工编号
  • ENAME:员工姓名
  • JOB:员工职位
  • MGR:员工上级领导编号
  • HIREDATE:员工雇佣日期
  • SAL:员工薪水
  • COMM:员工津贴
  • DEPTNO:员工部门编号

查询语法格式

select [字段名1], [字段名2], ... from 表名;

注意事项

  • 每条 SQL 语句都要以分号 ; 结尾。
  • MySQL 对于大小写不敏感,SELECT 关键字可以使用小写、全大写或部分大写。
  • 查询多个字段时可以使用逗号分隔,例如:
    select ename, empno from emp;
  • 需要查询某个字段的具体信息时,可以直接指定字段名。
  • 查询年薪(字段可参与数学运算)

    select ename, sal * 12 as '年薪' from emp;

    为查询结果的列重命名

    select ename, sal * 12 as yearsal from emp;

    3. 数据库创建与数据插入

    以下是用于创建和插入数据库的 SQL 代码,供参考:

    -- 创建部门表create table dept (    deptno int(2) not null,    name varchar(14),    loc varchar(13),    primary key (deptno));-- 创建员工表create table emp (    empno int(4) not null,    ename varchar(10),    job varchar(9),    mgr int(4),    hiredate date default null,    sal double(7,2),    comm double(7,2),    primary key (empno),    deptno int(2));-- 创建薪酬等级表create table salgrade (    grade int,    losal int,    hisal int);-- 插入部门数据insert into dept (deptno, name, loc) values (10, 'ACCOUNTING', 'NEW YORK');insert into dept (deptno, name, loc) values (20, 'RESEARCH', 'DALLAS');insert into dept (deptno, name, loc) values (30, 'SALES', 'CHICAGO');insert into dept (deptno, name, loc) values (40, 'OPERATIONS', 'BOSTON');-- 插入员工数据insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);-- ... 其他插入语句 ...

    4. 注意事项

    • 在实际开发中,不建议使用 select * from table,因为这会占用大量的网络资源并影响数据库性能。
    • 为提高查询效率,可以在 select 语句中明确指定需要的字段。
    • 使用 as keyword 时,确保字段名称用单引号括起来,并且遵循数据库的具体要求。

    转载地址:http://lrbfk.baihongyu.com/

    你可能感兴趣的文章
    Mysql学习总结(60)——并发量大、数据量大的互联网业务数据库设计规范总结
    查看>>
    Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
    查看>>
    Mysql学习总结(62)——MySQL连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link问题
    查看>>
    Mysql学习总结(63)——Mysql数据库架构方案选择与分析
    查看>>
    Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
    查看>>
    Mysql学习总结(65)——项目实战中常用SQL实践总结
    查看>>
    Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
    查看>>
    Mysql学习总结(67)——MYSQL慢查询日志
    查看>>
    Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
    查看>>
    Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
    查看>>
    Mysql学习总结(6)——MySql之ALTER命令用法详细解读
    查看>>
    Mysql学习总结(70)——MySQL 优化实施方案
    查看>>
    Mysql学习总结(71)——MySQL 重复记录查询与删除总结
    查看>>
    Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
    查看>>
    Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
    查看>>
    Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
    查看>>
    Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
    查看>>