mysql的第一篇关于DQL的文章

1.DB:database(数据库,在硬盘上以文件出现)

DBMS:database manage system(数据库管理系统,常见的有MySQL,Oracle,db2)

sql:结构化查询语言,是一门标准通用语言,标准的sql适用于数据产品

sql属于高级语言,在执行时内部先会进行编译,然后再执行sql,sql的编译由dbms完成

DBMA负责执行sql语句,通过执行sql语句来操作DB当中数据

2.什么是表:

table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。

一个表包括行和列:行被称为数据/记录

列被称为字段

每一个字段包括的属性:字段名,数据类型,相关的约束

学号(int)姓名(varchar) 年龄


110 张三 20

120 李四 21

3.学习MySQL还是得学通用的sql语句

DQL:查询语句,凡是select语句都是DQL

DML:对表当中数据进行增删改insert delete update

DDL:create drop alter 对表结构的增删改

TCL:事物控制语言,commit提交事务,rollback回滚事务

DCL:数据控制语言:grant授权,revoke撤销权限

4.导入数据

第一步:登录mysql

dos

第二步:查看有哪些数据库

show databases;(这个不是sql语句,属于MySQL的命令)

第三步:创建属于自己的数据库

create database bjpowernode

第四步:使用bjpowernode: use bjpowernode

第五步:查看当前使用的数据库中有哪些表

show table;

第六步:初始化数据

在存放MySQL的文件夹中找到resources里面的bjpowernode.sql

打开dos命令行输入source+把文件拖过来,完成初始化

5.bjpowernode.sql以sql结尾马,这样的文件被称为脚本

当一个文件的扩展名是sql,并且文件中编写了大量的sql语句,我们称之为该文件为sql脚本

可以直接使用source命令执行sql脚本

sql脚本中的数据量太大,无法打开,请使用source命令完成初始化

  1. 常用命令

    MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能?

    1.显示MYSQL的版本 mysql> select version(); +-----------------------+ | version() | +-----------------------+ | 6.0.4-alpha-community | +-----------------------+ 1 row in set (0.02 sec)

    2.查看当前是那个数据库

    mysql>select database()

    7.查看创建表的语句

    show create table emp

    (怎么查看创建这张表的语句)

    8.

简单的查询

1.简单的查询语句(DQL)

语法格式:

select 字段名1,字段名2,字段名3。。。。form 表名

1.任何一条sql语句以;结尾

2.sql语句不区分大小写

例如 查询员工年薪

![image-20220127094027686](C:\Users\86150\AppData\Roaming\Typora\typora-user-images\image-20220127094027686.png)

怎么给查询结果的列重命名

select ename ,sal * 12 as yearsal from emp

标准sql语句要求字符串用单引号括起来。

2.条件查询

语法格式

select

字段,字段

from

表名

where

and和or和in的问题

and和or联合起来使用,找出薪资大于1000的并且编号20或者30的员工

select ename,sal,deptno from emp where sal >1000 and deptno=20 or deptno =30

这里执行可以看出,or的优先级高于and,所以正确的语句可以这样写

select ename,sal,deptno from emp where sal >1000 and (deptno=20 or deptno =30)

in等同于or

select ename,sal,deptno from emp where sal in(1000,5000);

in后面跟的不是区间,是两个值

not in :不在这几个值中

like模糊查询

支持% _匹配

找出名字中有o的

%代表任意多个字符,_代表任意一个字符

select ename from emp where ename like ‘_A%’

排序(升序,降序)

select ename,sal from emp order by sal;//默认升序

select ename,sal from emp order by sal asc;//升序

select ename,sal from emp order by sal desc;//降序

按照工资降序排列,当工资相同时按照名字的升序排列;

select ename,sal from emp order by sal desc,ename asc;

越靠前的字段越起到主导作用,只有前面的字段无法排序时候,才会启用后面的字段

分组函数

count 计数

sum求和

avg平均值

max最大值

min最小值

所有的分组函数都是对某一组的数据进行操作的

对sal求和,对工资求和

select sum(sal) from emp;

count所有和count具体某个字段的区间

select ename,sal from emp where sal>avg(sal)

分组函数不可直接使用在where语句中

count(*):不是统计某一个字段数据的个数,而是统计总记录条数

count(comm):表示统计comm字段中不为null的数据总数量

group by和having

group by:按照某个字段或者某些字段进行分组

having:having是对每个分组之后的数据进行再次过滤

找出 每个工作岗位的最高薪资

select max(sal)from emp group by job;

group by是在where之后才执行的

当一条sql语句没有group by的话,整张表数据会自成一组

select

。。

from

。。

where

。。

group by

。。

having

。。

order by

。。

上一篇:小程序开发日志-5、自定义导航栏


下一篇:C语言指针和数组