本文对MySQL数据库的基本操作(DDL、DML)进行了归纳总结,并介绍了基本数据类型以及与表相关的常用操作。
本文操作基于MySQL 8.0 以及 Navicat数据库可视化软件
DDL(Data Definition Language), 数据定义语言,该语言包括:
功能 | SQL |
---|---|
查看所有数据库 | show databases; |
创建数据库 | create database [if not exists] databasename [charset = utf8] |
切换数据库 | use databasename; |
删除数据库 | drop database [if exists] databasename; |
修改数据库编码 | alter database [if exists] databasename character set utf8; |
# 这是一条注释
-- 这也是一条注释
create table [if not exists] 表名(
字段名1 类型[(宽度)] [约束条件] [comment ‘字段说明’],
字段名2 类型[(宽度)] [约束条件] [comment ‘字段说明’],
字段名3 类型[(宽度)] [约束条件] [comment ‘字段说明’]
)[表的设置];
use databasename;
create table if not exists student (
sid int,
name varchar(20),
gender varchar(20),
age int,
birth date,
address varchar(20),
score double
);
功能 | SQL |
---|---|
查看当前数据库的所有表名称 | show tables; |
查看某个表的创建语句 | show create table 表名 |
查看表结构 | desc 表名 |
删除表 | drop table 表名 |
alter
table
表名 add
列名 类型(长度)[约束];# 为student表添加一个新的字段为,系列dept类型为varchar(20)
ALTER TABLE student ADD dept VARCHAR(20);
语法格式:
alter
table
表名 change
旧列名 新列名 类型(长度) 约束;
例子:
# 为student表的dept字段更换为department varchar(30)
ALTER TABLE student change dept department VARCHAR(30);
语法格式:
alter
table
表名 drop
列名;
例子:
# 删除student表中department列
ALTER TABLE student DROP department;
rename
table
表名 to 新表名;数据类型是指在创建表的时候为表中字段指定数据类型,只有数据类型符合类型要求才能存储起来。
unsigned
;decimal(M,D)
,有效位为M位,小数点后D位。类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1byte | (-128, 127) | (0, 255) | 小整数值 |
SMALLINT | 2bytes | (-32768, 32767) | (0, 65535) | 大整数值 |
MEDIUMINT | 3bytes | (-8388608, 8388607) | (0, 16777215) | 大整数值 |
INT或INTEGER | 4bytes | (-2147483648, 2147483647) | (0, 4294967295) | 大整数值 |
BIGINT | 8bytes | (-9223372036854775808, 9223372036854775807) | (0, 18446744073709551615) | 极大整数值 |
FLOAT | 4bytes | (-3.402823466E+38, 3.402823466351E+38) | 0, (1.175494351E-38, 3.402823466E+38) | 单精度浮点数值 |
DOUBLE | 8bytes | (-1.7976931348623157E+308, 1.7976931348623157E+308) | 0,(2.2250738585072014E-308, 1.7976931348623157E+308) | 双精度浮点数值 |
DECIMAL | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255bytes | 定长字符串 |
VARCHAR | 0-65535bytes | 变长字符串 |
TINYBLOB | 0-255bytes | 不超过255个字符的二进制字符串 |
TINYTEXT | 0-255bytes | 短文本字符串 |
BLOB | 0-65535bytes | 二进制形式的长文本数据 |
TEXT | 0-65535bytes | 长文本数据 |
MEDIUMBLOB | 0-16777215bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16777215bytes | 中等长度文本数据 |
LONGBLOB | 0-429467295bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4294967295bytes | 极大文本数据 |
类型 | 大小 | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3bytes | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3bytes | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
YEAR | 1byte | 1901/2155 | YYYY | 年份值 |
DATETIME | 8bytes | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合时间和日期值 |
TIMESTAMP | 4bytes | 1970-01-01 00:00:00/2038 结束时间是第2147483647秒,北京时间2038-1-19 11:14:07 | YYYYMMDD HHMMSS | 混合日期时间值,时间戳 |
DML(Data Manipulation Language)是指数据库操作语言,用来对数据库中表的数据记录进行更新。
关键字:
insert
delete
update
语法格式:
向表中插入某些列:
insert
into
表 (列名1,列名2,列名3…) values
(值1,值2,值3…);
向表中插入所有列:
insert
into
表 values
(值1,值2,值3…);
例子1,使用第一种方式,插入单行:
# 向student表中插入一行数据,数据与列名一一对应
insert into student(sid, name, gender, age, birth, address, score)
values(01, '祢豆子', '女', 12, '2010-12-28', '东京', 95.5);
# 向student表中插入多行数据,数据与列名一一对应
insert into student(sid, name, gender, age, birth, address, score)
values(01, '祢豆子', '女', 12, '2010-12-28', '东京', 95.5),
(02, '我妻善逸', '男', 16, '2006-09-03', '东京', 91),
(03, '灶门炭治郎', '男', 15, '2007-07-14', '东京', 88.5);
# 插入蝴蝶忍的信息
insert into student values(04, '蝴蝶忍', '女', 18, '2004-02-24', '东京', 98.5);
update
表名 set
字段名 =
值,字段名 =
值…;update
表名 set
字段名 =
值,字段名 =
值… where
条件;-- 将所有的学生地址修改为北京
update student set address = '北京';
-- 将id为1的学生地址修改为西安
update student set address = '西安' where id = 1;
-- 将id为2的学生的地址修改为上海,成绩修改为100
update student set address = '上海', score = 100 where id = 2;
语法格式:
delete
from
表名 where
条件;
truncate
table
表名;
truncate
表名;
例子:
注意: delete
和truncate
原理不同,delete
只删除内容,而truncate
类似于drop table
,可以理解为是将整个表删除,然后再创建该表。
-- 1.删除sid为1的学生数据
delete from student where sid = 1;
-- 2.删除表所有数据
delete from student;
-- 3.清空表数据
truncate table student;
truncate student;
本文对MySQL数据库的基本操作(DDL、DML)进行了归纳总结,并介绍了基本数据类型以及与表相关的常用操作;
建议以及问题欢迎私信及评论区;
本专栏学习笔记还会持续更新,点赞收藏加关注,下次查找不迷路!