讲解SQL语句三大分类和每个分类的SQL使用入门。

使用的是数据库是:MySQL 8.0.27

1.SQL分类  

DDL(Data Definition Language)语句:数据定义语句。

用途:是对数据库对象(数据库、表、列、索引等)进行创建、删除、修改等。

常用关键字:create、drop、alter等。

DML(Data Manipulation Language)语句:数据操纵语句。

用途:用于添加、修改、删除和查询数据库记录,并检查数据完整性。

常用关键字:insert、update、delete、select等。

DCL(Data Control Language)语句:数据控制语句。

用途:控制数据库、表、字段、用户的访问权限和安全级别

常用关键字:grant、revoke等

2.DDL语句

DDL语句是用于操作数据库对象的,其中数据库对象包含数据库本身(database)、表(table)、列(column)、索引(index)、约束(constraint)、视图(view)、触发器(trigger)、存储过程(StoredProcedure)和函数(function)。

在此入门课程只讲解数据库(database)和库表(table)。

为什么一直都在中文后加上括号英文说明呢?因为sql 语句要用,先混个眼熟。

全程命令操作,让注意力更专注于指令输入和结果输出。

2.1.DDL之操作

先连接上数据库

1)创建数据库

create database mydb;

这是最简单的创建数据库语句。

2)查看当前连接有哪些数据库

show databases;

可以看到除了刚创建的mydb 还有其他的数据库。

简单说明这些数据库是干嘛用的。

用户库:就是自己刚刚创建的 mydb

系统库:

--每个用户都可以看到自己的
information_schema:存储系统数据库对象信息,包含了用户表信息、列信息、权限信息、字符集信息、分区信息等等。
--普通用户看不到
performance_schema:存储系统性能相关的动态参数表
--普通用户看不到
sys:基于information_schema 和 performance_schema之上,封装了一层更加易于调优和诊断的系统视图(系统层的视图)
--普通用户看不到
mysql:存储系统的用户权限信息

3)查询建库SQL语句

show create database mydb \G;

4)使用数据库

use mydb;

只有选择了使用mydb 数据库,才可以开始对mydb 进行建库表之类的操作

5)删除数据库

drop database mydb;

可以看到mydb 已经被删除了。

到此为止,你已经学会了如何创建数据库,使用数据库,查看当前连接有哪些数据库和删除数据库

2.2.DDL之操作

先把之前删的mydb数据库,创建回来并使用mydb,再查看下mydb 库有没有表在里面

查到没有库表

1)创建数据库表

create table tablename(
列名 数据类型 约束,
列名 数据类型 约束
);

创建person表

create table person( id int primary key,name varchar(30),age int default 0 );

2)查看表设计

desc person;

3)查看建表SQL语句

查看建库和建表SQL 语句都是相类似的,查询的数据库对象不同而已。

"\G" 选项的含义是按照字段竖向排列,为了更好阅读查询结果。

show create table person \G;

可以看到,虽然我们没有指定存储引擎和字符编码,但是建表语句后已经指定了默认存储引擎InnoDB和字符编码utf8mb4。

4)修改表

关键字rename

alter table 旧表名 rename 新表名;

5) 删除表

drop table people;

为了后续操作,再把表建回来……

6)修改表字段

--修改表字段类型
alter table 表名 modify 列名 列的新类型;
--增加表字段
alter table 表名 add column 列名 列的类型;
--删除表字段
alter table 表名 drop column 列名;
--修改字段名
alter table 表名 change 旧列名 新列名 列的类型;
--修改字段排列顺序
在增加表字段或修改表字段后加入:first 或 after 字段名
如:alter table 表名 add column 列名 列的类型 after 列名2;
如:alter table 表名 change 旧列名 新列名 列的类型 first;
所有操作按顺序看图

到此为止,你已经学会了建表、查表、删表、改表和改表字段操作

DDL 入门完成,学习了对数据库和表的基本操作

2.3.DDL之操作索引

索引是对数据库里加了索引的数据预先进行排序,就像书的目录,可以优化查询速度,但是会降低增删改速度,占用磁盘空间。

1)添加索引

用于建表时创建索引

//create只能添加这两种索引;
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)

用于表建好后创建索引(常用)

--增加主键索引:不允许出现相同的值
alter table tab_name add primary key (column_list);
--增加唯一索引:不可以出现相同的值,可以有NULL值
alter table tab_name add unique (column_list);
--增加普通索引:允许出现相同的索引内容
alter table tab_name add index index_name(column_list);
--增加联合索引:将多个字段建到一个索引里,列值的组合必须唯一
alter table tab_name add index index_name (column,column,...);

2)查看索引

--查看表 tab_name 的所有索引信息(如:索引是否唯一,是否允许为null,索引存储的数据类型等信息)
show index from tab_name;

3)删除索引

alter table tab_name drop index index_name;alter table tab_name drop primary key;

3.总结

到目前为止,可以通过DDL语句来操作数据库对象:库、表、索引。

​关注公众号学习更多有关数据库的知识和获取数据库免费电子书​。

MySQL基础之DDL语句的更多相关文章

  1. MySQL 基础(DDL)

    SQL分类         SQL语句主要可以划分为一下3个类别      DDL:数据定义语言,定义数据段.数据库.数据表等      DML :数据操纵语句,用于添加.删除.更新和查询数据库记录 ...

  2. MySQL之使用DDL语句创建表

    一.使用DDL语句创建表 DDL语言全面数据定义语言(Data Define Language) 主要的DDL动词: CREATE(创建).DROP(删除).ALTER(修改) TRUNCATE(截断 ...

  3. mysql基础篇 - SELECT 语句详解

    基础篇 - SELECT 语句详解         SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...

  4. 【MySQL】MySQL基础(SQL语句、约束、数据类型)

    数据库的基本概念 什么是数据库? 用于存储和管理数据的仓库 英文单词为:DataBase,简称DB 数据库的好处? 可以持久化存储数据 方便存储和管理数据 使用了统一的方式操作数据库 -- SQL 常 ...

  5. MySQL基础:DCL语句总结

    SQL语言大致分为DCL.DDL.DML三种,本文主要介绍MySQL 5.7版本DCL语句. 概述 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可 ...

  6. MYSQL基础常见常用语句200条

    数据库 # 查看所有的数据库 SHOW DATABASES ; # 创建一个数据库 CREATE DATABASE k; # 删除一个数据库 DROP DATABASE k; # 使用这个数据库 US ...

  7. MySQL基础----动态SQL语句

    尊重原创:http://blog.csdn.net/abc19900828/article/details/39501643   动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 eg: ...

  8. mysql 学习之 DDl语句

    mysql 1,登入mysq1: mysql -uroot -p  ---->密码隐藏登入好点 2,mysql操作: 创建数据库:create databases test1; 查看数据库:sh ...

  9. MySQL基础之DML语句

    DML 语句 DML(Data Manipulation Language)语句:数据操纵语句. 用途:用于添加.修改.删除和查询数据库记录,并检查数据完整性. 常用关键字:insert.update ...

  10. MySQL的DDL语句、DML语句与DCL语句

    背景:近几年,开源数据库逐渐流行起来.由于具有免费使用.配置简单.稳定性好.性能优良等优点,开源数据库在中低端应用上占据了很大的市场份额,而 MySQL 正是开源数据库中的杰出代表.MySQL 数据库 ...

随机推荐

  1. 基于AHB_BUS SRAM控制器的设计-01

    基于AHB Bus SRAM控制器的设计 1.课程目标 接到一个需求要设计SRAM或者I-cache等,需要问后端要一个Memory Memory Compiler是由后端工程师完成的,Memory ...

  2. Java开发者的Python进修指南:JSON利器之官方json库、demjson和orjson的实用指南

    JSON JSON作为目前最流行的传输格式,在Python中也有相应的实现方式.由于JSON格式的文本可以跨平台并且简单易用,因此被广泛传播.因此,我们今天的主要讨论内容是如何熟练地应用Python的 ...

  3. [转帖]Mnesia reports that this RabbitMQ cluster has experienced a network partition.

    一 问题描述 双节点RabbitMQ集群发生了脑裂,节点日志报错: [error] <0.6318.0> Mnesia(rabbit@pc2): ** ERROR ** mnesia_ev ...

  4. [转帖]Kafka中Topic级别配置

    https://www.cnblogs.com/moonandstar08/p/6139502.html 一.Kafka中topic级别配置 1.Topic级别配置 配置topic级别参数时,相同(参 ...

  5. [转帖]crontab 定时任务,免交互式编写任务文件

    https://www.jianshu.com/p/8eab68bcfc8e 正常添加定时任务是在命令行使用命令 crontab -ecrontab -e编写完的文件怎么找到?文件默认保存在/var/ ...

  6. [转帖]Linux系统安装之后,如何调节CPU性能策略

    https://baize.cc/posts/efc.html#:~:text=Linux%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E4%B9%8B%E5%90%8E% ...

  7. Windows设置一键安装Mysql数据库的方法

    Windows设置一键安装Mysql数据库的方法 前言 因为MySQL数据库的8126 65536 以及3072最大索引长度等问题 研发这边提交的补丁总是出现稀奇古怪的问题. mysql数据库又因为D ...

  8. STM32CubeMX教程24 WDG - 独立窗口看门狗

    1.准备材料 开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) 野火DAP仿真器 keil µVision5 IDE(MDK-Arm ...

  9. R2M分布式锁原理及实践

    作者:京东科技 张石磊 1 案例引入 名词简介: 资源:可以理解为一条内容,或者图+文字+链接的载体. 档位ID: 资源的分类组,资源必须归属于档位. 问题描述:当同一个档位下2条资源同时审批通过时, ...

  10. 【代码分享】使用 terraform, 在 Let's Encrypt 上申请托管在 cloudflare 上的域名对应的证书

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 运行的流程可以抽象为上图. 直接贴代码: letsencr ...