MySQL学习笔记(二)

转义字符的使用

MySQL中转义字符有 \ ‘ 和“

转义字符转义后的字符
\"双引号(")
\'单引号(')
\\反斜线(\)
\n换行符
\r回车符
\t制表符
\0ASCII 0(NUL)
\b退格符

MySQL存储引擎

InnoDB

InnoDB引擎是具备外键支持功能的事务处理引擎

MySQL修改数据表的存储引擎

语法格式如下:

ALTER TABLE <表名> ENGINE = <存储引擎名>;

数据表

创建数据表

在MySQL中,创建数据表的语句为:

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

值得注意的是,在创建数据表之前,要事先USE <数据库名>;

指定这次操作在哪个数据库中进行

否则会抛出错误

<表名>:是指定要创建的表的名称,可以用如下方式创建:db_name.tb_name;

即无论现在是否存在数据库,都可以用这个方式来创建,但是如果使用引号的是别名,应对数据库名和表名都加引号,例如:'mydb'.'mytb'是对的。

<表定义选项>:由列名和列的定义组成

例如:id INT(11);

下面是创建数据表的实例:

mysql> CREATE DATABASE db_test;
Query OK, 1 row affected (0.00 sec)

mysql> USE db_test;
Database changed
mysql> CREATE TABLE tb_rxz
    -> (
    -> id INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> SHOW TABLES;
+-------------------+
| Tables_in_db_test |
+-------------------+
| tb_rxz            |
+-------------------+
1 row in set (0.00 sec)

注意:列定义选项中,最后一个列类型定义之前的都需要加逗号,而最后一个不需要。修

修改数据表

修改数据表的前提是已经存在该数据表。

在MySQL中我们可以使用ALTER TABLE 语句来改变原有表的结构

语法格式如下

ALTER TABLE <表名>[修改选项]

修改表名

ALTER TABLE <旧表名> RENAME TO <新表名>;

修改字段名称

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

mysql> ALTER TABLE tb_yrj
    -> CHANGE id id5 INT(15);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_yrj;
+--------+---------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| id5    | int(15) | YES  |     | NULL    |       |
| salary | float   | YES  |     | NULL    |       |
+--------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

CHANGE也可以只改变数据类型

只需要将旧字段和新字段写为相同即可

当然也可以只改变字段不改变数据类型,即将数据类型设置为与之前一样,但是不能为空。

修改字段数据类型

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

mysql> ALTER TABLE tb_yrj MODIFY id5 INT(20);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_yrj;
+--------+---------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| id5    | int(20) | YES  |     | NULL    |       |
| salary | float   | YES  |     | NULL    |       |
+--------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

删除字段

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

mysql> DESC tb_yrj;
+--------+-------+------+-----+---------+-------+
| Field  | Type  | Null | Key | Default | Extra |
+--------+-------+------+-----+---------+-------+
| salary | float | YES  |     | NULL    |       |
+--------+-------+------+-----+---------+-------+
1 row in set (0.00 sec)

删除数据表

DROP TABLE  [IF EXISTS] 表名一,(表名二,表名三);

mysql> DESC tb_yrj;
+--------+-------+------+-----+---------+-------+
| Field  | Type  | Null | Key | Default | Extra |
+--------+-------+------+-----+---------+-------+
| salary | float | YES  |     | NULL    |       |
+--------+-------+------+-----+---------+-------+
1 row in set (0.00 sec)

mysql> DROP TABLE tb_yrj;
Query OK, 0 rows affected (0.02 sec)

MySQL查看表命令结构

1

DESC <表名>;

展示表的字段、数据类型、是否为主键、是否有默认值等

2

SHOW CREATE TABLE <表名>;

在DESC的功能之外,还可以查看表的存储引擎和字符编码

mysql> SHOW CREATE TABLE tb_rxz;
+--------+-------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                  |
+--------+-------------------------------------------------------------------------------------------------------------------------------+
| tb_rxz | CREATE TABLE `tb_rxz` (
  `id` int(15) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------+-------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

MySQL数据表添加字段

在末尾添加字段

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件];

这个只能在表的最后位置,即最后一列的后面添加新字段。

mysql> ALTER TABLE tb_rxz ADD girl VARCHAR(20);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_rxz;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(15)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| girl  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

在开头添加字段

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] FIRST;

mysql> ALTER TABLE tb_rxz ADD boy VARCHAR(20);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> SHOW CREATE TABLE tb_rxz;
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                                                       |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_rxz | CREATE TABLE `tb_rxz` (
  `id` int(15) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL,
  `girl` varchar(20) DEFAULT NULL,
  `boy` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

在中间添加字段

ALTER TABLE <表名>ADD <新字段名>[约束条件]AFTER <已经存在的字段名>;

mysql> ALTER TABLE tb_rxz ADD sfz INT(20) AFTER boy;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_rxz;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(15)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| girl  | varchar(20) | YES  |     | NULL    |       |
| boy   | varchar(20) | YES  |     | NULL    |       |
| sfz   | int(20)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值