木偶笔记 木偶笔记
首页
Python
数据库及Linux系统
  • 功能测试
  • 性能测试
  • 安全测试
  • 自动化测试
  • 测试开发
测试技术
web前端
工具
更多
收藏
  • 归档
  • 分类
  • 标签
关于
GitHub (opens new window)

木偶人

菜鸟程序员
首页
Python
数据库及Linux系统
  • 功能测试
  • 性能测试
  • 安全测试
  • 自动化测试
  • 测试开发
测试技术
web前端
工具
更多
收藏
  • 归档
  • 分类
  • 标签
关于
GitHub (opens new window)
  • MySQL

    • MySQL常用操作方法
    • MySQL 数据库与表操作
      • 一、 数据库操作
        • 1. 创建数据库
        • 2. 数据库查询
        • 知识点
        • 3. 修改数据库
        • 4. 删除数据库
        • 5. 数据库选择
        • 6. 综合实例:
      • 二、 表操作
        • 1. 创建数据表
        • 2. 查看表结构
        • 3. 查看数据表的创建语句
        • 4. 复制数据表
        • 5. 修改数据表
        • 6. 修改表名
        • 7. 修改字段排列顺序
        • 8. 修改字段数据类型
        • 9. 修改字段名字
        • 10. 添加字段
        • 12. 删除字段
        • 13. 删除数据表
    • MySQL 增删改查
  • mongDB

  • Linux

  • 数据库及Linux系统
  • MySQL
Pupper
2022-03-29
目录

MySQL 数据库与表操作

# 一、 数据库操作

# 1. 创建数据库

# 语法格式

CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];
1

# 知识点

  • [ ] 的内容可以不填,有默认值

  • MySQL 的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念

  • 字符集:是用来定义 MySQL 存储字符串的方式

  • 校对规则:定义了比较字符串的方式

# 实例:

# 简单创建一个数据库
create database yytest;

# 添加条件判断,创建一个数据库
create database if not exists yytests;

# 指定数据库数据集,创建一个数据库
create database if not  exists yytestss character set utf8;

# 指定字符串校验规则,创建一个数据库
create database if not  exists  yytestsss character set utf8 collate utf8_general_ci;

# 查看数据库创建的语句是什么
show create database yytestsss;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 2. 数据库查询

# 语法:

SHOW DATABASES [LIKE '数据库名'];
1

# 知识点

  • [ like ' ' ] 是可选项,用于匹配指定的数据库名称

  • [ like ' ' ] 可以模糊匹配,也可以精确匹配

  • 数据库名由单引号 ' ' 包围,在navicat中可以双引号

# 实例:

# 查询所有数据库
show DATABASES;

# 模糊匹配
show databases like '%yytest%';

# 精确匹配
show databases like 'yytests';
1
2
3
4
5
6
7
8

# 3. 修改数据库

# 语法 :

ALTER DATABASE [数据库名] {[ DEFAULT ] CHARACTER SET <字符集名> | [ DEFAULT ] COLLATE <校对规则名>}
1

# 知识点

  • 不一定要写数据库名,但需要当前有在使用的数据库

  • 只能支持修改字符集和字符校验规则,如果要修改数据库名可以直接通过工具重命名数据库,Mysql暂时不支持语句修改

  • 修改数据库不常用,了解即可

# 实例:

# 修改默认数据库的字符集
use yytest;
alter database character set utf8; 

# 修改指定数据库字符集和校验规则
alter database yytest  character set utf8 collate utf8_general_ci;
1
2
3
4
5
6

# 4. 删除数据库

# 语法:

DROP DATABASE [ IF EXISTS ] <数据库名>
1

# 知识点

  • 如果删除不存在的数据库,则会报 1008 - Can't drop database 'yytest'; database doesn't exist
  • 所以建议,删除数据库一定要加上 if exists

# 实例:

# 简单删除数据库语句
drop database yytest;

# 如果存在才删除
drop database if exists yytests;
1
2
3
4
5

# 5. 数据库选择

# 语法:

# 选择数据库
use yytestss;
1
2

# 知识点

  • 作用:用来完成一个数据库到另一个数据库的跳转【切换当前操作的数据库】
  • 当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定使用当前数据库

# 6. 综合实例:

# ====创建数据库====

# 简单创建一个数据库
create database yytest;

# 添加条件判断,创建一个数据库
create database if not exists yytests;

# 指定数据库数据集,创建一个数据库
create database if not  exists yytestss character set utf8;

# 指定字符串默认校验规则,创建一个数据库
create database if not  exists  yytestsss character set utf8  collate utf8_general_ci;

# 查看数据库创建的语句是什么
show create database yytestsss;

# ====查询数据库====

# 查询所有数据库
show DATABASES;

# 模糊匹配
show databases like '%yytest%';

# 精确匹配
show databases like 'yytests';

# ====修改数据库====

# 修改默认数据库的字符集
use yytest;
alter database character set utf8; 

# 修改指定数据库字符集和校验规则
alter database yytest  character set utf8 collate utf8_general_ci;

# ====删除数据库====

# 简单删除数据库语句
drop database yytestsss;

# 如果存在才删除
drop database if exists yytestss;

drop database if exists yytests;

# 选择数据库
use yytest;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

# 二、 表操作

# 1. 创建数据表

# 语法格式

CREATE TABLE <表名> ( [表定义选项] )[表选项][分区选项];
1

# 知识点

  • 表名:两种写法,可以直接写数据表的名字 tbl_name ,也可以 db_name.tbl_name ,先指定数据库再指定数据表名;后者写法是为了:无论是否在当前数据库,也能通过这种方式在指定数据库下创建表
  • **表定义选项:**一般都是 列名、列定义、默认值、约束、索引组成

# 实际栗子

# 创建数据表
CREATE TABLE yytest (
    id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY,
    uname VARCHAR ( 20 ) NOT NULL,
    sex VARCHAR ( 4 ),
    birth YEAR,
    department VARCHAR ( 20 ),
    address VARCHAR ( 50 ),
    yypolo VARCHAR ( 20 ) 
);

# 指定数据库,创建数据表
CREATE TABLE yytest.polotest (
    id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
    stu_id INT ( 10 ) NOT NULL,
    c_name VARCHAR ( 20 ),
    istester VARCHAR ( 50 ),
    grade INT ( 10 ) 
);    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 2. 查看表结构

desc yytest.yytest;
1

# 执行结果

img

# 知识点

  • Null:表示该字段是否可以存储 NULL 值

  • Key:表示该字段是否已编制索引。PRI 表示主键,UNI 表示UNIQUE 索引,MUL 表示某个给定值允许出现多次

  • Default:表示该字段是否有默认值,如果有,值是多少

  • Extra:表示该字段的附加信息,如 AUTO_INCREMENT 等

# 3. 查看数据表的创建语句

show create table yytest;
1

# 执行结果

img

# 知识点

不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码

# 4. 复制数据表

# 仅复制表结构
create table yytest2 like yytest;

# 复制表结构和数据
create table yytest3 as select  * from yytest;

# 仅复制表的指定字段结构
create table yytest4 as select id,uname,sex from yytest where 1<>1;

# 复制表的指定字段结构和数据
create table yytest5 as select id,uname,sex from yytest;

# 查看表创建语句:没有包含主键和自增
show create table yytest5;
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 知识点

  • 仅复制全部字段的结构直接加 like
  • 复制表不包含主键、索引、自增等

# 5. 修改数据表

# 语法格式

ALTER TABLE <表名> [修改操作];
1

# 知识点

常用的修改表的操作

  • 修改表名

  • 修改字段数据类型或字段名

  • 增加和删除字段

  • 修改字段的排列位置

  • add、drop、change、modify、rename

# 6. 修改表名

# 语法格式

ALTER TABLE <旧表名> RENAME [TO] <新表名>;
1

# 注意

  • [TO] 加不加都行,不影响结果
  • 修改表名不影响表结构

# 实际栗子

alter table yytest2 rename to yytest22; 
alter table yytest22 rename yytest22;
1
2

# 7. 修改字段排列顺序

# 语法格式

ALTER TABLE <表名> MODIFY <字段名> <数据类型> [FIRST|AFTER 已存在的字段名];
1

# 实际栗子

# 放在首位 
alter table yytest22 modify sex int(2) first;  

# 放在birth字段后面 
alter table yytest22 modify sex int(2) after birth;
1
2
3
4
5

# 8. 修改字段数据类型

# 语法格式

ALTER TABLE <表名> MODIFY <字段名> <数据类型>;
1

# 实际栗子

# 修改字段数据类型 
alter table yytest22 modify sex int(2);
1
2

# 9. 修改字段名字

# 语法格式

ALTER TABLE <表名> CHANGE <旧字段> <新字段> <数据类型>;
1

# 实际栗子

# 修改字段名 
alter table yytest22 change sex sexs int(2);  

# 修改字段数据类型和字段名 
alter table yytest22 change sexs sex varchar(4);
1
2
3
4
5

# 知识点

change不仅可以改字段名,也可以改字段数据类型

# 10. 添加字段

# 语法格式

ALTER TABLE <表名> ADD <字段名> <数据类型>  [约束条件] [FIRST|AFTER 已存在的字段名];
1

# 实际栗子

# 添加字段
alter table yytest22 add  phone varchar(11);

# 添加字段到首位
alter table yytest22 add  phone varchar(11) not null default 2 first;

# 添加字段到某个字段后面
alter table yytest22 add  phone varchar(11) after sex;
1
2
3
4
5
6
7
8

# 12. 删除字段

# 语法格式

ALTER TABLE <表名> DROP <字段名>;
1

# 实际栗子

# 删除字段 
alter table yytest22 drop  phone;
1
2

# 13. 删除数据表

# 语法格式

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
1

可以看到跟删除库差不多

# 实际栗子

# 删除表如果存在 
drop table if exists yytest,polotest
1
2

谨慎操作吧!!数据会清空哦!!

编辑 (opens new window)
上次更新: 2022/03/23, 18:33:10
MySQL常用操作方法
MySQL 增删改查

← MySQL常用操作方法 MySQL 增删改查→

最近更新
01
MySQL 增删改查
03-29
02
loguru-日志技术
03-29
03
TS 基础
03-29
更多文章>
Theme by Vdoing | Copyright © 2021-2022 Pupper | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×