当前位置: 首页 > news >正文

week06day01 mysql

一. 数据库的基本知识

1. 如何查看本机ip地址:

        在cmd 中 输入 ipconfig

2. mysql的小tips:

  • 按 ctrl +    -/+ 可以调整字体的大小
  • gbk 编码方式是一个中文字符占据两个字节
  • utf8 是一个中文字符占用三个字节
  • utf8mb4 是一个中文字符占用四个字节

二. 数据库的操作

1. 创建数据库

create database [if not exists] `数据库名` charset=字符编码(utf8mb4);
--这是默认编码 utf8mb4,就算不写也是此编码

2. 展现所有创建的数据库;  展现当前数据库中存在的表格

show databases; 
show tables;

3.使用、切换数据库的方法(``反引号是为了规避关键字)

use `try1`

4. 删除数据库

DROP database `try1`;

5. 创建表

-- primary key(主键不可重复 auto_incremen 自动分配)
-- comment 是备注, not null 是不允许为空
-- varchar(65535/4) 65535是varchar最大容量,因为是uft8mb4,一个是4位,所以65535/4 是长度
-- int 是 2^32 次方 10位数 10个长度, TINYINT(2^8)
-- ; 是结束符号create table `trytable`(`uid` int primary key auto_increment comment "人员id",`sex` enum("女","男","保密") not null comment"性别",`name` varchar(20) not null comment "人员名称",`age` tinyint not null COMMENT"人员的年龄" 
);

-- primary key(主键不可重复 auto_incremen 自动分配)
-- comment 是备注, not null 是不允许为空
-- varchar(65535/4) 65535是varchar最大容量,因为是uft8mb4,一个是4位,所以65535/4 是长度
-- int 是 2^32 次方 10位数 10个长度, TINYINT(2^8)
-- ; 是结束符号

6. 查看整个表的结构(是建立表时的内容属性等)

    有show 和 describe 两种方法

show CREATE TABLE `try1`.trytable;describe `try1`.`trytable`;

7. 修改表的名称

-- 修改表的名称
alter table `old_name` rename `new_name`;
-- 修改表的引擎
alter table `表名` engine = innodb|myisam;
-- 移动表 到指定的数据库
alter table `表名` rename to 数据库名.表名;

alter table `try1`.`trytable` rename `try1`.`trytable1`

8. 修改字段

  alter table `表名` add `字段名` 数据类型 属性;

alter table `try1`.`trytable` add nickname VARCHAR(20) default "无" comment "昵称";

9. 修改字段的属性 (modify)

     alter table `表名` modify `字段名` 数据类型 属性;

alter table `try1`.`trytable` modify `nickname` varchar(30) not null comment "昵称";

10. 修改字段的名称

  alter table `表名` change `原字段名` `新的字段名` 数据类型 属性;

    既可以修改字段的名称还可以修改字段的属性(名字必须要改)

ALTER TABLE `TRY1`.trytable CHANGE `nickname` `nick` varchar(20)null default "无" comment "昵称";

11. 删除字段


      alter table `表名` drop `字段名`;

alter table `TRY1`.trytable drop `nick`;

12. 数据的插入

-- ⼀次插⼊⼀⾏
insert into `表名` set `字段`=值, `字段`=值;
-- 按照指定字段, ⼀次插⼊多⾏
insert into `表名` (字段1, 字段2 ...) values (值1, 值2, ...), (值1, 值2, ...);
-- 指定全部字段, ⼀次插⼊多⾏
insert into `表名` values (null, 值1, 值2, ...), (null, 值1, 值2, ...);

 单行写入:


insert into `try1`.`trytable` set `name`="张三", `sex`="男", `age`=18;
-- 这里的sex可以通过索引的方式写入,当时编写table时,顺序时女 男 密码,所以1是女
insert into `try1`.`trytable` set `name`="小红", `sex`="1", `age`=18;

多行写入(筛选字段):

insert into `try1`.`trytable`(`name`,`age`,`sex`) 
values("张三丰",112,3), ("欧阳锋",65,"女"),("李白",100,2);

多行写入(不筛选字段) ,注意values的顺序要和创建table时候的顺序一致

insert into `try1`.`trytable` values(null,"男","绿巨人",36),(null,"女","黑寡妇",12);

 会忽略已有数据,如果数据存在,就不管他,不存在就会添加进去

insert IGNORE into `demo`.`usetable` select * form `demo`.`userinfo`;

13. update 修改

-- 修改全表数据
update `表名` set `字段1`=值, `字段2`=值;
-- 使⽤ where 修改满⾜条件的⾏
-- where 类似于 if 条件, 只执⾏返回结果为 True 的语句
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值;
update `表名` set `字段1`=值, `字段2`=值 where `字段`=值 and `字段`=值;
update `demo`.`userinfo` set sex="男" where uid=3;

14.  delete and truncate(会完全删除)

-- 删除表中的所有数据 (逐⾏删除)
delete from `表名`;
-- 清空全表 (⼀次性整表删除)
truncate `表名`
-- 使⽤ where 修改满⾜条件的⾏
delete from `表名` where `字段` = 值;
delete from `表名` where `字段` in (1, 2, 3, 4);

15. 复制表

 #  create table `新表的名称` select * from `原表名`;

 特点: 完整的复制⼀个表,既有原表的结构,⼜有原表的数据,不能复制主键

-- 执行下列语句
create table `新表的名称` select * from `原表名`;
#特点: 完整的复制⼀个表,既有原表的结构,⼜有原表的数据,不能复制主键

# 特点: 复制后的表结构与原表相同,但是⾥⾯没有数据,是⼀张空表,可以复制主键

 先创建一个结构一样的空表,再将数据复制进去

create table `新表的名称` like `原表名`;
#特点: 复制后的表结构与原表相同,但是⾥⾯没有数据,是⼀张空表,可以复制主键-- 复制数据
insert into `新表的名称` select * from `原表名`;

相关文章:

  • Spring: spring中SSE的实现方式有哪些
  • 学习java第一天(下载并配置环境+写第一个java程序)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • Vue2:用node+express写一个轻量级的后端服务
  • 大唐杯学习笔记:Day5
  • Swing程序设计(11)动作事件监听器,焦点事件监听器
  • Docker Compose实战指南:让容器管理变得简单而强大
  • 集成2.5G/5G/10G高速率网络变压器的RJ45网口连接器产品特点介绍
  • 从零开始在kitti数据集上训练yolov5
  • AWS虚拟机迁移到Azure上的实战操作
  • Doris实战——银联商务实时数仓构建
  • HTML简介:想成为前端开发者?先从掌握HTML开始!
  • Linux进程详细介绍
  • C# 属性设置为“get; private set;”好处
  • 亚信安慧AntDB:为数字化铺平道路
  • $translatePartialLoader加载失败及解决方式
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 77. Combinations
  • Angular 4.x 动态创建组件
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • bearychat的java client
  • CSS中外联样式表代表的含义
  • css属性的继承、初识值、计算值、当前值、应用值
  • Docker 笔记(2):Dockerfile
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • IDEA常用插件整理
  • input实现文字超出省略号功能
  • JavaScript DOM 10 - 滚动
  • JavaScript新鲜事·第5期
  • JavaScript异步流程控制的前世今生
  • k个最大的数及变种小结
  • Linux链接文件
  • maven工程打包jar以及java jar命令的classpath使用
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • SpringBoot几种定时任务的实现方式
  • 百度小程序遇到的问题
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 坑!为什么View.startAnimation不起作用?
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 小程序开发中的那些坑
  • 一个JAVA程序员成长之路分享
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • !$boo在php中什么意思,php前戏
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #Ubuntu(修改root信息)
  • #Z2294. 打印树的直径
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (动态规划)5. 最长回文子串 java解决
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三)模仿学习-Action数据的模仿
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目