MySQL--DDL

目录

MySQL概述

SQL

一、SQL通用语法

DDL

DDL - 数据库操作

DDL - 表操作 - 查询

DDL - 表操作 - 创建

DDL - 表操作 - 数据类型

DDL - 表操作 - 修改

DDL - 表操作 - 删除


MySQL概述

  1. 数据库
    数据存储的仓库

  2. 数据库管理系统DBMS
    操纵和管理数据库的大型软件

  3. SQL
    操作关系型数据库的编程语言,是一套标准

启动与停止

管理员身份运行

客户端连接

方式一:MySQL自带的客户端命令行

关系型数据库(RDBMS)

  • 概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
  • 特点:
    1. 使用表存储数据,格式统一,便于维护
    2. 使用 SQL 语言操作,标准统一,使用方便

SQL

一、SQL通用语法

  1. SQL 语句可以单行或多行书写,以分号结尾。
  2. SQL 语句可以使用空格、缩进来增强语句的可读性。
  3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
  4. 注释:
    • 单行注释:-- 注释内容 或 # 注释内容 (MySQL 特有)
    • 多行注释:/* 注释内容 */

二、SQL分类

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象 (数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL

DDL - 数据库操作

查询

  • 查询所有数据库
    show databases;

  • 查询当前数据库
    select database();

创建

create database [ if not exists] 数据库名 [ default charset 字符集] [ collate 排序规则];

删除

drop database [ if exists] 数据库名;

使用

use 数据库名;

mysql> create database itcast
    -> ;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| itcast             |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)

mysql> create database if not exists itcast;
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| itcast             |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)

mysql> create database itheima default charset utf8mb4
    -> ;
Query OK, 1 row affected (0.00 sec)

mysql> drop database itcast;
Query OK, 0 rows affected (0.01 sec)

mysql> use itheima
Database changed
mysql>
mysql> select database();
+------------+
| database() |
+------------+
| itheima    |
+------------+
1 row in set (0.00 sec)
DDL - 表操作 - 查询
  • 查询当前数据库所有表
    show tables;

  • 查询表结构
    desc 表名;

  • 查询指定表的建表语句
    show create table 表名;

 DDL - 表操作 - 创建

create table 表名(
    字段1 字段1类型 [comment 字段1注释],
    字段2 字段2类型 [comment 字段2注释],
    字段3 字段3类型 [comment 字段3注释],
    ......
    字段n 字段n类型 [comment 字段n注释]
)[comment 表注释];

mysql> create database itcast;
Query OK, 1 row affected (0.00 sec)

mysql> use itcast;
Database changed
mysql> create table tb_user(
    -> id int comment '编号',
    -> name varchar(50) comment '姓名',
    -> age int comment '年龄',
    -> gender varchar(1) comment '性别'
    -> )comment '用户表';
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+------------------+
| Tables_in_itcast |
+------------------+
| tb_user          |
+------------------+
1 row in set (0.00 sec)

mysql> desc tb_user;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int         | YES  |     | NULL    |       |
| name   | varchar(50) | YES  |     | NULL    |       |
| age    | int         | YES  |     | NULL    |       |
| gender | varchar(1)  | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> show create table tb_user;
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                                                                                                                      |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_user | CREATE TABLE `tb_user` (
  `id` int DEFAULT NULL COMMENT '编号',
  `name` varchar(50) DEFAULT NULL COMMENT '姓名',
  `age` int DEFAULT NULL COMMENT '年龄',
  `gender` varchar(1) DEFAULT NULL COMMENT '性别'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表' |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

DDL - 表操作 - 数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

分类类型大小有符号 (SIGNED) 范围无符号 (UNSIGNED) 范围描述
数值类型TINYINT1 byte(-128, 127)(0, 255)

小整

数值

SMALLINT2 bytes(-32768, 32767)(0, 65535)

大整

数值

MEDIUMINT3 bytes(-8388608, 8388607)(0, 16777215)

大整

数值

INT 或 INTEGER4 bytes(-2147483648, 2147483647)(0, 4294967295)

大整

数值

BIGINT8 bytes(-2^63, 2^63-1)(0, 2^64-1)

极大

整数值

FLOAT4 bytes(-3.402823466 E+38, 3.402823466351 E+38)0 和 (1.175494351 E-38, 3.402823466 E+38)单精度浮点数值
DOUBLE8 bytes(-1.7976931348623157 E+308, 1.7976931348623157 E+308)0 和 (2.2250738585072014 E-308, 1.7976931348623157 E+308)双精度浮点数值
DECIMAL依赖于 M (精度) 和 D (标度) 的值依赖于 M (精度) 和 D (标度) 的值小数值 (精确定点数)
分类类型大小描述
字符串类型CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据
分类类型大小范围格式描述
日期类型DATE31000-01-01 至 9999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
YEAR11901 至 2155YYYY年份值
DATETIME81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

 DDL - 表操作 - 修改

添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];

修改数据类型

alter table 表名 modify 字段名 新数据类型(长度);

修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];

删除字段
alter table 表名 drop 字段名;

修改表名
alter table 表名 rename to 新表名; 

DDL - 表操作 - 删除

删除表

drop table [if exists] 表名;

删除指定表,并重新创建该表

truncate table 表名;

注意:在删除表时,表中的全部数据也会被删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值