数据库-mysql基本知识-1

数据库-mysql基本知识-1

sql,DB,DBMS分别是什么?他们的关系。
DB:DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)
DBMS:DataBase Management System(数据库管理系统,常见的有Mysql,Oracle,DB2 Sybase SqlServer…)
SQL:结构化查询语言,是一门标准通用的语言,标准sql适用于所有的数据库产品。sql语句在执行时,内部也会先由DBMS进行编译,然后再执行sql。

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

表(table):

表是数据库的基本组成单元,所有数据都以表格的形式组织,目的是可读性强。
表包括行和列。
行:被称为数据,记录(data)。
列:被称为字段(colum)。

SQL语句的分类:

DQL(数据查询语言):查询语句,凡是select语句都是DQL。
DML(数据操作语言):insert,delete,update,对表的数据进行增删改。
DDL(数据定义语言):create,drop,alter,对表结构的增删改。
TCL(事务控制语言:commit提交事务,rollback回滚事务。
DCL(数据控制语言):grant授权,revoke撤销权限等。

mysql中doc命令:
1.打开dos命令窗口输入:mysql -uroot -p
2.登录后输入:show databases; 显示有哪些数据库
3.创建自己的数据库:create database mysqldata;
4.使用mysqldata数据库:use mysqldata;
5.查看当前数据库有哪些表格:show tables;
6.desc 表名:查看表结构。

脚本文件:
文件扩展名为.sql,并且文件中编写了大量的sql语句,我们称这样的文件为sql脚本。

常用命令:

创建数据库:create database 数据库名称;
使用数据库:use 数据库名称;
查询当前使用的数据库:select database();
查询数据库版本:select version();
终止一条命令:\c
退出mysql:exit
查看创建表的语句:show create table 表名;

sql语句:

简单的查询语句(DQL):

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

注意:任何一条语句以";"结尾。sql有语句不区分大小写。

select * from 表名;

代表查询某个表的全部字段。(实际开发中不建议使用)

给查询的结果重命名:

select 字段名1 as 名字,字段名2 as 名字,... from 表名;

注意:as关键字可以省略,当名字是中文时,需要加’’。

条件查询:

select 字段1,字段2 from 表名 where 条件;

注意:字符串要用单引号括起来。

运算符说明
=等于
<>,!=不等于
<小于
<=小于等于
>大于
>=大于等于
between…and…两个值之间
is null为空(在查找字段是否为空的时候,要用is null,is not null来判断)
and并且
or或者
in包含
not取非
like模糊查询

模糊查询:用like,%代表任意多个字符,_代表1个字符。
in 举例:

select 字段1,字段2 from 表名 where salary in(1000,5000);

数据排序:

用order by,默认是升序,指定升序或者降序:asc表示升序,desc表示降序。
例如:

select name,number from mysqldata order by salary desc;
order by 字段1asc/desc),字段2asc/desc;

只有当字段1相等的时候,才会按字段2来排。

执行顺序:

select 
   字段    5    (挑选)
from 
   表名    1
where
   条件    2   (过滤)
group by
   字段    3  (分组)
having     
   ...     4   (再过滤)
order by
   ...     6    (排序)
limit
   ...     7    (取哪几个)

分组函数(多行处理函数):

count: 计数
sum: 求和
avg: 平均值
max:最大值
min:最小值
所有的分组函数都是对某一组数据进行操作的。
注意:分组函数自动忽略null。

单行处理函数:

输入一行,输出一行。
ifnull函数:
ifnull(可能为null的数据,被当作什么)
只要有null参与的运算都是null。
例如:

select name,ifnull(comm,0) from mysqldata;

当comm为空时,默认为0。

group by:

按照某些字段进行分组。
语法:

select 字段 from 表名 group by 需要分组的字段;(可跟多个字段)

注意:分组函数一般会和group by联合使用过,分组函数一定在group by语句执行之后再执行,当一条sql语句没有group by时,整张表的数据自称一组。
注意:当一条语句有group by时,select后面只能跟分组函数和参加分组的字段。

having:

对分组之后的数据再次进行过滤。

select 字段 from 表名 group by 需要分组的字段 having 条件;

提示:能在where中过滤的,尽量在where中过滤。

distinct:

用来去除重复的查询结果,只能出现在所有字段的最前面,表示后面出现的字段联合去重。
例如:

select distinct job from mysqldata;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值