week06day01 mysql

一. 数据库的基本知识

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

在cmd 中 输入 ipconfig

2. mysql的小tips:

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

二. 数据库的操作

1. 创建数据库

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

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

sql 复制代码
show databases; 
show tables;

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

sql 复制代码
use `try1`

4. 删除数据库

sql 复制代码
DROP database `try1`;

5. 创建表

sql 复制代码
-- 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 两种方法

sql 复制代码
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 数据库名.表名;

sql 复制代码
alter table `try1`.`trytable` rename `try1`.`trytable1`

8. 修改字段

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

sql 复制代码
alter table `try1`.`trytable` add nickname VARCHAR(20) default "无" comment "昵称";

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

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

sql 复制代码
alter table `try1`.`trytable` modify `nickname` varchar(30) not null comment "昵称";

10. 修改字段的名称

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

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

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

11. 删除字段

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

sql 复制代码
alter table `TRY1`.trytable drop `nick`;

12. 数据的插入

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

单行写入:

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

多行写入(筛选字段):

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

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

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

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

sql 复制代码
insert IGNORE into `demo`.`usetable` select * form `demo`.`userinfo`;

13. update 修改

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

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

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

15. 复制表

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

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

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

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

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

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

-- 复制数据
insert into `新表的名称` select * from `原表名`;
相关推荐
林的快手6 分钟前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode
HEU_firejef39 分钟前
Redis——缓存预热+缓存雪崩+缓存击穿+缓存穿透
数据库·redis·缓存
KELLENSHAW1 小时前
MySQL45讲 第三十七讲 什么时候会使用内部临时表?——阅读总结
数据库·mysql
四七伵2 小时前
MySQL外键类型与应用场景总结:优缺点一目了然
mysql
SelectDB2 小时前
飞轮科技荣获中国电信星海大数据最佳合作伙伴奖!
大数据·数据库·数据分析
core5122 小时前
flink cdc各种数据库 jar下载地址
mysql·oracle·flink·jar·oceanbase·cdc
小刘鸭!3 小时前
Hbase的特点、特性
大数据·数据库·hbase
凡人的AI工具箱3 小时前
每天40分玩转Django:Django表单集
开发语言·数据库·后端·python·缓存·django
奔跑草-3 小时前
【数据库】SQL应该如何针对数据倾斜问题进行优化
数据库·后端·sql·ubuntu
Elastic 中国社区官方博客3 小时前
如何通过 Kafka 将数据导入 Elasticsearch
大数据·数据库·分布式·elasticsearch·搜索引擎·kafka·全文检索