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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL数据库的基本操作 -> 正文阅读

[大数据]MySQL数据库的基本操作

【前言】

库和表
数据库–>数据表–>行(记录):用来描述一个对象的信息
???????? 列(字段):用来描述对象的一个属性

一、常用数据类型

类型说明
int整型(定义整数类型数据)
float单精度浮点,4字节32位,准确到小数点后六位
double双精度浮点,8字节64位
char固定长度的字符类型,定义字符类数据
varchar可变长度的字符类型
text文本
image图片
decimal (5,2)5个有效长度数字,小数点后面有2位,指定长度数组
decimal (5,2)当输入的数值后的小数位小于两位时,会拿0补全两位;当超过两位时,小数点后第三位是自动进行的四舍五入进第二位
  • char来说,最多能存放字符个数255个,char如果存入数据的实际长度比指定长度要小 会补空格至指定长度
    如果存入的数据的实际长度大于指定长度 低版本会被截取 高版本会报错
    -char为固定长度值,不足的以空格替代,而 varchar 为可变值,最大为设置的长度值,当不足时,即为当前长度大小。
  • char的长度是不可变的,而varchar的长度是可变的。

例如:定义一个char[10] 和varchar[10] ,如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了

varchar存储规则:

4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节

二、查看数据库

2.1 查看当前服务器中的数据库

 mysql -uroot -p   ##输入密码授权远程登录
 -u 连接数据库的用户名
-p 后面跟的是连接数据库的密码(不能有空格)

#大小写不区分,分号“;”表示结束
SHOW DATABASES;				

在这里插入图片描述

2.2 查看数据库中包含的表

USE 数据库名;
SHOW TABLES;
 
use kiro
show tables;

在这里插入图片描述

2.3 查看表的结构(字段)

USE 数据库名;
desc TABLE;

法一:
在这里插入图片描述
法二: 加\G
在这里插入图片描述
法三:使用绝对路径查看
在这里插入图片描述

2.4 查看mysql版本

------在mysql内查看mysql版本-------
select version();

------在linux中查看mysql版本-------
mysql -V

在这里插入图片描述
在这里插入图片描述

三、SQL语句

  • Structured Query Language 的缩写,即结构化查询语言
  • 关系型数据库的标准语言
  • 用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能

SQL分类:

语句分类含义
DDL数据定义语言,用于创建数据库对象,如库、表、索引等(create)
DML数据操纵语言,用于对表中的数据进行管理(insert drop delete uodate)
DQL数据查询语言,用于从数据表中查找符合条件的数据记录(select)
DCL数据控制语言,用于设置或者更改数据库用户或角色权限(grant)

3.1 创建数据库对象——DDL

3.1.1 创建新的数据库

CREATE DATABASE 数据库名;

在这里插入图片描述

3.1.2 创建新的表

CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

例:create database SCHOOL;
use SCHOOL;
create table CLASS1 (id int(4) not null,name char(10) not null,sex char(1),primary key (id));
field字段
type类型
not null不允许为空
default ‘ ’默认为空
primary key主键(一般选择没有重复且不为空的字段)

在这里插入图片描述

3.1.3删除指定的数据表

------方法一:进入表所在的数据库-------
use 数据库名;
drop table 表名;
或
drop table [数据库名.]表名;

------方法二:使用相对路径,不进入表所在的数据库------
DROP TABLE kiro.ky20;
show tables in kiro;

在这里插入图片描述
在这里插入图片描述

3.1.4 删除指定的数据库

DROP DATABASES 数据库名;

在这里插入图片描述

3.2 管理表中的数据记录——DML

3.2.1 向数据表中插入新的数据记录 insert

insert into 表名(字段1,字段2[,...]) values(字段1的值,字段2的值,...);

字段中,可使用 password('密码') ,能够使用加密型密码

例:create database SCHOOL;

use SCHOOL;

create table CLASS2 (id int not null,name char(20) not null,sex char(1) not null,primary key (id));

insert into CLASS2 (id,name,sex) values(1,'zhangsan','男');

在这里插入图片描述

3.2.2 查询数据记录 select

#格式
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
 
#示例1:查看所有数据
select * from info;
 
#示例2:查询指定数据
 select name,hobby from info where id=1;
 
#示例3:以列表方式竖向显示
select * from info \G;
 
#示例4:只显示头2行
select * from info limit 2;
 
#示例5:显示第2行后的前2行

示例1:查看所有数据
在这里插入图片描述
示例2:查询指定数据
在这里插入图片描述
示例3:以列表方式竖向显示
在这里插入图片描述

3.2.3 修改、更新数据表中的数据记录 update

#格式
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
 
#示例1:修改学号
update biao set id=2 where name='zhangsan';

在这里插入图片描述

3.2.4 在数据表中删除指定的数据记录 delete

delete from 表名 [where 条件表达式];

例:delete from biao where name='lisi';
select * from biao;

在这里插入图片描述

3.3 修改表名和表结构

3.3.1 修改表名 alter

ALTER TABLES 旧表名 RENAME 新表名;

#实例:将表名biao修改为base

在这里插入图片描述

3.3.2 扩展表结构(增加字段)


#default 'default值':表示此字段设置默认值 地址未填写!;可与 NOT NULL 配合使用
ALTER TABLE 表名 ADD address varchar(50) default 'default值';
 
#示例
alter table base add address char(100) default'东北'

在这里插入图片描述
在这里插入图片描述

3.3.3 修改字段(列)名,添加唯一键

#格式
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
#示例:
alter table base change name user_name varchar(200) unique key;

在这里插入图片描述

3.3.4 删除字段

#格式
ALTER TABLE 表名 drop 字段名;
#示例
alter table base drop age;

在这里插入图片描述
在这里插入图片描述

3.4 使用 if 判断 创建表并测试自增和填充

use hobby;
 
create table if not exists info.bak (
id int(4) zerofill primary key auto_increment,
name char(20) not null,
sid int(18) not null unique key,
ge int(3) not null,
address char(100));

分析:

  • if not exists: 表示检测要创建的表是否已存在,如果不存在就继续创建
  • int(4) zerofill: 表示若数值不满4位数,则前面用“0”填充,例0001
  • auto_increment: 表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
  • unique key: 表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
  • not null: 表示此字段不允许为NULL

四、数据表高级操作

4.1克隆表——将数据表的数据记录生成到新的表中

法一:先创建再导入


#通过 LIKE 方法,复制 info 表结构生成 test01 表
create table test01 like zhuangzu;		
#导入数据
insert into test1 (select * from zhuangzu);

在这里插入图片描述
在这里插入图片描述
法二:创建的时候同时导入

create table test2 (select * from test1);

在这里插入图片描述

#获取数据表的表结构、索引等信息
show create table test1\G;

在这里插入图片描述

4.2 清空表——删除表内的所有数据

4.2.1 delete删除

DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。

#delete from 表名;
delete from info;					
 

在这里插入图片描述
在这里插入图片描述

4.2.2 truncate删除

TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录

truncate table info;

在这里插入图片描述

4.2.3创建临时表

临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。

##添加临时表test3
create temporary table test3 (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
 
## 查看当前库中所有表
show tables;	
##在临时表中添加数据
insert into test3 values(1,'zhangsan',123456789,'watch a film');	
##查看当前表中所有数据
select * from test3;
##退出数据库
quit						
 
##重新登录后进行查看		
mysql -u root -p
##查看之前创建的临时表中所有数据,发现已经被自动销毁
select * from test3;

在这里插入图片描述

4.3 创建外键约束

主键表和外键表的理解:
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的子表的字段必须设置为主键。要求主表外键字段和子表的字段具备相同的数据类型、字符长度和约束。

#创建子表test04
create table test04 (sid int(4),hobname varchar(20));
#为子表添加一个主键约束。主键名建议以“PK_”开头。
alter table test04 add constraint PK_sid primary key test04 (sid);
#为 test03 表添加外键,并将 test03 表的 hobby 字段和 test04 表的 sid 字段建立外键关联。外键名建议以“FK_”开头。
alter table test03 add constraint FK_hob foreign key (hobby) references test04 (sid);

desc test03;

#插入新的数据记录时,要先主表再从表
insert into test04 values (1,'runing') ;
insert into test05 values (1,'zhangsan',18,1) ;

#删数数据记录时,要先从表再主表,也就是说删除主键表时必须先删除其他与之关联的表。
drop tables test05;
drop tables test04;

#查看和删除外键约束
show create table test03;
alter table test03 drop foreign key FK_hob;
alter table test03 drop key FK_hob;
desc test03;

主表:flower表结构如下:
在这里插入图片描述
子表:pet表结构如下:

在这里插入图片描述


与外键关联的子表的字段必须设置为主键。要求主表外键字段和子表的字段具备相同的数据类型、字符长度和约束。

#为主表设置主键
alter table flower add primary key(pid);
#为从表设置外键
alter table pet add foreign key (proid) references pro(pid);

在这里插入图片描述
在这里插入图片描述


测试:此时不可以删除主表,因为主表被外表引用,要查看和删除外键约束 ,如果要删除外键约束字段先删除外键约束,再删除外键名
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:45:45  更:2022-06-16 21:47:50 
 
开发: 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年5日历 -2024/5/29 8:00:30-

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