IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库学习笔记_01 -> 正文阅读

[大数据]数据库学习笔记_01

数据库(DB)

概念:Database,用于存储和管理数据的仓库
数据库特点:
1、持久化存储数据。其实数据库就是一个文件系统
2、方便存储和管理数据
3、使用同样的方式操作数据库–SQL
常见的数据库软件:OracleMySQL、Microsoft SQL Sever、DB2……(用的比较多的是前面两种)

SQL

Structured Query Language:结构化查询语言。其实就是他定义了操作所有关系型数据库的原则

SQL通用语法

1、可以以单行或多行书写,以分号结尾
2、MYSQL数据库的SQL语句不区分大小写,关键字建议使用大写
3、3种注释:
*单行注释:-- (英文的两个横杠一个空格)注释内容 或 #(有没有空格都可以) 注释内容(mysql特有)
多行注释:/ 注释 */

SQL的分类

1、DDLData Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:creat,drop,alter
客户端操作数据库和表
2、DMLData Manipulation Language)数据库操作语言
用来对数据库中列表的数据进行增删改 insert,delete,update
3、DQLData Query Language)数据库查询语言
用来查询数据库中表的记录(数据) select,where
4、DCLData Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户 GRANT,REVOKE

图示:

DDL

1、操作数据库:CRUD
(1) create:创建
create database 数据库名称;(已有会报错)
create database if not exists 数据库名称;
create database 名称 character set gbk;(设置成gbk,默认是UTF-8)

(2) retrieve:查询
*查询所有数据库名称:show databases
*查看某个数据库的字符集:查看某个数据库的创建语句
show create databases 数据库名称;

(3) update:修改
*修改数据库的字符集
alter database 数据库名称 character set 字符集名称(utf-8,gbk)

(4) delete:删除

*删除数据库
drop database 数据库名称(千万千万不要删除SQL里面的mysql数据库)
if exists和前面一样

*使用数据库
use 数据库名称
*查询当前正在使用的数据库名称
select database();

2、操作表

*create:创建
语法:
create table 表名(
列名1 数据类型1,
列名n 数据类型n(没有逗号)
);

create table student(
Id int,
Name varchar(32),
Score double(4,1),
Birthday_time date,
Insert_time timestamp//注意这里没有逗号
);

数据类型

int //整数类型
age int 
double //小数类型 
score double() //里面的参数(数字)表小数点后的位数一共有多少位
date //日期,只包含年月日,yyyy-MM-dd
datetime //日期 yyyy-MM-dd HH:mm:ss
timestamp//时间错类型yyyy-MM-dd,如果将来不给这个字段赋值,或赋值为null,则默认使用当前的	系统时间来自动赋值
varchar//字符串
name varchar(20)//姓名最大为20个字符

create table stu like student;复制表

*retrieve:查询
查询某个数据库中所有的表的名称
show tables;

查询表结构
desc 表名;

*update:修改

1、修改表名
alter table 表名 rename to 新的表名
2、修改表的字符集
alter table 表名 character set 字符集名称
3、添加一列
alter table表名 add 列名 数据类型; 
4、修改列名称 类型
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;(只改数据类型)
5、删除列
alter table 表名 drop 列名;

*delete:删除
*drop table 表名(if exists同上)

DML

1、添加数据
语法

insert into 表名(列名1,列名2,……列名n)values(值1,值2,……值n);
字符串用单引号双引号都可以
注意:**列名和数值要一一对应**
如果表名后面没接列名,则默认给所有列名添加值
insert into 表名 values(值1,值2,……值n);

2、删除数据
语法

delete from 表名where 条件;
delete from student where id=1;
truncate table 表名; -- 删除表,然后再创建一个一模一样的空表

注意:如果不加条件 会把表中所有数据都删除 不推荐使用,有多少条数据就会行多少次

3、修改数据
语法

update 表名 set 列名1=值1,…… where 条件//一次只能改同一行上的

注意:如果不加任何条件,该列的所有数据都会改变

DQL

语法

select
字段列表
from
表名列表
where 
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit 分页限定

1. 基础查询

stu表stu表(1)多个字段的查询`

SELECT NAME,math,chinese FROM stu;//同时查询3列

(2)去除重复

SELECT * FROM stu;
SELECT address FROM stu;//不会筛掉重复的部分,见图1
SELECT DISTINCT address FROM stu;//会筛掉重复的部分,见图2

图1:
图1
图2:
图2

(3)计算列

SELECT NAME,math,chinese,math+IFNULL(chinese,0) FROM stu;//计算两科的总分并显示再查询结果中
//IFNULL(chinese,0)是因为在你创建表时某个chinese没有被赋值,其会变成null,无法做运算,得把它变成0,math的也是

(4)起别名

SELECT NAME,math,chinese,math+chinese 总分 FROM stu; // 总分前可以加 AS,把分数总和的那一列命名为“总分”

2. 条件查询

where字句后跟条件
运算符

<,>, <=, =, <>(不等于,也可以用 !=)
BETWEEN……AND
IN
LIKE 模糊查询
占位符:
_:单个任意字符
%:多个任意字符
IS NULL
and 或 &&
or 或 ||
not 或 |

-- 查询年龄在20到30之间的
SELECT * FROM stu WHERE age >=20 && age <=30;//方式1
SELECT * FROM stu WHERE age >=20 AND age <=30;//方式2
SELECT * FROM stu WHERE age BETWEEN 20 AND 30;//方式3
-- 查询年龄为17、18、22的信息
SELECT * FROM stu WHERE age = 17 OR age = 18 OR age = 22;//简单粗暴
SELECT * FROM stu WHERE age IN (17,18,22);//主要记住这种
-- 查询语文成绩为null
SELECT * FROM stu WHERE chinese = null;//不正确!!!,null值不能使用等号或者不等号来判断
SELECT * FROM stu WHERE chinese IS NULL;//这样才行
-- 查询不为null的
SELECT * FROM stu WHERE chinese IS NOT NULL;
-- 查询姓马的有哪些  like
SELECT * FROM stu WHERE NAME LIKE '马%';//%表多个任意字符
-- 查询姓名第二个字是化的人
SELECT * FROM stu WHERE NAME LIKE "_化%";//单引号双引号都可以
-- 查询姓名中含马的人
SELECT * FROM stu WHERE NAME LIKE "%马%";
-- 查询姓名是3个字的人
SELECT * FROM stu WHERE NAME LIKE '___';//三个下划线

笔记内容来源于黑马程序员教学视频,写这些仅是为了加深自己的记忆,待续……

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:15:18  更:2021-10-21 12:16:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:53:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码