MySQL

未分类2个月前更新 3153917921
16 0 0

关键字

unsigned — 用于指定数据类型为无符号

comment — 注释

数据类型

数值类型

字符串类型

日期时间类型

分类 类型 大小 格式
日期类型 date 3 YYYY-MM-DD
time 3 HH:MM:SS
year 1 YYYY-MM-DD
datetime 8 YYYY-MM-DD HH:MM:SS
timestap 4 YYYY-MM-DD HH:MM:SS

约束

非空约束        限制字段值不能为空                                                             not null

唯一约束        保证字段的所有数据都唯一,不重复                                    unique

主键约束        主键是一行数据的唯一标识,要求非空且唯一                      primary key(auto_increment自增)

默认约束        保存数据时,如果未指定该字段值,则采用默认值               default

外键约束        让两张表的数据建立连接,保证数据的一致性和完整性        foregin key

DDL篇(数据查询)

1、 查询数据库

查询所有的数据库
SHOW DATABASES;

 

2、 创建数据库

创建数据库:
CREATE DATABASE 数据库名称;

 

创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;

 

3、 使用数据库

使用数据库
USE 数据库名称;

 

查看当前使用的数据库
SELECT DATABASE();

 

4、 删除数据库

删除数据库
DROP DATABASE 数据库名称;

 

删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;

 

5、 创建表

创建表
CREATE TABLE 表名 (
字段名1 数据类型1,
字段名2 数据类型2,
字段名n 数据类型n
);

 

create table tb_user (
id int,
username varchar(20),
password varchar(32)
);

 

注意:最后一行末尾,不能加逗号

 

6、 查询表

查询当前数据库下所有表名称
SHOW TABLES;

 

7、 修改表

修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
— 将表名student修改为stu
alter table student rename to stu;

 

添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
— 给stu表添加一列address,该字段类型是varchar(50)
alter table stu add address varchar(50);

 

修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
— 将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50);

 

修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
— 将stu表中的address字段名改为 addr,类型改为varchar(50)
alter table stu change address addr varchar(50);

 

删除列
ALTER TABLE 表名 DROP 列名;
— 将stu表中的addr字段 删除
alter table stu drop addr;

 

8、 删除表

删除表
DROP TABLE 表名;

 

删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;

 

9、 查看数据表结构

desc [表名];

 

10、 查看建表语句

SHOW CREATE TABLE [表名]

 

11、 增加、删除和修改字段自增长

(1)增加自增长字段
ALTER TABLE table_name ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

 

注意:table_name代表您要增加自增长字段的表名,id代表您要增加的自增长字段名。

 

(2)修改自增长字段
ALTER TABLE table_name CHANGE column_name new_column_name INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

 

table_name代表包含自增长字段的表名,column_name代表原始自增长字段名,new_column_name代表新的自增长字段名。请注意,将数据类型更改为INT,否则无法使该列成为自增长主键。完成后,您需要重新启动表格才能使修改生效。

 

(3)删除自增长字段
ALTER TABLE table_name MODIFY column_name datatype;

 

注意:table_name代表要删除自增长字段的表名,column_name代表要删除的自增长字段名,datatype代表要设置的数据类型。

 

12、 增加、删除和修改数据表的列

(1)增加数据表的列
ALTER TABLE <表名> ADD COLUMN <列名> <数据类型>;

 

ALTER TABLE student ADD COLUMN age INT;
上面的命令会在student表中增加一个名为age的INT类型列。

 

(2)删除数据表的列
ALTER TABLE <表名> DROP COLUMN <列名>;

 

ALTER TABLE student DROP COLUMN age;
上面的命令会从student表中删除名为age的列。

 

(3)修改数据表的列
ALTER TABLE <表名> MODIFY COLUMN <列名> <数据类型>;

 

ALTER TABLE student MODIFY COLUMN age VARCHAR(10);
上面的命令会将student表中的age列的数据类型修改为VARCHAR(10)。

 

13、 添加、删除和查看索引
(1)添加索引:
要为表中的某个列添加索引,可以使用以下命令:
ALTER TABLE table_name ADD INDEX index_name (column_name);
其中,table_name是表的名称,index_name是索引的名称,column_name是要添加索引的列的名称。

 

例如,如果要为名为users的表的email列添加名为idx_email的索引,可以使用以下命令:
ALTER TABLE users ADD INDEX idx_email (email);

 

(2)删除索引:
要删除表中的索引,可以使用以下命令:
ALTER TABLE table_name DROP INDEX index_name;
其中,table_name是表的名称,index_name是要删除的索引的名称。

 

例如,如果要删除名为users的表的idx_email索引,可以使用以下命令:
ALTER TABLE users DROP INDEX idx_email;

 

(3)查看索引:

 

要查看表中的索引信息,可以使用以下命令:
SHOW INDEX FROM table_name;
其中,table_name是表的名称。该命令将返回包含索引信息的结果集。

 

例如,如果要查看名为users的表的索引信息,可以使用以下命令:
SHOW INDEX FROM users;

 

14、 创建临时表

要创建临时表,可以使用以下语法:
CREATE TEMPORARY TABLE temp_table_name (
    column1 datatype,
    column2 datatype,
    …
);
其中,temp_table_name是您要创建的临时表的名称。您可以指定表的列和数据类型,就像创建常规表一样。
以下是一个具体的例子:
CREATE TEMPORARY TABLE temp_users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(100)
);
上述命令将创建一个名为temp_users的临时表,其中包含id、name和email列。id列是主键。

 

注意:临时表仅在当前会话可见,并且在会话结束时自动删除。因此,它是一种在会话过程中存储临时数据的便捷方式。

 

15、 创建内存表

要创建内存表,可以使用以下语法:
CREATE TABLE mem_table_name (
    column1 datatype,
    column2 datatype,
    …
) ENGINE=MEMORY;
其中,mem_table_name是您要创建的内存表的名称。您可以指定表的列和数据类型,就像创建常规表一样。通过将ENGINE选项设置为MEMORY,该表将被创建为内存表。

 

以下是一个具体的例子:
CREATE TABLE mem_users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(100)
) ENGINE=MEMORY;

 

上述命令将创建一个名为mem_users的内存表,其中包含id、name和email列。id列是主键。

 

注意:内存表存储在内存中,因此数据的修改会立即生效,并且对所有用户可见。但是,当MySQL服务器关闭时,内存表中的数据将丢失。因此,它适用于临时存储数据或缓存等场景。

 

16、 查看数据库数据表存储位置

要查看MySQL数据库中数据表的存储位置,您可以执行以下步骤:

 

连接到MySQL服务器,可以使用以下命令:
mysql -u username -p
其中,username是您的MySQL用户名。系统将提示您输入密码。
选择要查看存储位置的数据库。使用以下命令选择数据库:
USE database_name;
其中,database_name是您要查看存储位置的数据库的名称。
执行以下命令来查看数据表的存储位置:
SHOW TABLE STATUS;
该命令将返回包含有关数据库中所有数据表的信息的结果集。其中,可以关注File列,它将显示数据表的存储位置。

 

如果只想查看特定数据表的存储位置,可以结合使用SHOW TABLE
STATUS和LIKE语句。例如,要查看名为table_name的表的存储位置,可以执行以下命令:
SHOW TABLE STATUS LIKE ‘table_name’;

 

这将返回特定数据表的详细信息,包括存储位置。

 

注意:这些命令在MySQL版本5.5及更高版本中有效。

 

17、 清空表内容

要清空MySQL表的内容,可以使用以下命令:
TRUNCATE TABLE table_name;

 

其中,table_name是要清空内容的表的名称。

 

该命令将删除表中的所有数据,但保留表的结构。换句话说,它将删除表中的所有行,但保留表的主键、索引和其他属性。

 

注意:该操作一旦执行,无法恢复表的内容。因此,在使用该命令之前,请确保您已经备份了重要的数据。

 

DML篇(数据操作)

DML是数据操纵语言。它是一组用于管理和处理数据库的命令和语句,用于插入、更新、删除、查询和修改数据库中的数据。

 

MySQL命令中关于DML的操作主要有增加(Insert)、删除(Delete)和修改(Update)

 

© 版权声明

相关文章

暂无评论

暂无评论...