首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL小白入门/每日复习-数据定义语言DDL

DDL(Data Definition Language)

数据定义语言,主要用来创建数据库和数据表

注:文章代码块中[]里面的内容表示可选,|表示或

常用命令如下:

CREATEDATABASE-- 创建新数据库

ALTERDATABASE-- 修改数据库

CREATETABLE-- 创建新表

ALTERTABLE-- 变更(改变)数据库表

DROPTABLE-- 删除表

CREATEINDEX-- 创建索引(搜索键)

DROPINDEX-- 删除索引

1 DDL中和数据库相关的操作

#创建数据库

CREATEDATABASE|SCHEMA [IFNOTEXISTS]database_name;--中括号代表可选

#可以指定编码方式

CREATEDATABASE|SCHEMA [IFNOTEXISTS]database_name DEFAULT CHARACTERSET[=]'charset';

#查看全部数据库

SHOW DATABASES;

#查看指定数据库创建时基本信息

SHOWCREATEDATABASE db_name;

#修改指定数据库编码方式

ALTERDATABASE db_name;

#查看上一步操作的警告信息

SHOW WARNINGS;

#打开某个数据库

USE db_name;

#显示当前数据库

SELECTDATABASE()|SCHEMA();

#删除指定数据库

DROPDATABASE [IFNOTEXISTS] db_name;

2 数据表操作

#一个合法的数据表至少包含一列,可以是0行

#创建数据表语法规范

CREATETABLE[IFNOTEXISTS] tbl_name(

字段名称 字段类型 [完整的约束条件]

字段名称 字段类型 [完整的约束条件]

...

)ENGINE = 存储引擎 CHARSET = 编码方式;

#查看已有表

SHOW TABLES [FROM|IN] database_name [LIKE'pattern'WHEREexpr];

#查看指定表详细信息

SHOWCREATETABLEtbl_name;

#查看表结构

DESCtbl_name;

DESCRIBE tbl_name;

SHOW COLUMNSFROMtbl_name;

#查新表中所有记录(注意和上一条区别)

SELECT*FROMtbl_name;

#删除表

DROPTABLEIF EXISTS tbl_name;

#向表中插入一条记录

INSERT[INTO] tbl_name(id,username,……)VALUES(1,'KING',……);

#添加删除字段

ALTERTABLEusers #建一次表可以执行多次操作

ADD usersexVARCHAR(20) AFTER|FIRST tel;

DROPusersex;

```

#添加删除默认操作

--给email字段添加默认值imooc@qq. com

ALTERTABLEuser2

ALTERemailSETDEFAULT'imooc@qq. com';

--删除age字段的默认值

ALTERTABLEuser2

ALTERageDROPDEFAULT;

#修改字段

# 改类型属性位置用MODIFY

# 改名字类型属性位置用CHANGE

ALTERTABLEtbl_name

MODIFY 字段名称 [字段类型] [字段属性][FIRST|AFTER 字段名称]

ALTERTABLEtal_name

CHANGE 字段名称 字段名称 [字段类型] [字段属性][FIRST|AFTER 字段名称]

#添加删除主键

(如果主键有自增,先去掉自增才能删除主键)

ALTERTABLEtbl_name

ADD PRIMARY KEY (字段名称);

ALTERTABLEtbl_name

DROPPRIMARY KEY;

```

/* 添加删除索引

* 主键索引

* 唯一索引 :避免重复的列

* 常规索引:key或者index设置

* 全文索引:特定引擎下有,快速定位数据*/

ALTERTABLEtbl_name

ADD UNIQUE KEY|INDEX [index_name] 字段名称

#添加时,如果index_name不填,就默认为字段名字。这个名字用作索引

ALTERTABLEtbl_name

DROPindex_name;

--增加一个全文索引 (索引名) 列名

ALTERTABLEdatabase_name.tbl_nameADD FULLTEXT INDEX

字段名 (字段) ;

-- EXPLAIN 分析sq1执行的状况

EXPLAINSELECT*FROMtbl_name;-- 非全文索引

EXPLAINSELECT*FROMtbl_nameWHEREMATCH (字段) AGAINST('刘');

#修改表名

ALTERTABLEtbl_ _name RENAME [TO|AS] new_tbl_name

RENAMETABLEtbl_ name TO new_tbl_name;

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200723A0L75L00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券