MySQL 数据库 增删查改、克隆、外键 等操作(1)

删除表

DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名

删除数据库

DROP DATABASE 数据库名; #会连库中的表一起删除

删除操作要小心,删除前记得被备份

v2-fe563224301e1051ed02ff97eeb10f35_b.jpg

向表中添加、删除 记录、查询记录


#先创建 STARBUCKS 数据库,再创建 USER_INFO 表,添加一些字段

CREATE DATABASE STARBUCKS;

USE STARBUCKS;

DROP TABLE IF EXISTS USER_INFO;

CREATE TABLE USER_INFO (

ID int(32) NOT NULL,

NAME varchar(20) DEFAULT NULL,

TYPE varchar(32) DEFAULT NULL,

ADD_TIME varchar(20) DEFAULT NULL,

IS_USED char(5) DEFAULT NULL,

PRIMARY KEY (ID)

)

v2-096348ec4eccde21f6e4231a59bcf889_b.jpg

向表中添加记录

INSERT INTO 表名(字段1,字段2[,…]) VALUES(字段1的值,字段2的值,…);

例:

#一条一条全字段添加

INSERT INTO USER_INFO(ID,NAME,TYPE,ADD_TIME,IS_USED) VALUES (1001, ‘咖啡机’, ‘机器齐全’, ‘2021-06-22’, ‘D0001’);

INSERT INTO USER_INFO VALUES (1002, ‘奶茶机’, ‘设备’, ‘2021-06-23’, ‘D0001’);

#或一条命令添加多条

INSERT INTO USER_INFO (ID,NAME,TYPE,ADD_TIME,IS_USED) VALUES (1003, ‘牛奶’, ‘食品’, ‘2021-06-24’, ‘D0002’),

(1004, ‘包装机’, ‘设备’, ‘2021-06-20’, ‘D0001’),

(1005, ‘糖块’, ‘食品’, ‘2021-06-25’, ‘D0001’),

(1006, ‘吸管’, ‘设备’, ‘2021-06-20’, ‘D0001’),

(1007, ‘奶油’, ‘食品’, ‘2021-06-25’, ‘D0002’);

v2-7f13d863bb8501d39fe1b32b49dc3a41_b.jpg

SELECT 查询语句

SELECT 字段名1,字段名2[,…] FROM 表名 [WHERE 条件表达式];

#从0行开始共几行

SELECT * FROM 表名 limit 行数

#根据行数范围取记录数

SELECT * FROM 表名 limit 开始行数(不包括),从开始行数开始的共几行

v2-887dcb74cea90fbe28fa7715982aa6eb_b.jpg

v2-7b096ef55791cf939e5a149d75e8bab0_b.jpg

UPDATE 更新

注意WHERE 加更新的条件,不然会更新所有

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

如 UPDATE USER_INFO SET TYPE=‘仪器’ WHERE ID=1001;

v2-e77e23539ba39f0009ee4278c98585a8_b.jpg

DELETE 删除记录

注意WHERE 加删除记录的条件,不然会删除所有

DELETE FROM 表名 [WHERE 条件表达式];

例:delete from class2 where id=4;

v2-b795f8b5c207fefb9d923357a695f207_b.jpg

修改表名,添加、修改、删除 字段,添加唯一约束


修改表名

ALTER TABLE 旧表名 RENAME 新表名;

例:ALTER TABLE USER_INFO RENAME USER_MESG;

SHOW TABLES;

1234

v2-938dbacea61895346964343d6a050828_b.jpg

表中添加字段

ALTER TABLE 表名 ADD 字段名 varchar(50) default ‘默认值’;

#default 表示此字段设置默认值;可与 NOT NULL 配合使用,默认值立即生效

例:

ALTER TABLE USER_MESG ADD STATUS VARCHAR(20) DEFAULT ‘在用’;

v2-b717873d7c9ac4aa80f7b89d65f64d16_b.jpg

删除表中字段

ALTER TABLE 表名 DROP 字段名;

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

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];

例:

ALTER TABLE USER_MESG CHANGE NAME DEV_NAME VARCHAR(30) UNIQUE KEY;

#验证唯一键约束,添加重名的约束字段

INSERT INTO USER_MESG VALUES (1008,‘牛奶’,‘饮料’,‘2021-06-28’,‘D0001’,‘已过期’);

#触发唯一键约束,新增失败

UNIQUE KEY 唯一键:可以用有空值,不能出现重复值,也不能为 NULL,

v2-6dd13969ef4c1db775da07e0fbea491a_b.jpg

v2-6594f0a1e0f3ef3ccc820f6fb37d0964_b.jpg

查看、删除、添加 表中的索引


#查看表有哪些索引

SHOW INDEXES FROM 表名;

v2-1c6805ed38db83a0c17ae33542ee149d_b.png

单独新增 去除唯一键约束

#给字段 DEV_NAM 增加唯一键约束

ALTER TABLE USER_MESG ADD UNIQUE INDEX (DEV_NAME);

#给字段 DEV_NAM 去除唯一键约束

#查看索引表中,字段 DEV_NAME 对应的 索引名 Key_name,根据索引名删除索引

ALTER TABLE USER_MESG DROP INDEX 索引名;

v2-d5e042390c896a26043a15e6a6c81d3d_b.png

v2-d7cdb9c44a1df92fb256fc8cf820f534_b.jpg

v2-f4db0ae5095884305b772cc1fb8be39f_b.jpg

扩展功能,字段值自增等


use school;

CREATE TABLE IF NOT EXISTS AREA_INFO ( -> AREA_ID int(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT, #指定主键的另一种方式

-> AREA_NAME VARCHAR(20) NOT NULL UNIQUE KEY,

-> IS_USED CHAR(5) NOT NULL);

#---------------命令解释--------------------------------

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建

#int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001

#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;

#自增长字段必须是主键;字段类型必须是 int 类型,如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次

#unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键

#not null:表示此字段不允许为NULL

v2-07062a0f8a3af81ded9f7e10c9fd9ce8_b.jpg

v2-ac4b37d9049f27231cdf3d46fde6e613_b.jpg

数据表高级操作


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


方法一:使用 like

#先克隆表结构

#在插入所有数据

CREATE TABLE AREA_CLONE1 LIKE AREA_INFO; #通过 LIKE 方法,复制 AREA_INFO 表结构生成 AREA_CLONE1 表

INSERT INTO AREA_CLONE1 SELECT * FROM AREA_INFO;

v2-2db3edd4bbbbed8dae51bed4c2dc02d1_b.jpg

如果两张表结构一样,可将一张表的查询结果集返回给 另一张表

INSERT INTO 表1 SELECT * FROM 表2

v2-102dfcb6db6c5f2d6b2bd9c561a2a64e_b.jpg

方法二:直接克隆

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

由于篇幅限制,小编在此截出几张知识讲解的图解

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

由于篇幅限制,小编在此截出几张知识讲解的图解

[外链图片转存中…(img-31oVAMRV-1712652559259)]

[外链图片转存中…(img-EDPL4ZKH-1712652559259)]

[外链图片转存中…(img-vJr1vbho-1712652559259)]

[外链图片转存中…(img-q45j7XKv-1712652559259)]

[外链图片转存中…(img-ZriUFCio-1712652559259)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值