MySQL基础(2)-建、增、删、改、查

117 阅读5分钟

在上一篇中,介绍了如何在Linux环境下安装 MySQL

这一篇介绍数据库的基本操作。

MySQL 基本数据类型

image.png

CHAR 和 VARCHAR 的区别:  CHAR 的长度是固定的,而 VARCHAR 的长度是可以变化的,比如,存储字符串 “abc",对于 CHAR(10),表示存储的字符将占 10 个字节(包括 7 个空字符),而同样的 VARCHAR(12) 则只占用 4 个字节的长度,增加一个额外字节来存储字符串本身的长度,12 只是最大值,当你存储的字符小于 12 时,按实际长度存储。

ENUM 和 SET 的区别:  ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选。

建-新建数据库

新建数据库

我们创建一个数据库,给它一个名字,比如 mysql_db,语句格式为 CREATE DATABASE <数据库名字>;,(注意不要漏掉分号 ;),前面的 CREATE DATABASE 也可以使用小写。

image.png

CREATE DATABASE mysql_db;

创建成功后输入命令 show databases; (注意不要漏掉;)检查一下。

image.png

注意:在大多数系统中,SQL 语句都是不区分大小写的。不过为了便于区分,一般将保留字大写,将变量和数据小写。

连接数据库

连接数据库的目的是为了让之后的操作在指定数据库中进行。

use mysql_db;

image.png

新建表

在数据库中新建一张表的语句格式为:

CREATE TABLE 表的名字 
( 
列名a 数据类型(数据长度), 
列名b 数据类型(数据长度), 
列名c 数据类型(数据长度),
...
);

我们尝试在 mysql_db 中新建一张表 employee,包含姓名,ID 和电话信息,所以语句为:

CREATE TABLE employee (id int(10),name char(20),tel int(12));

image.png

再创建一张表 department,包含名称和电话信息

CREATE TABLE department (name char(20),tel int(12));

image.png

使用show tables;查看表的创建情况。

image.png

增-插入数据

向表中插入数据

MySQL 中,我们使用 INSERT 语句向表中插入数据,语句格式为:

INSERT INTO 表的名字(列名a,列名b,列名c,...) VALUES(值1,值2,值3,...);

我们尝试向 employee 中加入 JackRoseSiri

INSERT INTO employee(id,name,tel) VALUES(01,'Jack',1234); 
INSERT INTO employee VALUES(02,'Rose',5678); 
INSERT INTO employee(id,name) VALUES(03,'Siri');

使用语句 SELECT * FROM employee; 查看 employee 表。

image.png

查-查找所需数据

基本的查询: SELECT 语句

SELECT 语句的基本格式为:

SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

如果要查询表的所有内容,则把 要查询的列名 用一个星号 * 号表示(实验 2、3 中都已经使用过),代表要查询表中所有的列。 而大多数情况,我们只需要查看某个表的指定的列,比如要查看 employee 表的 name

SELECT name  FROM employee;

image.png

WHERE 限制条件

SELECT 语句常常会有 WHERE 限制条件,用于达到更加精确的查询。WHERE 限制条件可以有数学符号 (=,<,>,>=,<=) ,刚才我们查询了 name,现在稍作修改:

SELECT name  FROM employee WHERE tel=1234; 

image.png

ANDOR

从这两个单词就能够理解它们的作用。WHERE 后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用 条件一 OR 条件二条件一 AND 条件二 连接:

SELECT name  FROM employee WHERE tel=1234 or tel =5678;

image.png

SELECT name  FROM employee WHERE tel=1234 and tel =5678;

image.png

因为前面举的例子数据很少,下面换成一个相对较多的一个数据库。

image.png

image.png

INNOT IN

关键词 IN 和 NOT IN 的作用和它们的名字一样明显,用于筛选 “在”“不在” 某个范围内的结果,比如说我们要查询在 dpt3 或 dpt4 的人:

SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');

image.png

而 NOT IN 的效果则是,如下面这条命令,查询出了不在 dpt1 也不在 dpt3 的人:

SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');

image.png

通配符

关键字 LIKE 可用于实现模糊查询,常见于搜索功能中。

LIKE 联用的通常还有通配符,代表未知字符。SQL 中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符

比如,要只记得电话号码前四位数为 1101,而后两位忘记了,则可以用两个 _ 通配符代替.

SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';

image.png

另一种情况,比如只记名字的首字母,又不知道名字长度,则用 % 通配符代替不定个字符

image.png

删-删除指定的数据

删除命令为 DROP,我们接下来删除名称为 test_01 的数据库

删除之前:

image.png

DROP DATABASE test_01;

进行删除操作之后:

image.png

改-对数据库中的表进行修改

修改表名称

重命名有三种方式:

RENAME TABLE 原名 TO 新名字; 
ALTER TABLE 原名 RENAME 新名; 
ALTER TABLE 原名 RENAME TO 新名;

数据库中初始的表格如下:

image.png

使用 RENAME TABLE table_1 TO table_2;table_1 改名为 table_2

image.png

修改表结构

  • 在表中增加一列的语句格式为
ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束; 
\\ 或
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
  • 删除表中某一行
DELETE FROM 表名字 WHERE 条件;

修改表内容

在表中增加一列的语句格式为

UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;

总结

mysql 的基本操作思路基本可以归纳为:

“操作动作” + “操作对象所在位置” + “限制条件选出操作对象” + ;