Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
檀越@新空间
Coding Tree
提交
25fe2588
C
Coding Tree
项目概览
檀越@新空间
/
Coding Tree
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coding Tree
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
25fe2588
编写于
3月 16, 2022
作者:
彭世瑜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix
上级
20bb576c
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
344 addition
and
1 deletion
+344
-1
blog/php-mysql/index.md
blog/php-mysql/index.md
+2
-0
blog/php-mysql/sql-database.md
blog/php-mysql/sql-database.md
+32
-1
blog/php-mysql/sql-table.md
blog/php-mysql/sql-table.md
+310
-0
未找到文件。
blog/php-mysql/index.md
浏览文件 @
25fe2588
...
...
@@ -7,3 +7,5 @@
[
MySQL简介
](
blog/php-mysql/mysql-basic.md
)
[
数据库基本操作
](
blog/php-mysql/sql-database.md
)
[
数据表基本操作
](
blog/php-mysql/sql-table.md
)
blog/php-mysql/sql-database.md
浏览文件 @
25fe2588
...
...
@@ -46,5 +46,36 @@ show create database 数据库名;
-- eg:
show
create
database
data
;
```
https://www.bilibili.com/video/BV1Vx411g7uJ?p=7&spm_id_from=pageDriver
## 选择数据库
```
sql
use
数据库
;
-- eg
use
mydatabase
;
```
## 修改数据库
```
sql
-- 修改数据库字符集 和校对集
alter
database
数据库名字
charset
字符集
;
-- eg:
alter
database
mydatabase
charset
gbk
;
```
修改数据库名字
-
version < 5.5 rename
-
version > 5.5 不可以修改
## 删除数据库
```
sql
drop
database
数据库名字
;
-- eg:
drop
database
mydatabase
;
```
\ No newline at end of file
blog/php-mysql/sql-table.md
0 → 100644
浏览文件 @
25fe2588
# 数据表操作
## 创建数据表
1、基本语法
```
sql
create
table
表名
(
字段名
字段类型
[
字段属性
],
字段名
字段类型
[
字段属性
],
...
)
[
表选项
];
```
需要注意:表需要放在对应的数据库下面
2、创建方式一
```
sql
-- 先选择数据库
use
mydatabase
;
-- 创建数据表
create
table
user
(
name
varchar
(
10
)
);
```
3、创建方式二
```
sql
-- 直接将数据表挂到数据库下
create
table
mydatabase
.
user
(
name
varchar
(
10
)
);
```
4、表选项
-
Engine 存储引擎
-
Charset 字符集
-
Collate 校对集
指定表的字符集
```
sql
create
table
user
(
name
varchar
(
10
)
)
charset
utf8
;
```
5、复制已有表结构
```
sql
create
table
表名
like
表名
;
-- eg 从test数据库复制表
create
table
user
like
test
.
user
;
```
## 显示数据表
```
sql
-- 显示所有表
mysql
>
show
tables
;
+
----------------------+
|
Tables_in_mydatabase
|
+
----------------------+
|
t_author
|
|
user
|
+
----------------------+
-- 显示匹配表
mysql
>
show
tables
like
'%author'
;
+
--------------------------------+
|
Tables_in_mydatabase
(
%
author
)
|
+
--------------------------------+
|
t_author
|
+
--------------------------------+
```
## 显示表结构
基本语法
```
sql
desc
表名
(
常用
);
describe
表名
;
show
columns
from
表名
;
```
示例
```
sql
mysql
>
desc
user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
name
|
varchar
(
10
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
1
row
in
set
(
0
.
00
sec
)
mysql
>
describe
user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
name
|
varchar
(
10
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
1
row
in
set
(
0
.
01
sec
)
mysql
>
show
columns
from
user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
name
|
varchar
(
10
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
1
row
in
set
(
0
.
01
sec
)
```
字段含义
```
Field 字段名
Type 字段类型
Null 是否允许为空
Key 索引
Default 默认值
Extra 额外的属性
```
## 显示表创建语句
基本语法
```
sql
show
create
table
表名
;
```
示例
```
sql
mysql
>
show
create
table
user
;
+
-------+----------------+
|
Table
|
Create
Table
|
+
-------+----------------+
|
user
|
CREATE
TABLE
`user`
(
`name`
varchar
(
10
)
COLLATE
utf8mb4_general_ci
DEFAULT
NULL
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
|
+
-------+----------------+
1
row
in
set
(
0
.
00
sec
)
```
语句结束符
-
`;`
`\g`
效果一样,字段在上,数据在下
-
`\G`
字段在左,数据在右
```
sql
mysql
>
show
create
table
user
\
G
***************************
1
.
row
***************************
Table
:
user
Create
Table
:
CREATE
TABLE
`user`
(
`name`
varchar
(
10
)
COLLATE
utf8mb4_general_ci
DEFAULT
NULL
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
1
row
in
set
(
0
.
00
sec
)
```
## 设置表属性
-
engine
-
charset
-
collate
```
sql
-- 基本语法
alter
table
表名
表选项
[
=
]
值
;
-- eg 修改表的字符集
alter
table
user
charset
gbk
;
```
如果数据表已经有数据,不要轻易修改表属性
## 修改表结构
1、修改表名
```
sql
--基本语法
rename
table
旧表名
to
新表名
;
-- eg:
rename
table
user
to
tb_user
;
```
2、新增字段
```
sql
-- 基本语法
alter
table
表名
add
[
column
]
字段名
字段类型
[
字段属性
]
[
位置
first
/
after
字段名
];
mysql
>
desc
user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
name
|
varchar
(
10
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
-- 给学生表新增age字段,默认加到表的最后
mysql
>
alter
table
tb_user
add
age
int
;
mysql
>
desc
tb_user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
name
|
varchar
(
10
)
|
YES
|
|
NULL
|
|
|
age
|
int
(
11
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
-- 在最前面增加一个id字段
mysql
>
alter
table
tb_user
add
id
int
first
;
mysql
>
desc
tb_user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
id
|
int
(
11
)
|
YES
|
|
NULL
|
|
|
name
|
varchar
(
10
)
|
YES
|
|
NULL
|
|
|
age
|
int
(
11
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
```
字段位置
```
first 放在最前名
alter 字段名 放在某个字段后面
```
3、修改字段名
```
sql
-- 基本语法
alter
table
表名
change
旧字段名
新字段名
字段类型
[
字段属性
]
[
新位置
]
-- 将age字段修改为old
mysql
>
alter
table
tb_user
change
age
old
int
;
mysql
>
desc
tb_user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
id
|
int
(
11
)
|
YES
|
|
NULL
|
|
|
name
|
varchar
(
10
)
|
YES
|
|
NULL
|
|
|
old
|
int
(
11
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
```
4、修改字段属性
```
sql
-- 基本语法
alter
table
表名
modify
字段名
新字段类型
[
新字段属性
]
[
新位置
]
-- eg 将name的长度由10修改为20
mysql
>
alter
table
tb_user
modify
name
varchar
(
20
);
mysql
>
desc
tb_user
;
+
-------+-------------+------+-----+---------+-------+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
-------+-------------+------+-----+---------+-------+
|
id
|
int
(
11
)
|
YES
|
|
NULL
|
|
|
name
|
varchar
(
20
)
|
YES
|
|
NULL
|
|
|
old
|
int
(
11
)
|
YES
|
|
NULL
|
|
+
-------+-------------+------+-----+---------+-------+
```
5、删除字段
```
sql
-- 基本语法
alter
table
表名
drop
字段名
-- eg 删除old字段
alter
table
tb_user
drop
old
;
```
## 删除表结构
```
sql
-- 基本语法, 可以同时删除多个表
drop
table
表名
[,
表名
...];
-- eg: 删除 tb_user表
mysql
>
drop
table
tb_user
;
mysql
>
show
tables
;
+
----------------------+
|
Tables_in_mydatabase
|
+
----------------------+
|
t_author
|
+
----------------------+
```
https://www.bilibili.com/video/BV1Vx411g7uJ?p=11&spm_id_from=pageDriver
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录