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;
相关推荐
sz-lcw1 小时前
MySQL知识笔记
笔记·mysql·adb
牛奶咖啡132 小时前
关系数据库MySQL的常用基础命令详解实战
数据库·mysql·本地远程连接到mysql·创建mysql用户和密码·修改mysql用户的密码·设置mysql密码的使用期限·设置和移除mysql用户的权限
没有bug.的程序员3 小时前
MVCC(多版本并发控制):InnoDB 高并发的核心技术
java·大数据·数据库·mysql·mvcc
什么半岛铁盒5 小时前
C++项目:仿muduo库高并发服务器-------Channel模块实现
linux·服务器·数据库·c++·mysql·ubuntu
muxin-始终如一6 小时前
MySQL与Redis面试问题详解
数据库·redis·mysql
歪歪1007 小时前
如何在SQLite中实现事务处理?
java·开发语言·jvm·数据库·sql·sqlite
博睿谷IT99_8 小时前
SQL SELECT 语句怎么用?COMPANY 表查询案例(含条件 / 模糊 / 分页)
数据库·sql·mysql
浅拾光º9 小时前
mysql字符串截取,如何在MySQL备份文件中安全截取敏感字符串?
数据库·mysql·安全
鸠摩智首席音效师9 小时前
如何删除 MySQL 数据库中的所有数据表 ?
数据库·mysql·oracle
leo_yu_yty9 小时前
Mysql DBA学习笔记(客户端常用工具)
学习·mysql·dba