MySQL-SQL-DDL语句、表结构创建语句语法、表约束、表数据类型,表结构-查询SQL、修改SQL、删除SQL

一.SQL

SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准

二. DDL-数据库

1. 查询所有数据库

命令:show databases;

2. 查询当前数据库

命令:select database();

3. 创建数据库

命令:create database if not exists 数据库名 default charset utf8mb4;

可选项: if not exists-如果数据库不存在则创建;

default charset utf8mb4-指定数据库字符集(不写默认也是他)

同一个数据库中数据库名不能重复;不使用if not exists重复创建则报错;

4.使用/切换数据库

命令:use 数据库名;

5.删除数据库

命令:drop database if exists 数据库名;

不使用if exists删除不存在的数据库则会报错;

可选项:if exists-如果存在则删除

注意: 上述语法中的database,也可以替换成schema。如create schema db01;

MySQL8版本中,默认字符集为utf8mb4。

三. MySQL客户端工具-图形化工具-DataGrip 安装与使用

参照博主的 MySQL客户端工具-图形化工具-DataGrip 安装与使用 来安装

四. DDL-表结构创建

1. 语法

sql 复制代码
create table 表名(

    字段1 字段类型 [约束] [comment 字段1注释],
    .....
    字段2 字段类型 [约束] [comment 字段1注释]

)[comment 表注释];

2. 约束

(1) 约束是作用于表中字段上的规则,用于限制存储在表中的数据;目的是保证数据库中数据的正确性、有效性、完整性。

一个字段上可以添加多个约束,约束之间用空格隔开

3. auto_ increment 自增

4. 数据类型

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

数值类型的选取原则:在满足业务需求的前提下,尽可能选择占用磁盘空间小的数据类型。

sql 复制代码
-- 创建员工表
-- 基础字段:id 主键;create_time 创建时间;update_time 更新时间
create table emp(
    id int unsigned primary key auto_increment comment 'id主键',
    username varchar(50) not null unique  comment '用户名',
    password varchar(32) default '123456' comment '密码,默认123456',
    name varchar(50) not null comment '姓名',
    gender tinyint unsigned not null comment '性别,1男;2女',
    phone char(11) not null unique comment '手机号',
    job tinyint unsigned comment '职务,1语文;2数学;3英语;4思想品德',
    salary int unsigned comment '工资',
    entry_date date comment '入职日期',
    image  varchar(300) comment '照片',
    create_time datetime comment '创建时间',
    update_time datetime comment '更新时间'
)comment '员工表';

五. 表结构-查询、修改、删除

sql 复制代码
-- 表结构的查询、修改、删除相关语法

-- 查询当前数据库的所有表
show tables;
-- 查询表结构
desc 表名;
-- 查询建表语句
show create table 表名;

-- 添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
-- 修改字段类型
alter table 表名 modify 字段名 新数据类型(长度);
-- 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
-- 删除字段
alter table 表名 drop column 字段名;
-- 修改表名
alter table 表名 rename to 新表名;


-- 删除表
drop table [if exists] 表名;

在删除表时,表中的数据也会被删除。

sql 复制代码
-- 查询当前数据库的所有表
show tables;
-- 查询表结构 desc 表名;
desc emp;
-- 查询建表语句 show create table 表名;
show create table emp;

-- 添加字段 alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
alter table emp add QQ VARCHAR(13) comment 'QQ号';
-- 修改字段类型 alter table 表名 modify 字段名 新数据类型(长度);
alter table emp modify QQ VARCHAR(20);
-- 修改字段名和字段类型 alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
alter table emp change QQ QQ_NUM VARCHAR(20) comment 'QQ号';
-- 删除字段
alter table emp drop column QQ_NUM;
-- 修改表名 alter table 表名 rename to 新表名;
alter table emp rename to employee;

-- 删除表 drop table [if exists] 表名;
drop table if exists employee;
相关推荐
一个天蝎座 白勺 程序猿1 小时前
自动SQL优化实战|吃透调优接口+报告配置+统计+索引全流程落地
数据库·sql·sql优化
要开心吖ZSH2 小时前
处方物流信息同步优化:从 36 秒到亚秒级的踩坑记录
java·数据库·mysql·性能优化
隐形的萝莉2 小时前
再回到技术面,研究 T-SQL 的 UNION、EXISTS、EXCEPT、INTERSECT 运算符。
数据库·sql
吴声子夜歌3 小时前
SQL进阶——窗口函数进行行间比较
数据库·sql
yoothey3 小时前
MySQL 数据库连接池调优实战
数据库·mysql
Tian_Hang3 小时前
Eclipse Mosquitto 安装及介绍
java·运维·服务器·ide·sql·mysql·eclipse
南墙上的石头15 小时前
麒麟 V10 重装人大金仓 V8R6 踩坑实录(含 MySQL 兼容模式)
数据库·mysql
执子手 吹散苍茫茫烟波18 小时前
RC 隔离级别下 MySQL InnoDB 死锁典型案例
数据库·mysql
峥无21 小时前
深入理解MySQL事务与MVCC机制
数据库·mysql
要开心吖ZSH1 天前
MVCC 进阶:快照读 vs 当前读、幻读与 Next-Key Lock
java·数据库·sql·mysql·mvcc