第17天:数据库学习笔记1

数据库学习笔记

1 SQL语言介绍

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2 数据库的安装

2.1 启动数据库

方式一:net start mysql

方式二:在计算机管理里面手动打开数据库

2.2 登录MySQL

方式一:本地登录

即数据库与客户端在同一台电脑上。

方式二:远程登录

mysql -uroot -h数据库服务器的IP地址 -p

但用root账户对数据库服务器进行远程登录,一般会被拒绝,因为root账户的权限非常高。

若是想要访问,可以按照以下步骤进行操作:

  • 第一步:先在本地使用root账户登录mysql
  • 第二步:use mysql
  • 第三步:update user set host=‘%’ where user=‘root’;
  • 第四步:flush privileges;
  • 第五步:退出,再以远程方式登录

3 初始化数据

3.1查看有多少个数据库

show databases;

3.2 使用数据库

use 数据库名;

3.3 查看表

show tables

3.4 创建新的数据库

create database 数据库名;

3.5 删除数据库

drop database 数据库名;

3.6 查看当前使用的数据库

select database();

3.7 退出mysql

  1. exit
  2. quit
  3. ctrl+c

3.8 查看mysql版本

  • 方式一:启动数据库后,用select version();查看
  • 方式二:在cmd中输入mysql --version

3.9 熟悉表结构

desc 表名;

3.10 初始化数据

  • 你入职的时候,项目一般都是进展了一部分,多数情况下你进项目组的时候数据库的表以及数据都是有的,项目经理第一天可能会给你一个较大的sql脚本文件,你需要执行这个脚本文件来初始化你的本地数据库。(当然,也有可能数据库是共享的。)
  • 创建文件:xie.sql,把以上SQL语句全部复制到sql脚本文件中。
  • 执行SQL脚本文件,初始化数据库
    • 第一步:命令窗口登录mysql
    • 第二步:创建数据库xie(如果之前已经创建就不需要再创建了):create database xie;
    • 第三步:使用数据库xie:use xie;
    • 第四步:source命令执行sql脚本,注意:source命令后面是sql脚本文件的绝对路径。

4 查询语句DQL专题

select语句永远不会改变表的结构

4.1 简单查询

4.1.1 查询一个字段

语法格式:select 字段名 from 表名;

4.1.2 sql语句写错了

输入\c来终结该语句

4.1.2 查询多个字段

语法格式:select 字段名,字段名,字段名… from 表名;

4.1.3 查询一个表所有信息

语法格式:select * from 表名;

4.1.4查询时字段可参与数学运算

例如:select deptno*12 from dept;

4.1.5 查询时给字段起别名

可以起中文别名

  • 情况一:select 字段 as 字段别名 from 表名;
  • 情况二:select 字段 字段别名 from 表名;(as可以省略)
  • 情况三:select 字段 ‘字段别名 1’ from 表名;(若是别名有空格必须给别名括上单引号或双引号,其中单引号是标准)

4.2 条件查询

条件说明
=等于
<>或!=不等于
>=大于等于
<=小于等于
>大于
<小于
between…and…等同于 >= and <=
is null为空
is not null不为空
<=>安全等于(可读性差,很少使用了)。
and 或 &&并且
or 或 ||或者
in在指定的值当中
not in不在指定的值当中
exists
not exists
like模糊查询
4.2.1 条件查询语法格式

select 字段名 from 表名 where 过滤条件;

执行顺序,先from再where最后select

mysql无论是语句还是字段等内容都不区分大小写,orcale区分大小写

4.2.2 不等于查询

在开发中一般使用<>表示不等于。

select * from emp where deptno<>10;

4.2.3 区间查询

查询工资在1600~3000的员工信息

between…and…是闭区间的。between 1000 and 2000 是包含1000和2000的。

  • 方式一:select * from emp where sal>=1600 and sal<=3000;
  • 方式二:select * from emp where sal between 1600 and 3000;
4.2.4 and和or的优先级问题

and和or同时出现时,and优先级较高,会先执行,如果希望or先执行,这个时候需要给or条件添加小括号。另外,以后遇到不确定的优先级时,可以通过添加小括号的方式来解决。对于优先级问题没必要记忆。

4.2.5 between…and…

between…and…是闭区间的。between 1000 and 2000 是包含1000和2000的。

不仅能用在数字方面,字符串,日期方面也可以。

  • 数字:select * from emp where sal between 1600 and 3000;
  • 字符串:select ename from emp where ename between 'a' and 'z';
  • 日期:select * from emp where HIREDATE between ' 1982-01-23' and '1987-04-19';
4.2.6 is null is not null

判断某个数据是否为null,不能使用等号,只能使用 is null 判断某个数据是否不为null,不能使用不等号,只能使用 is not null 在数据库中null不是一个值,不能用等号和不等号衡量,null代表什么也没有,没有数据,没有值.

4.2.7 in not in

案例1:找出工作岗位是MANAGER和SALESMAN的员工姓名、薪资、工作岗位.

  • 方式一:select ename,sal,job from emp where job= ‘MANAGER’ or job=‘SALESMAN’;
  • 方式二:select ename,sal,job from emp where job in(‘MANAGER’,‘SALESMAN’);
4.2.8 in not in 与null的小细节

select * from emp where comm = NULL or comm = 300;

上述语句执行的效果如下:select * from emp where comm = 300;

NULL不能用等号=进行判断,所以comm = NULL结果是false.

in是自动忽略NULL的,但not in是不忽略NULL的。

如下代码:mysql> select * from emp where comm not in(null,300);结果什么也查不出来。

4.2.9 模糊查询

语法格式:select …from … where 字段1 like ‘通配符表达式’;

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

查含有下划线的字符需要转义_

5 排序操作

5.1 单个字段排序

语法格式:select .. from .. order by 字段 asc/desc

默认为升序。

5.2 多个字段排序

语法格式:select .. from .. order by 字段 asc/desc,字段 asc/desc

例子:查询员工的编号、姓名、薪资,按照薪资升序排列,如果薪资相同的,再按照姓名升序排列。

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

5.3 where和order by的位置

找出岗位是MANAGER的员工姓名和薪资,按照薪资升序排列。

select ename,sal from emp where job = 'MANAGER' order by sal asc;

where先执行,order by语句是最后执行的。

5.4 执行顺序

首先执行where再执行from再执行select最后执行order by。

6 distinct去重

去除表中重复的记录(联合全部字段去重),但真实数据库里面的不会改变。

distinct 出现在所有字段的最前方。

数据库注意事项

当数据库连接不上的时候,可以看看是不是在计算机管理的标准里面将数据库关闭了。

`

where先执行,order by语句是最后执行的。

5.4 执行顺序

首先执行where再执行from再执行select最后执行order by。

6 distinct去重

去除表中重复的记录(联合全部字段去重),但真实数据库里面的不会改变。

distinct 出现在所有字段的最前方。

数据库注意事项

当数据库连接不上的时候,可以看看是不是在计算机管理的标准里面将数据库关闭了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值