文章目录
- 前言
- 一、数据库概述及数据准备
- 1.1、SQL概述
- 1.2、什么是数据库
- 1.3、MySql概述
- 1.4、表
- 1.5、SQL的分类
- 二、常用命令
- 2.1、查看msyql版本
- 2.2、创建数据库
- 2.3、查询当前使用的数据库
- 2.4、终止一条语句
- 2.5、退出mysql
- 2.6、查看表的结构
- 三、简单的查询
- 3.1、Select
- 3.2、起别名as
- 四、条件查询
- 4.1、where
- 4.2、等号操作符
- 4.3、 <>操作符
- 4.4、between … and …操作符
- 4.5、is null
- 4.6、 and
- 4.7、or
- 4.8、表达式的优先级
- 4.9、in
- 4.10、not
- 4.11、like
- 总结
前言
本文为博主自学mysqlb站动力节点老杜的学习笔记,如有侵权请联系删除。
提示:以下是本篇文章正文内容,下面案例可供参考
一、数据库概述及数据准备
1.1、SQL概述
SQL,一般发音为sequel,SQL的全称Structured Query Language),SQL用来和数据库打交道,完成和数据库的通信,SQL是一套标准。但是每一个数据库都有自己的特性别的数据库没有,当使用这个数据库特性相关的功能,这时SQL语句可能就不是标准了.(90%以上的SQL都是通用的)
1.2、什么是数据库
数据库,通常是一个或一组文件,保存了一些符合特定规格的数据,数据库对应的英语单词是DataBase,简称:DB,数据库软件称为数据库管理系统(DBMS),全称为DataBase Management System,如:Oracle、SQL Server、MySql、Sybase、informix、DB2、interbase、PostgreSql 。
1.3、MySql概述
MySQL最初是由“MySQL AB”公司开发的一套关系型数据库管理系统(RDBMS-Relational Database Mangerment System)。
MySQL不仅是最流行的开源数据库,而且是业界成长最快的数据库,每天有超过7万次的下载量,其应用范围从大型企业到专有的嵌入应用系统。
MySQL AB是由两个瑞典人和一个芬兰人:David Axmark、Allan Larsson和Michael “Monty” Widenius在瑞典创办的。
在2008年初,Sun Microsystems收购了MySQL AB公司。在2009年,Oracle收购了Sun公司,使MySQL并入Oracle的数据库产品线。
1.4、表
表(table)是一种结构化的文件
,可以用来存储特定类型的数据,如:学生信息,课程信息,都可以放到表中。另外表都有特定的名称,而且不能重复。表中具有几个概念:列、行、主键
。 列叫做字段(Column),行叫做表中的记录,每一个字段都有:字段名称/字段数据类型/字段约束/字段长度
学生信息表
学号(主键) | 姓名 | 性别 | 年龄 |
00001 | 张三 | 男 | 20 |
00002 | 李四 | 女 | 20 |
1.5、SQL的分类
数据查询语言(DQL-Data Query Language)
代表关键字:select
数据操纵语言(DML-Data Manipulation Language)
代表关键字:insert,delete,update
数据定义语言(DDL-Data Definition Language)
代表关键字:create ,drop,alter,
事务控制语言(TCL-Transactional Control Language)
代表关键字:commit ,rollback;
数据控制语言(DCL-Data Control Language)
代表关键字:grant,revoke.
二、常用命令
2.1、查看msyql版本
- MySQL程序选项具有以下两种通用形式:
- 长选项,由单词之前加两个减号组成
- 短选项,由单个字母之前加一个减号组成
C:\Users\Administrator>mysql --version
mysql Ver 14.14 Distrib 5.5.36, for Win32 (x86)C:\Users\Administrator>mysql -V
mysql Ver 14.14 Distrib 5.5.36, for Win32 (x86)
2.2、创建数据库
1.create database 数据库名称; create database bjpowernode;
2.use 数据库名称 use bjpowernode;
在数据库中建立表,因此创建表的时候必须要先选择数据库。
2.3、查询当前使用的数据库
select database();
查询数据库版本也可以使用
select version();
2.4、终止一条语句
如果想要终止一条正在编写的语句,可键入\c。
2.5、退出mysql
可使用\q、QUIT或EXIT:
如:
mysql> \q (ctrl+c)
2.6、查看表的结构
desc <table name>;
三、简单的查询
3.1、Select
select
Select语句后面跟的是字段名称,select是关键字,select和字段名称之间采用空格隔开,from表示将要查询的表,它和字段之间采用空格隔开select * from emp;
3.2、起别名as
select empno as ‘员工编号’, ename as ‘员工姓名’, sal*12 as ‘年薪’ from emp;
as可以将字段名起个别名显示,仅用于显示,不改变表。
当然 as也可以省略。select empno "员工编号", ename "员工姓名", sal*12 "年薪" from emp;
注意中文必須用""
|''
引起來。
四、条件查询
4.1、where
where
条件查询需要用到where语句,where必须放到from语句表的后面
支持如下运算符
运算符 | 说明 |
= | 等于 |
<>或!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
between … and …. | 两个值之间,等同于 >= and <= |
is null | 为null(is not null 不为空) |
and | 并且 |
or | 或者 |
in | 包含,相当于多个or(not in不在这个范围中) |
not | not可以取非,主要用在is 或in中 |
like | like称为模糊查询,支持%或下划线匹配,%匹配任意个字符,下划线一个下划线只匹配一个字符 |
4.2、等号操作符
- 查询薪水为5000的员工
select empno, ename, sal from emp where sal=5000;
- 查询job为MANAGER的员工
select empno, ename from emp where job="manager";
Mysql默认情况下大小写是不敏感的。
MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再 想要将数据库导出放到linux服务器中使用时就出错了。因为在linux下表名区分大小写而找不到表,查了很多都是说在linux下更改MySQL的设置使其也不区分大小写,但是有没有办法反过来让windows 下大小写敏感呢。其实方法是一样的,相应的更改windows中MySQL的设置就行了。
具体操作:
在MySQL的配置文件my.ini中增加一行:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写
4.3、 <>操作符
- 查询薪水不等于5000的员工
select empno, ename, sal from emp where sal <> 5000;
4.4、between … and …操作符
- 查询薪水为1600到3000的员工(第一种方式,采用between … and …)
select empno, ename, sal from emp where sal between 1600 and 3000;
关于between … and …,它是包含最大值和最小值的,
并且and左面必须是最小值,右面必须是最大值。
4.5、is null
Null为空,但不是空串,为null可以设置这个字段不填值,如果查询为null的字段,采用is null
- 查询津贴为空的员工
select * from emp where comm is null;
4.6、 and
and表示并且的含义,表示所有的条件必须满足
- 工作岗位为MANAGER,薪水大于2500的员工
select * from emp where job='MANAGER' and sal > 2500;
4.7、or
or,只要满足条件即可,相当于包含
- 查询出job为manager或者job为salesman的员工
select * from emp where job='MANAGER' or job='SALESMAN';
4.8、表达式的优先级
- 查询薪水大于1800,并且部门代码为20或30的(正确的写法)
select * from emp where sal > 1800 and (deptno = 20 or deptno = 30);
关于运算符的问题:不用记,没有把握尽量采用括号
4.9、in
- 查询出job为manager或者job为salesman的员工
select * from emp where job in ('manager','salesman');
4.10、not
- 查询出薪水不包含1600和薪水不包含3000的员工
select * from emp where sal not in (1600, 3000);
==不为空:is not ==
4.11、like
- 查询姓名以M开头所有的员工
select * from emp where ename like 'M%';
- 查询姓名以N结尾的所有的员工
select * from emp where ename like '%N';
- 查询姓名中包含O的所有的员工
select * from emp where ename like '%O%';
- 查询姓名中第二个字符为A的所有员工
select * from emp where ename like '_A%';
Like中%和下划线的差别?
%匹配任意字符出现的个数
下划线只匹配一个字符
Like 中的表达式必须放到单引号中|双引号中