数据库笔记

数据库

数据库概述

1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?

数据库:英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据。

数据库管理系统:DataBaseManagement,简称DBMS。数据库管理系统是专门用来管理数据库中的数据的,数据库管理系统可以对数据库当中的数据进行增删查改。常见的数据库管理系统:MYSQL、Oracle、MS、SqlServer、DB2、sybase等…

SQL:结构化查询语言(程序员需要学习SQL语句,编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删查改操作。)

三者之间的关系:DBMS–执行–>SQL–操作–>DB

2、MYSQL常用命令:

  • 查看有哪些数据库:show database;
  • 选择使用某个数据库:use 数据库名;
  • 创建数据库:create database 数据库名;
  • 查看有哪些表:show tables;
  • 查看表的结构:desc 表名;
  • 查看mysql数据库的版本号:select version();
  • 查看当前使用的是那个数据库:select database();
  • mysql是不见";“不执行,”;"表示结束。
  • \c用来终止一条命令的输入。

3、表(table)

  • 数据库当中最基本的单元是表:table;数据库中是以表格的形式表示数据的。因为表比较直观。
  • 行(row):被称为数据/记录。
  • 列(column):被称为字段。

关于SQL语句的分类

SQL分类

  • DQL:数据查询语言(凡是带有select关键字的都是查询语句)
  • DML:数据操作语言(凡是对表当中的数据进行增删改的都是DML),insert(增)、delete(删)、update(改)
  • DDL:数据定义语言(凡是带有create、drop、alter都是DDL),DDL主要操作的是表的结构,不是表中的数据。create(新建)、drop(删除)、alter(修改)。
  • TCL:事务控制语言,commit(事务提交)、rollback(事务回滚)
  • DCL:数据控制语言,grant(授权)、revoke(撤销权限)

简单查询

查询一个字段

select 字段名 from 表名;

查询多个字段

select 字段名,字段名 from 表名;

查询所有字段

select 字段名,字段名 from 表名;(每个字段都写上)
select * from 表名;(使用*号)

给查询的列起别名

select 字段名,字段名 as 别名 from 表名;
使用as关键字起别名。
注意:只是将显示的查询结果列名显示为别名,原列表名还是不变
记住:select语句是永远都不会进行修改操作的。(因为只负责查询)
as关键字可以省略吗?可以的
select 字段名,字段名  别名 from 表名;
假设起别名的时候,别名里面有空格,怎么办?
select 字段名,字段名  '别名' from 表名;
select 字段名,字段名  "别名" from 表名;
注意:在所有的数据库当中,字符串统一使用单引号括起来,单引号是标准,双引号在oracle数据库中用不了。但是在mysql中可以使用。

列参与数学运算

select 字段名,字段名*12 as 别名 from 表名;
举例,计算年薪
select 字段名,月薪*12 as 年薪 from 表名;
注意:别名为中文要加单引号'年薪'括起来。

条件查询

查询符合条件的数据,语法格式:
select 字段名 from 表名 where 条件;

条件:

  • =等于
  • <> 或 != 不等于
  • <小于
  • <= 小于等于
  • >大于
  • >=大于等于
  • between …and…两个值之间,边界值也要取
  • is null 为null(is not null不为空)
  • and 并且
  • or 或者
  • not 取非,主要用在is或in中
  • in 包含,相当于多个or(not in不在这个范围中)(注:in不是一个区间,后面是具体的值)
  • like 为模糊查询,支持%或下划线匹配
  • % 匹配任意个字符
  • _ 一个下划线只匹配一个字符(如果查询带有_的字段时可以加转义字符\)

注意:and和or同时出现,and的优先级较高,如果想让or先执行,需要加“小括号”。

排序

单个字段排序

select 字段名 from 表名 order by 字段名;(默认是升序)
select 字段名 from 表名 order by 字段名 asc;(升序)
select 字段名 from 表名 order by 字段名 desc;(降序)

多个字段排序

select 字段名 from 表名 order by 字段名 asc 字段名 asc;(在前的为主导,只有相等时,才会考虑启用下一个字段排序)

根据字段位置排序

select 字段名 from 表名 order by 2;(2表示第二例,按照查询结果第二例排序)
注:了解即可,开发中不建议这样写,因为不健壮,因为列的顺序很容易发生改变,列顺序修改之后,2就废了。

综合案例

select * from 表名 where sal between 1250 and 3000 order by sal desc;(sal 为薪资字段)

单行处理函数

数据处理函数

数据处理函数又被称为单行处理函数,单行处理函数的特点,一个输入对应一个输出,和单行处理函数相对应的是:多行处理函数。(多行处理函数的特点:多个输入,对应一个输出)

常见的单行处理函数

lower() 转换小写

upper() 转换大写

substr (被截取的字段名,起始下标,截取长度) 取子串

length() 取长度

trim()去空格

concat() 字符串的拼接

str_to_data ()将字符串转换成日期

date_format ()格式化日期

format()设置千分位

round(值,保留小数位数)四舍五入

rand()生成随机数

ifnull()可以将null转换成一个具体值

注:()里写字段名。

substr()的用法:
select substr(字段名,1,1)as 别名 from 表名; 
注意:起始下标从1开始,没有0.
例题一:找出员工名字第一个字母是A的员工信息?
第一种方法:模糊查询
select 字段名 from 表名 where 字段名 like 'A%';
第二种方法:substr函数
select 字段名 from 表名 where substr(字段名,1,1)='A';
例题二:首字母大写?
select concat(upper(substr(字段名,1,1)),substr(字段名,2,length(字段名)-1))as
别名 from 表名 ;
trim()的用法:
select *  from 表名 where 字段名=trim('     king');
结论:select后面可以跟某个表的字段名(可以等同看作变量名),也可以跟字面量/字面值(数据)。
例如:
select 1000 as 别名 from 表名;
select 'abc' as 别名 from 表名;  //select后边直接跟字面量/字面值
round()的用法:
select round(1236.567,0)as 别名 from 表名;  //保留整数
select round(1236.567,1)as 别名 from 表名;  //保留1位小数
select round(1236.567,-1)as 别名 from 表名;  //值为1240(往前保留一位)
ifnull()函数可以将null转换成一个具体值,
在所有数据库当中,只要有null参与运算的数学运算,最终结果就是null,为了避免这个现象,需要使用ifnull函数,
用法ifnull(数据,被当作那个值࿰
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值