在上一篇中,介绍了如何在Linux环境下安装 MySQL
这一篇介绍数据库的建、增、删、改、查基本操作。
MySQL 基本数据类型
CHAR 和 VARCHAR 的区别: CHAR 的长度是固定的,而 VARCHAR 的长度是可以变化的,比如,存储字符串 “abc",对于 CHAR(10),表示存储的字符将占 10 个字节(包括 7 个空字符),而同样的 VARCHAR(12) 则只占用 4 个字节的长度,增加一个额外字节来存储字符串本身的长度,12 只是最大值,当你存储的字符小于 12 时,按实际长度存储。
ENUM 和 SET 的区别: ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选。
建-新建数据库
新建数据库
我们创建一个数据库,给它一个名字,比如 mysql_db,语句格式为 CREATE DATABASE <数据库名字>;,(注意不要漏掉分号 ;),前面的 CREATE DATABASE 也可以使用小写。
CREATE DATABASE mysql_db;
创建成功后输入命令 show databases; (注意不要漏掉;)检查一下。
注意:在大多数系统中,SQL 语句都是不区分大小写的。不过为了便于区分,一般将保留字大写,将变量和数据小写。
连接数据库
连接数据库的目的是为了让之后的操作在指定数据库中进行。
use mysql_db;
新建表
在数据库中新建一张表的语句格式为:
CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度),
...
);
我们尝试在 mysql_db 中新建一张表 employee,包含姓名,ID 和电话信息,所以语句为:
CREATE TABLE employee (id int(10),name char(20),tel int(12));
再创建一张表 department,包含名称和电话信息
CREATE TABLE department (name char(20),tel int(12));
使用show tables;查看表的创建情况。
增-插入数据
向表中插入数据
在 MySQL 中,我们使用 INSERT 语句向表中插入数据,语句格式为:
INSERT INTO 表的名字(列名a,列名b,列名c,...) VALUES(值1,值2,值3,...);
我们尝试向 employee 中加入 Jack、Rose 和 Siri:
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 表。
查-查找所需数据
基本的查询: SELECT 语句
SELECT 语句的基本格式为:
SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
如果要查询表的所有内容,则把 要查询的列名 用一个星号 * 号表示(实验 2、3 中都已经使用过),代表要查询表中所有的列。 而大多数情况,我们只需要查看某个表的指定的列,比如要查看 employee 表的 name:
SELECT name FROM employee;
WHERE 限制条件
SELECT 语句常常会有 WHERE 限制条件,用于达到更加精确的查询。WHERE 限制条件可以有数学符号 (=,<,>,>=,<=) ,刚才我们查询了 name,现在稍作修改:
SELECT name FROM employee WHERE tel=1234;
AND 与 OR
从这两个单词就能够理解它们的作用。WHERE 后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用 条件一 OR 条件二 和 条件一 AND 条件二 连接:
SELECT name FROM employee WHERE tel=1234 or tel =5678;
SELECT name FROM employee WHERE tel=1234 and tel =5678;
因为前面举的例子数据很少,下面换成一个相对较多的一个数据库。
IN 与 NOT IN
关键词 IN 和 NOT IN 的作用和它们的名字一样明显,用于筛选 “在” 或 “不在” 某个范围内的结果,比如说我们要查询在 dpt3 或 dpt4 的人:
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');
而 NOT IN 的效果则是,如下面这条命令,查询出了不在 dpt1 也不在 dpt3 的人:
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');
通配符
关键字 LIKE 可用于实现模糊查询,常见于搜索功能中。
和 LIKE 联用的通常还有通配符,代表未知字符。SQL 中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符
比如,要只记得电话号码前四位数为 1101,而后两位忘记了,则可以用两个 _ 通配符代替.
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
另一种情况,比如只记名字的首字母,又不知道名字长度,则用 % 通配符代替不定个字符
删-删除指定的数据
删除命令为 DROP,我们接下来删除名称为 test_01 的数据库
删除之前:
DROP DATABASE test_01;
进行删除操作之后:
改-对数据库中的表进行修改
修改表名称
重命名有三种方式:
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
数据库中初始的表格如下:
使用 RENAME TABLE table_1 TO table_2;将 table_1 改名为 table_2
修改表结构
- 在表中增加一列的语句格式为
ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
\\ 或
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
- 删除表中某一行
DELETE FROM 表名字 WHERE 条件;
修改表内容
在表中增加一列的语句格式为
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
总结
mysql 的基本操作思路基本可以归纳为:
“操作动作” + “操作对象所在位置” + “限制条件选出操作对象” + ;