MySQL是一种广泛使用的关系型数据库管理系统,被许多组织和开发人员用于存储和管理数据。作为一种强大而灵活的数据库解决方案,MySQL在各种应用程序中都扮演着重要的角色,从简单的个人项目到大型企业级应用。
数据类型
1.数值类型:
数据类型 | 字段属性 | 描述 |
---|---|---|
INT | UNSIGNED, ZEROFILL, AUTO_INCREMENT | 整数类型,可选择无符号、填充零和自动递增 |
FLOAT | NOT NULL, DEFAULT | 单精度浮点数类型 |
DOUBLE | NOT NULL, DEFAULT | 双精度浮点数类型 |
2.日期时间类型:
数据类型 | 字段属性 | 描述 |
---|---|---|
DATE | NOT NULL, DEFAULT | 日期类型,格式为'YYYY-MM-DD' |
TIME | NOT NULL, DEFAULT | 时间类型,格式为'HH:MM:SS' |
DATETIME | NOT NULL, DEFAULT | 日期和时间类型,格式为'YYYY-MM-DD HH:MM:SS' |
TIMESTAMP | NOT NULL, DEFAULT, ON UPDATE | 时间戳类型,记录插入和更新的时间 |
3.字符串类型:
数据类型 | 字段属性 | 描述 |
---|---|---|
VARCHAR | NOT NULL, DEFAULT | 可变长度字符串类型 |
CHAR | NOT NULL, DEFAULT | 定长字符串类型 |
TEXT | NOT NULL, DEFAULT | 长文本类型 |
BLOB | NOT NULL, DEFAULT | 二进制大对象类型 |
4.枚举类型:
数据类型 | 字段属性 | 描述 |
---|---|---|
ENUM | NOT NULL, DEFAULT | 枚举类型,可选择预定义的选项列表 |
SET | NOT NULL, DEFAULT | 集合类型,可选择预定义的选项列表 |
约束
约束类型 | 描述 |
---|---|
PRIMARY KEY | 主键约束,用于唯一标识表中的记录,并确保其值不重复 |
FOREIGN KEY | 外键约束,用于建立表之间的关联关系,保持数据的一致性 |
UNIQUE | 唯一约束,确保字段的值在表中是唯一的 |
NOT NULL | 非空约束,确保字段的值不为空值(NULL) |
CHECK | 检查约束,定义字段值必须满足指定的条件 |
DEFAULT | 默认约束,为字段提供默认值,当没有指定值时将使用默认值 |
AUTO_INCREMENT | 自动递增约束,用于创建一个自增的整数值,通常与主键一起使用 |
基本使用
1. 连接MySQL服务器
在打开的命令行界面中,输入以下命令以连接到MySQL服务器:
mysql -u root -p
其中,root
是你在MySQL服务器上的用户名。按下Enter键后,系统将提示你输入密码。
2. 展示所有数据库
一旦连接到MySQL服务器,你可以使用以下命令展示所有数据库:
SHOW DATABASES;
该命令将显示MySQL服务器中的所有数据库列表。
3.创建数据库
CREATE DATABASE dbname;
将dbname替换为你想要使用的数据库名称
4. 使用数据库
要使用特定的数据库,可以使用以下命令:
USE database_name;
将database_name
替换为你想要使用的数据库名称。使用该命令后,后续的操作将在指定的数据库上执行。
5. 显示所有表
在选择了特定的数据库后,你可以使用以下命令来显示该数据库中的所有表:
SHOW TABLES;
该命令将列出选定数据库中的所有表。
6. 退出MySQL
要退出MySQL命令行,可以输入以下命令:
QUIT;
数据定义语言(DDL)语句
在本节中,我们将介绍数据定义语言(DDL)语句,它是用于创建、修改和删除数据库对象的一类SQL语句。
创建表(CREATE TABLE)
创建表是DDL语句中最常用的操作之一。使用CREATE TABLE
语句可以定义数据库中的表结构,并指定每个字段的名称、数据类型和约束。以下是一个示例:
CREATE TABLE 表名 ( 列1 数据类型, 列2 数据类型, 列3 数据类型, ... );
创建名为mytable的表,属性:id 整型 主键,name 字符串型 ,age 整型
create table mytable(
id int primary key,
name varchar(20),
age int
);
修改表(ALTER TABLE)
ALTER TABLE
语句用于修改已存在的表结构。你可以使用ALTER TABLE
来添加、修改或删除表的列,添加或删除约束,以及进行其他结构变更操作。以下是一些常见的ALTER TABLE
语句用法:
-
添加列:
ALTER TABLE 表名 ADD 列名 数据类型; 或者: ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
-
修改列:
ALTER TABLE 表名 MODIFY 列名 新数据类型;
-
删除列:
ALTER TABLE 表名 DROP COLUMN 列名;
删除表(DROP TABLE)
DROP TABLE
语句用于删除数据库中的表。执行该操作将永久删除表及其所有数据和结构。以下是删除表的语法:
DROP TABLE 表名;
创建索引(CREATE INDEX)
通过创建索引,可以加快数据库查询的速度。索引可以基于一个或多个列,用于快速定位和访问表中的数据。以下是创建索引的语法:
CREATE INDEX 索引名 ON 表名 (列名1, 列名2, ...);
假设我们有一个名为mytable的表,其中包含一个name
列。要创建索引以加快对name
列的查询,可以使用以下语句:
CREATE INDEX my_index ON mytable(name);
这将在mytable表的name
列上创建名为my_index的索引。
其他DDL语句
除了上述示例,DDL语句还包括其他操作,如创建视图(CREATE VIEW)、创建存储过程(CREATE PROCEDURE)和创建触发器(CREATE TRIGGER)等。
数据操作语言(DML)语句
用于对数据库中的数据进行增加、修改和删除操作。
插入数据(INSERT)
INSERT
语句用于向数据库表中插入新的数据行。以下是向表中插入数据的语法示例:
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
你可以指定要插入数据的列和对应的值。如果未指定列名,则必须提供与表中列的顺序相匹配的值。
更新数据(UPDATE)
UPDATE
语句用于修改表中现有数据行的值。以下是修改数据的语法示例:
UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2, ... WHERE 条件;
你可以使用 SET
子句来指定要更新的列和对应的新值,并使用 WHERE
子句来指定满足条件的行。如果不提供 WHERE
子句,则将更新表中的所有行。
删除数据(DELETE)
DELETE
语句用于从数据库表中删除数据行。以下是删除数据的语法示例:
DELETE FROM 表名 WHERE 条件;
你可以使用 WHERE
子句来指定要删除的行。如果不提供 WHERE
子句,则将删除表中的所有行。
查询数据(SELECT)
SELECT
语句用于从数据库中检索数据。以下是查询数据的语法示例:
SELECT 列1, 列2, ... FROM 表名 WHERE 条件;
你可以指定要检索的列和要查询的表。使用 WHERE
子句来指定满足条件的行。如果不提供 WHERE
子句,则将检索表中的所有行。
示例
下面是一个使用DML语句的示例:
--创建users表
create table users(
username varchar(20),
password varchar(20),
email varchar(20))charset=utf8;
-- 插入数据
INSERT INTO users (username, password, email) VALUES ('张三', '1234567','1@qq.com');
-- 更新数据
UPDATE users SET password = 'zhangsan1234' WHERE username = '张三';
-- 删除数据
DELETE FROM users WHERE username = '张三';
-- 查询数据
SELECT email FROM users WHERE username = '李四';