学习大数据,需要的SQL基础(1)

这篇具有很好参考价值的文章主要介绍了学习大数据,需要的SQL基础(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SQL语句

1.介绍:操作数据库的语言,所有关系型数据库的语句标准,是一种语法规则
2.但是不同的关系型数据库语法再遵守sql语句的前提下,也有个别不用的语法,这一类不同的语法,也叫做数据库方言

数据库语言分类

数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
数据库操作语言:简称DML(Data Manipulation Language),用来对数据库中的记录进行操作,关键字:insert,delete,update等
数据库控制语言:简称DCL(Data Control Language),用来定义数据库中的访问权限和安全级别,及创建用户
数据库查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录,关键字:select,from,where等

SQL语句的通用语法

SQL语句可以单行或多行书写,以分号结尾
可使用空格和缩进来增强语句的可读性:基本上一个单词就是一个空格
MySQL数据库的SQL语句不去分大小写,关键字建议使用大写
例如:SELECT * FROM user
同样可以使用/* */的方式i完成注释
还可以使用井号##

sql中的数据类型

类型名称 说明
int 整数长度 整数类型
double 小数类型
decimal 指定整数位与小数位长度的小数类型
date 日期类型 格式为yyyy-MM-dd,包括年月日,不包括时分秒
datetime 日期类型,格式为yyyy-MM-DD HH:MM:SS,包括年月日时分秒
timestamp 日期类型,时间戳 从1970到2024
varchar(字符串长度) 文本类型,M为0-65535之间的整数

MySQL中的语句

DDL之数据库操作 database

创建数据库

关键字: create database
语法:create database 数据库名字 charset utf8

在创建数据库时建议用`包裹
列名也可以用`包裹
注意:
1.mysql默认编码,拉丁文latin-1,所以说创建数据库的时候,指定utf8
2.如果创建数据库的时候忘记夹utf8了,可以后改
3.在写sql语句的时候,如果库名,表名,列名和sql语句的关键字冲突了,可以用``包裹

查看数据库

语法 show databases
学习大数据,需要的SQL基础(1),学习,大数据,sql

删除数据库

语法 drop database 数据库名;

drop database sys;

学习大数据,需要的SQL基础(1),学习,大数据,sql

使用数据库(切换数据库)

1.语法:
use 数据库名;

use sys;

DDL之表操作 ---- table

创建表

1.关键字 create table
2.语法:
create table 表名(
列名 数据类型(长度)[约束],
列名 数据类型(长度)[约束]
列名 数据类型(长度)[约束]
)

CREATE TABLE category1(
	uid INT,
	uname VARCHAR(10)
 );

3.注意:
定义列和列的时候,用逗号
如果是最后一列,不要用逗号

查看表

查看所有表
show tables;
查看表结构
desc 表名;

show tables;
DESC category;

删除表

1.关键字 drop table
2.语法:
drop table 表名

DROP TABLE category;

修改表结构

1.添加列
alter table 表名 add 列名 类型(长度) [约束];

ALTER TABLE category add count int;

2.修改列的类型,长度以及约束
alter table 表名 modify 列名 类型(长度)[约束];

ALTER TABLE category modify count varchar(100);

3.修改列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束];

ALTER TABLE category CHANGE count counts VARCHAR(12);

4.修改表名
rename table 表名 to 新表名;

RENAME table category to categories;

5.修改表删除列
alter table 表名 drop 列名

ALTER table categories drop counts;

DML之数据操作语言

插入数据

1.关键字: insert into
2.语法:
a.insert into 表名(列名,列名) value (值,值)
b.insert into 表名(列名,列名) value (值,值),(值,值),(值,值),(值,值); 批量添加
c.insert into category values (值,值); -------- 如果省略列名,那么在存值时需要将所有列的值都写上
在操作数据的时候,如果时varchar类型的,建议用单引号

原因:将来我们需要用java 代码中的API去操作sql语句,而在Java中写的sql语句时字符串的
String sql = "INSERT INTO category(cid,cname) VALUES (1,“布偶”)“; ---- 双引号不明确
String sql = "INSERT INTO category(cid,cname) VALUES (1,‘布偶’)“; ---- 推荐

INSERT INTO categories(cid,cname) VALUES(1,'布偶');
INSERT INTO categories(cid,cname) VALUES(2,'蓝猫');
INSERT INTO categories(cid,cname) VALUES(3,'英短'),(4,'梨花');
INSERT INTO categories VALUES(5,'奶牛');

删除数据

1.关键字:delete from where
2.语法:
a.delete from 表名 ---- 一次全删除
b.delete from 表名 where 条件 ------ 根据条件删除
Java与mysql符号的对应

java mysql
== =
> >
< <
>= >=
<= <=
!= != 或者 <>
以下时代码的相关演示
##删除cid的记录
DELETE FROM categories WHERE cid = 1; 

##删除cid>=5的记录
DELETE FROM categories WHERE cid >= 5;

## 删除出cid不等于1的记录
DELETE FROM categories WHERE cid != 3;
DELETE FROM categories WHERE cid <> 3;
DELETE FROM categories WHERE NOT(cid=3);

修改数据

1.关键字:update set
2.语法:
a.update 表名 set 列名 = 新值 — 全部都改成指定的新值
b.update 表名 set 列名 = 新值 — where 条件

##将cname都改成s手机
UPDATE categories SET cname = '手机';

##将表中手机改成金渐层
UPDATE categories SET cname = '金渐层' WHERE cname = '手机';
##将cid为2的数据改成银渐层
UPDATE categories SET cname = '银渐层' WHERE cid = 2 ;
##将cid不等于1的cname都改成布偶
UPDATE categories SET cname = '布偶' where cid <>1;

约束

约束:主要是约束指定列的数据

主键约束

1.关键字 primary key
2.特点:
a.主键列的数据唯一不能重复
b.不能为NULL
c.每个表中都应该有一个主键,此列的数据能带包一行数据,相当于人的身份证号

添加方式1:在创建表时,在字段后面直接指定(重点)

在创建表的过程中,在列后面直接写约束

CREATE TABLE cats(
	cid INT PRIMARY KEY,
	cname VARCHAR(20)
)

添加方式2:在constraint约束区域,去指定主键约束

1.什么叫做constraint域
在最后一列和右半个小括号之间
2.语法
[constraint 名字] primary key(字段名)
3.注意:[constraint 名字] 可写可不写

CREATE TABLE dogs(
	cid INT,
	cname VARCHAR(20),
	PRIMARY KEY(cid)
);

添加方式3:通过修改表结构的方式

1.格式: ALTER TABLE 表名 ADD [CONSTRAINT 名称] PRIMARY KEY (字段列表)
2.注意:[CONSTRAINT 名称] 可以省略不写

ALTER TABLE category1 ADD PRIMARY KEY(uid);

联合主键

1.什么叫做联合主键:
多个列合称为一个主键
2.特点:
多个列中不能有完全重复的数据
不能为NULL

删除主键约束

ALTER TABLE 表名 DROP PRIMARY KEY ---- 删除主键约束

ALTER TABLE category1 ADD PRIMARY KEY(uid);

自增长约束

基本操作

1.关键字:auto_increment 一般情况下和主键结合使用
2.特点
自增长约束修的列,数据不用我们自己维护,mysq会自动维护
3.自增长约束和主键约束区别:
a.相同点:
此列中的数据唯一
b.不同点:
一个表只能有一个主键,可以代表一条数据
一个表可以有多个自增长列,不能代表一条数据

INSERT INTO dogs VALUES(1,'边牧');
INSERT INTO dogs VALUES(NULL,'金毛');
INSERT INTO dogs(cname) VALUES('泰迪');

注意:
如果不写列名,我们存数据的时候要一一对应,将所有要存的数据都写上
删除数据,如果此列为自增长列,删除之后,列号不会重新编写,会继续从被删除的那列序号往后编写
摧毁表结构
TRUNCATE TABLE 表名;

自增长是一个约束,操作起来和其他约束不太一样
如果自增长约束和主键约束合起来使用想删除,需先删除自增长约束,在删除主键约束

ALTER TABLE dogs MODIFY cid int;
ALTER TABLE dogs DROP PRIMARY KEY;

truncate和delete的区别

1.truncate:清空数据,摧毁表结构,自增长列会重新标号
2.delete:删除表数据,不会摧毁表结构,自增长列不会重写编号,他会继续往下编

非空约束

1.关键字:NOT NULL
2.特点:
被NOT NULL 修饰的列不能为空
建表

CREATE TABLE product(
	pid INT PRIMARY KEY AUTO_INCREMENT,
	pname VARCHAR(20) NOT NULL,
	price INT
);

插入数据

INSERT INTO product(pname,price) VALUES('键盘',300);
##相当于String s = ""
INSERT INTO product(pname,price) VALUES('',300);
##相当于 String s = NULL,报错
INSERT INTO product(pname,price) VALUES(NULL,300);

唯一约束

1.关键字:UNIQUE
2.特点:
被UNIQUE约束的列,数据要唯一,不能重复
3.注意:
唯一约束不能当主键使用,一个表中可有多个列为唯一约束

INSERT INTO cats(pname,price) VALUES('布偶',4000);
##报错
INSERT INTO cats(pname,price) VALUES('布偶',4000);

删除唯一约束
ALTER TABLE person DTOP INDEX 名称 [名称时CONSTRAINT后面的名字]

ALTER TABLE cats DROP INDEX pname; 

简单查询

数据准备

创建商品表

CREATE TABLE product(
	pid INT PRIMARY KEY,
	pname VARCHAR(20),
	price DOUBLE
);

简答查询

1.关键字:select from where
2.语法:
a.select * from 表名 — 查询所有数据,展示所有列
b.select 列名,列名 from 表名 ---- 查询所有,展示所指定的列
c.select 列名 from 表名 where 条件 ----- 根据条件查询,显示指定列的数据
3.注意:
a.查询之后,想展示哪些列的数据,就在select后面写那些列的列名
b,查询出来结国也是一张表,但是伪表,此表是只读的

SELECT * FROM product;
SELECT pid,pname FROM product;
## 可以给表或者列起别名
SELECT pid '商品id', pname '商品名字' FROM product;

去重复值 关键字: distinct(列名)

SELECT DISTINCT(price) FROM product;

给列中的数据做计算

SELECT pname,(price + 100) 'newprice' FROM product;

条件查询

比较运算符 < <= >= = <> 大于、小于、大于(小于)等于、不等于
BETWEEN …AND… 显示在某一区间的值(含头含尾)
字段 IN(set) 显示在in列表中的值,例:price in(100,200) 查询id为1,3,7的商品: id in(1,3,7)
列名 LIKE ‘张pattern’ 模糊查询,Like语句中,% 代表零个或多个任意字符,_ 代表一个字符, 例如:first_name like '_a%';
比如:查询姓张的人:name like ‘张%’
查询商品名中带香的商品: pname like ‘%香%’
查询第二个字为想的商品: like ‘想%'
查询商品名为四个字的商品:like '
___’
IS NULL 判断是否为空
逻辑运行符 and (与) 多个条件同时成立 全为true,整体才为true
or(或) 多个条件任一成立 有真则真
not(非) 不成立,例:where not(salary>100);

相关查询语句

SELECT * FROM product WHERE pname = '花花公子';
SELECT * FROM product WHERE price = 800;
SELECT * FROM product WHERE price > 60;
SELECT * FROM product WHERE price BETWEEN 200 AND 600;
SELECT * FROM product WHERE price = 200 or price = 600;
SELECT * FROM product WHERE price IN (200,600);
##查询以香字开头的商品
SELECT * FROM product WHERE pname LIKE '香%'
##查询含有霸的商品
SELECT * FROM product WHERE pname LIKE '%霸%'
##查询商品名为null的
SELECT * FROM product WHERE pname IS NULL;
SELECT * FROM product WHERE pname IS NOT NULL;

排序查询

1.关键字:order by
2.语法:
select 列名 from 表名 order by 排序字段 asc|desc ---- 查询之后要指明那一列进行排序
asc 升序 默认
desc 降序
3.注意:先查询,后排序
书写sql语句关键字的顺序
select
from
where
group by
having
order by

执行顺序
from
where
group by
having
select
order by
先定位到要查询哪个表,然后根据什么条件去查,表确定好了,条件也确定好了,开始利用select查询,查询得出一个结果,在针对这个结果进行一个排序文章来源地址https://www.toymoban.com/news/detail-842134.html

##对价格进行降序排序
SELECT * FROM product ORDER BY price DESC;
##对价格进行升序排序
SELECT * FROM product ORDER BY price ASC;
SELECT DISTINCT(price) FROM product ORDER BY price ASC;

到了这里,关于学习大数据,需要的SQL基础(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库入门-----SQL基础知识

    目录 📖前言: 📑SQL概述通用语法:  🐳DDL: 🐻操作数据库: 🐞数据类型:  🦉操作表: 🦦DML: 语法规则: 案例演示: 🦏DQL: 语法规则: 案例演示: # 基础查询:  # 条件查询:  #聚合函数:  # 分组查询:  #排序查询:  #分页查询:  执行顺序: 🫎DCL: 语法规则:

    2024年04月10日
    浏览(53)
  • 零基础学习大数据需要什么基础么

    大数据技术的体系庞大且复杂,每年都会涌现出大量新的技术,目前大数据行业所涉及到的核心技术主要就是:数据采集、数据存储、数据清洗、数据查询分析和数据可视化。 学习大数据需要掌握什么语言基础? 1、Java基础 大数据框架90%以上都是使用Java开发语言,所以如果

    2024年02月14日
    浏览(36)
  • MySQL数据库基础(九):SQL约束

    文章目录 SQL约束 一、主键约束 二、非空约束 三、唯一约束 四、默认值约束 五、外键约束(了解) 六、总结 PRIMARY KEY 约束唯一标识数据库表中的每条记录。 主键必须包含唯一的值。 主键列不能包含 NULL 值。 每个表都应该有一个主键,并且每个表只能有一个主键。 遵循原

    2024年02月19日
    浏览(56)
  • 数据库基础——数据库、数据表和SQL语句

    数据库是用来存储、管理数据的仓库 数据表是数据的存储结构 Structured Query Language,结构化查询语言,用来操作数据库 安装MySQL,自行百度 进入cmd使用命令 mysql -hAddress -uUser -p(Password) 登录数据库 -p后直接回车可进入密文登录 如果出现以下报错,则打开任务管理器-服务-开启

    2024年02月09日
    浏览(72)
  • MySQL数据库基础(五):SQL语言讲解

    文章目录 SQL语言讲解 一、SQL概述 二、SQL语句分类 1、DDL 2、DML 3、DQL 4、DCL 三、SQL基本语法 1、SQL语句可以单行或多行书写,以分号结尾 2、可使用空格和缩进来增强语句的可读性 3、MySQL数据库的SQL语句不区分大小写,建议使用大写  4、可以使用单行与多行注释 四、总

    2024年02月19日
    浏览(54)
  • SQL Server数据库 -- 表的基础查询

    一、单表查询基本结构 二、单表查询结构语法 select 聚合函数 where 模糊查询 order by group by having 三、多表查询基本结构 四、多表查询结构语法 内连接 自连接 外连接 五、总结         学习了数据库,在以后公司等地方,你可能不会用到创建数据库或者表格,但是你一定会使

    2024年02月11日
    浏览(92)
  • Oracle数据库SQL Plus基础命令

    1.使用SQL*Plus登录Oracle数据库 开始 -- 所有程序 -- Oracle -- 应用程序开发 -- SQL Plus cmd窗口下输入:sqlplus 用户名/口令@主机字符串 2.使用CMD命令登录Oracle数据库 开始 -- 所有程序 -- 附件 -- 命令提示符 使用命令行登陆的连接命令格式为:sqlplus/@net_service_name username为用户名;passw

    2024年02月06日
    浏览(51)
  • SQL Server数据库基础知识汇总

    目录 目录 一、数据库概念 1.1 什么是数据库 1.2 为什么用数据库 1.3 数据库的发展历史 1.4 数据库分类 1.5 DBMS数据库管理系统 二、 SQL(Structured Query Language) 2.1  定义 2.2  SQL分类 2.3 SQL与T-SQL 三、SqlServer下载与安装 四、数据库表各类操作 1 创建数据库登录用户 2 使用DCL赋予数据

    2023年04月09日
    浏览(53)
  • SQL学习十二、插入数据

    前面学习记录的都是查询数据,那些也是SQL中最常用的语句,这篇我们来学习和积累一下相数据库中插入数据的SQL。 另外,需要注意的是,很多数据库对查询操作要求的权限可能低一些,但是对于插入、修改、删除等操作都需要较高的权限。 1、插入完整的行 例如我们需要插

    2023年04月08日
    浏览(27)
  • SQL Server 基础操作(五)导入和导出数据表

    1.选择需要导数据的数据库右击----任务----导入数据 2.选择数据源,数据源代表数据表从哪里导入到当前的数据库中。填写数据源服务器名称(本地导入:.,1433;远程导入:IP,1433) 3.选择导入的目标数据库,选择导入到那个数据库中 4.选择复制一个或多个表或视图的数据 5.选择从

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包