目录
一、什么是DDL?
二、对数据库的常用操作
三、对表结构的常见操作
四、修改表结构格式
💟 创作不易,不妨点赞💚评论❤️收藏💙一下
一、什么是DDL?
DDL(Data Definition Language) 被称为数据库定义语言,该语言主要包含三个方面的内容:
对数据库的常见操作,对表结构的常见操作,以及修改表结构。
对数据库的常见操作:
例如:对一个数据库进行创建、添加、删除、修改信息等操作
对表结构的常见操作:
例如:创建表,删除表或对表的行列进行添加、删除、修改等等
修改表结构:
例如:一个人表创建完成之后,给表加一列或者减一列等等
说的通俗一点,DDL就是对创建的数据库整体进行操作,对表整体结构进行操作,不涉及到数据,是不涉及到数据之外的其他操作。
二、对数据库的常用操作
功能 | SQL |
---|---|
查看所有的数据库 | show databases; |
创建数据库 | create database [if not exists] mydb1 [charset=utf8] |
切换 (选择要操作的) 数据库 | use mydb1; |
删除数据库 | drop database [if exists] mydb1; |
修改数据库编码 | alter database mydb1 character set utf8; |
1.查看所有的数据库
show databases;
2.创建数据库
-- 创建数据库,如果该数据库已经存在执行该命令会报错
create database 数据库名;
-- 判断该数据库是否存在,如果不存在就创建,存在的话就不会创建
create database if not exists 数据库名;
3.切换数据库
-- 选择使用哪一个数据库,切换数据库
use 数据库名
4.删除数据库
-- 删除数据库,不管该数据库是否存在都执行删除操作,如果不存在进行删除的话会报错
drop database 数据库名;
-- 删除数据库,判断是否存在该数据库,如果存在就删除
drop database if exists 数据库名;
5.修改数据库编码
-- 修改数据库编码
alter database 数据库名 character set utf8;
三、对表结构的常见操作
1.创建表格式
创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型
-- 表结构的相关操作
-- 创建表
-- 表格式
/*
[...]括号中的语句可以省略,也可以加上
create table [if not exists]表名(
字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];
*/
-- 1.创建表 , 不判断表是否存在
create table book (
bid int ,
name varchar(20),
age int ,
desc varchar(20),
price double
);
-- 2.创建表,判断表是否存在,不存在就创建
create table if not exists book (
bid int ,
name varchar(20),
age int ,
desc varchar(20),
price double
);
2. 数据类型
数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合要求才能存储起来,使用数据库的原则是够用就行,尽量使用取值范围小的,而不用大的这样可以更多的节省存储空间。
数据类型分为:
数值类型:描述数字的,包括整数和小数
日期和时间类型:描述时间的
字符串类型:表示不是数字,不是日期,剩余的就是字符串类型
2.1数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT(tinyint) | 1 byte | (-128,127) | (0,255) | 小整数值 |
SMALLINT(smallint) | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT(mediumint) | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT(int)或INTEGER(integer) | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT(bigint) | 8 bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT(float) | 4 bytes | (-3.402 823 466 E+38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度浮点数值 |
DOUBLE(double) | 8 bytes | (-1.797 693 134 862 315 7 E+308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度浮点数值 |
DECIMAL(decimal) | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
-- 整型
create table book (
-- 一个字节,8个二进制位 10101010
-- 用最高位描述它的符号位,也就是正负符号
-- 最高为为1 ,表示是负的,最高位为0表示正的
-- 如果没有写符号,默认表示是有符号的,有一正一负
id1 tinyint,
-- 表示无符号
id1 tinyint unsigned,
id2 int unsigned, -- unsigned 表示无符号
);
-- decimal 可以指定小数保留几位
decimal(5,2) -- 表示有效位数(整数+小数位)总位数为5,2为小数位数
2.2字符串类型
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65 535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
-- 字符串类型
-- 常用的varchar
-- varcahr是变长字节,长度会随着存储数据的多少而变化
-- 表示这个名字最多可以存储20个字符,一般使用单引号进行赋值 '张三'
sname varchar(20)
2.3日期类型
类型 | 大小**( bytes)** | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
#日期类型
-- 年-月-日 YYYY-MM-DD
date
-- 时:分:秒 HH:MM:SS
time
-- 合起来 ==> 年-月-日 时:分:秒 YYYY-MM-DD HH:MM:SS
datetime
-- 获取本地时间,有时区的概念
-- 如果没有设置值的话,会默认获取当前时区的本地时间
-- 想自动填充当前时间,可以使用该字段
timestamp
3.其他操作
功能 | SQL |
---|---|
查看当前数据库的所有表名称 | show tables; |
查看指定某个表的创建语句 | show create table 表名; |
查看表结构 | desc 表名 |
删除表 | drop table 表名 |
#表的其他操作
-- 1.查看当前数据库所以的表
show tables
-- 2. 查看指定表的创建语句
show create table 表名
-- 3.查看表结构
desc 表名
-- 4.删除表
drop table 表名
四、修改表结构格式
1.修改表:添加列
语法格式
alter table 表名 add 列名 类型(长度) [约束];
-- 例子:
-- 为student表添加一个新的字段为:系别 dept 类型为 varchar(20)
alter table student add `dept` VARCHAR(20);
2.修改表:修改列名和类型
语法格式
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
-- 例子:
-- 为student 表的dept字段更换为department varchar(30)
alter table 表名 change 'dept' department varchar(30)
3.修改表:删除列
语法格式
alter table 表名 drop 列名;
-- 例子:
-- 删除 student 表中department这列
alter table student drop department;
4.修改表:修改表名
语法格式
rename table 表名 to 新表名
-- 例子:
# 将表名student 改名成 stu
rename table `student` to stu ;
写到最后
四季轮换,已经数不清凋零了多少, 愿我们往后能向心而行,一路招摇胜!
🐋 你的支持认可是我创作的动力
💟 创作不易,不妨点赞💚评论❤️收藏💙一下
😘 感谢大佬们的支持,欢迎各位前来不吝赐教