MySQL基础之DDL语句

曾经终败给现在 2023-10-03 18:02 77阅读 0赞

讲解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之操作**库**

先连接上数据库

33726cc178ddbe801a4827da112970db.png

1)创建数据库

  1. create database mydb;

b82ffdc7d9a76a84bb1c98ec93f6a2e9.png

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

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

  1. show databases;

7b47572fc6759a33dae2d42987f71448.png

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

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

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

系统库:

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

3)查询建库SQL语句

  1. show create database mydb \G;

bb2449ca5cb079cb3fed5e44cd7d7de8.png

4)使用数据库

  1. use mydb;

352430ea27804f783a06ed9ba95ea37c.png

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

5)删除数据库

  1. drop database mydb;

fabbac1f9d6d3fa01de90353e8d7f8b5.png

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

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

2.2.DDL之操作**表**

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

ab881765bb8bb4db5ef7fd5c39b940ba.png

查到没有库表

1)创建数据库表

  1. create table tablename(
  2. 列名 数据类型 约束,
  3. 列名 数据类型 约束
  4. );

创建person表

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

2)查看表设计

  1. desc person;

9937d78ae7702696ab41eb0ac166b810.png

3)查看建表SQL语句

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

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

  1. show create table person \G;

d65874b90d98a9700eaf44cf18706a0f.png

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

4)修改表**名**

关键字rename

  1. alter table 旧表名 rename 新表名;

f4f9dec3b3549dd600f75c9308e7c9ff.png

5) 删除表

  1. drop table people;

dfd85096abe752679a52c02bf38c41e4.png

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

6)修改表字段

  1. --修改表字段类型
  2. alter table 表名 modify 列名 列的新类型;
  3. --增加表字段
  4. alter table 表名 add column 列名 列的类型;
  5. --删除表字段
  6. alter table 表名 drop column 列名;
  7. --修改字段名
  8. alter table 表名 change 旧列名 新列名 列的类型;
  9. --修改字段排列顺序
  10. 在增加表字段或修改表字段后加入:first after 字段名
  11. 如:alter table 表名 add column 列名 列的类型 after 列名2;
  12. 如:alter table 表名 change 旧列名 新列名 列的类型 first;

所有操作按顺序看图

59d2fac4e02a52e4174204f0ada4ea68.png

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

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

2.3.DDL之操作**索引**

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

1)添加索引

用于建表时创建索引

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

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

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

ea351ec741e1eb87698b8013f8df89ac.png

2)查看索引

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

61835adb1029c73a0085bc4ed83b060b.png

3)删除索引

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

151d95a99d57c723d4afc0a2da0424a2.png

3.总结

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

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

0a859ea70c3c922e7d1b65908cfb0ef5.png

发表评论

表情:
评论列表 (有 0 条评论,77人围观)

还没有评论,来说两句吧...

相关阅读