MySQL-DDL语句

一.认识SQL语句


🤡我们在数据库中希望操作数据库中的数据,就需要有和数据库直接沟通的语言,这个语言就是SQL:

  1. SQL称之为结构化查询语言。
  2. 使用SQL编写出来的语句,就称之为SQL语句。
  3. SQL语言克用于对数据库进行操作。

😭事实上,常见的关系型数据库SQL语句都是比较相似的,所以你学会了MySQL中的SQL语句,之后去操作oracle或者其他关系型数据库,也是非常的方便。

🔔SQL语句的常用规范:

  1. 通常关键字使用大写的,比如CREATETABLESHOW等等;
  2. 一条语句结束后,需要以;结尾;
  3. 如果遇到关键字作为表明或者字段名称可以使用````````包裹;

二.SQL语句的分类


😊常见的SQL语句分为四类:

  1. DDL语句:数据定义语句,可以通过DDL语句对数据库或者表进行,创建,删除,修改操作。
  2. DML语句:数据操作语言,可以通过DML语句进行添加,删除,修改等操作。
  3. DQL语句:数据查询语言,可以通过DQL从数据库中查询记录(重点)。
  4. DCL语句:数据控制语言,对数据库,表格的权限进行相关性访问控制操作。

三.DDL之对数据库进行操作


🎯首先我们需要在Navicat的某个数据库下新建一个查询,就可以在查询界面执行相应的SQL语句。

  1. 查看当前所有的数据库;
sql 复制代码
SHOW DATABASES;
  1. 使用某一个数据库
sql 复制代码
USE coderhub;
  1. 查看当前使用的数据库;
sql 复制代码
SELECT DATABASE();
  1. 创建一个数据,但是这样当有了这个数据库的时候会报错的,我们更推荐使用下方的写法。
sql 复制代码
CREATE DATABASE IF NOT EXISTS mycode;
  1. 删除某一个数据库,如果数据库不存在就会报错,我们需要判断是否存在。
sql 复制代码
DROP DATABASE IF EXISTS mycode;
  1. 修改数据库(不常用了解即可)
sql 复制代码
ALTER DATABASE coderhub CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;

四.DDL之对表进行操作


🥴查看当前数据库中有哪些表。

sql 复制代码
SHOW TABLES;

🎪查看某张表的结构。

sql 复制代码
DESC user;

😶‍🌫️创建一张新的表。

sql 复制代码
CREATE TABLE IF NOT EXISTS `grades`(
  name VARCHAR(10),
  age INT,
  height DOUBLE

)

😊删除某张表

sql 复制代码
DROP TABLE IF EXISTS `user`;

🥴创建一个完整的表结构

sql 复制代码
CREATE TABLE IF NOT EXISTS `myuser`(
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(20) UNIQUE NOT NULL,
	level INT DEFAULT 0,
	telPhone VARCHAR(20) UNIQUE NOT NULL
);

五.SQL数据类型-数字类型


👽我们知道不同的数据类型的数据会划分为不同的数据类型,在数据库中也一样,MySQL支持的数据库的书库类型有:数字类型 日期和时间 字符串类型(字符和字节)空间类型和JSON数据类型。

  1. 数字类型:MySQL对数字类型支持的有很多
  1. 浮点数字类型:FLOAT DOUBLE(FLOAT是四个字节,DOUBLE是八个字节)
  2. 精确数据类型:DECIMAL NUMBERIC(DECIMAL是NUMERIC的实现形式)

六.SQL数据类型-日期类型


🤡MYSQL的日期类型也很多

  1. YEARYYYY格式显示范围是19012155,和0000
  2. DATE类型用于具有日期部分但是没有时间部分的值,显示格式是YYYY-MM-DD显示值。
  3. DATETIME用于表示具有时间部分的日期,格式是YYYY-MM-DD hh:mm:ss显示值。
  4. TIMESTAMP数据用于包含日期时间的值,但是范围是UTC的时间范围1970-2038

七.SQL数据类型-字符串类型


😭MySQL的字符串类型表示方式如下:

  1. CHAR类型在创建表时为固定长度,长度可以是0-255之间的任意值,在查询时候会删除后面的空格。
  2. VARCHAR类型的值是可变长度的字符串,长度可以指定0-65535之间的值,在被查询时候不会删除空格。
  3. BINARYVARBINARY类型用于存储二进制字符串,存储的是字节字符串。
  4. BLOB用于存储的二进制类型。
  5. TEXT用于存储大的字符串类型。

八.表约束


😊PRIMARY KEY:主键,在一张表中我们为了区分每一条数据的唯一性,必须有一个字段是永远不会重复的,并且不能为空,这个字段我们通常将它设置为主键。

  1. 主键是表中唯一的索引;
  2. 并且必须是NOT NULL的,如果没有设置NOT NULL,那么MySQL也会隐式设置为NOT NULL
  3. 主键也可以是多列索引,PRMARY KEY(key_part...)我们一般称之为联合主键。
  4. 建议:开发中的组件字段应该是和业务无关的,尽量不要使用业务字段来做主键。

📆UNIQUE:某些字段在开发中我们希望是唯一的,不会重复的,

  1. 比如手机号,身份证号码,这些字段我们使用UNIQUE来约束,使用UNIQUE字段在表中必须是不同的。
  2. UNIQUE索引允许NULL包含的列具有多个值NULL。

🔔NOT NULL:不能为空。

  1. 某些字段我们要求用户必须插入值,不可以为空,这个时候我们就可以使用NOT NULL来约束。

🎯DEFAULT:默认值

  1. 某些字段我们希望在没有设置值的时候给予一个默认值,这个时候我们就可以使用DEFAULT来完成。

🎪AUTO_INCREMENT:自动增长。

  1. 某些字段我们不希望设置值的时候我们可以使用自动增长。

🚨外键也是最常见的一种表约束,等我们讲到多表关系的时候再进行讲解。

九.修改表结构


😊修改表结构:修改表名。

sql 复制代码
ALTER TABLE `myuser` RENAME TO `user`;

👽添加一个新的列

sql 复制代码
ALTER TABLE `user` ADD `publishTime` DATETIME;
ALTER TABLE `user` ADD `updateTime` DATETIME;

😶‍🌫️删除一列数据

sql 复制代码
ALTER TABLE `user` DROP `updateTime`;

🎯修改列的名称

sql 复制代码
ALTER TABLE `user` CHANGE `publishTime` `publishDate` DATE;

🤡修改列的数据类型

sql 复制代码
ALTER TABLE `user` MODIFY `id` INT;

相关推荐
haima9525 分钟前
ubuntu安装chrome无法打开问题
前端·chrome
放逐者-保持本心,方可放逐34 分钟前
XSS 与 CSRF 记录
前端·xss·csrf·浏览器安全
徊忆羽菲34 分钟前
利用HTML5和CSS来实现一个漂亮的表格样式
前端·css·html5
不爱说话郭德纲39 分钟前
Stylus、Less 和 Sass 的使用与区别
前端·css·面试·less·sass·stylus
凄凄迷人1 小时前
如何调试 chrome 崩溃日志(MAC)
前端·chrome·macos·crash
蒙特网站1 小时前
网站布局编辑器前端开发:设计要点与关键考量
前端·javascript·学习·html
理想不理想v1 小时前
前端开发工程师需要学什么?
java·前端·vue.js·webpack·node.js
fhf1 小时前
感觉根本等不到35岁AI就把我裁了
前端·人工智能·程序员
hummhumm1 小时前
第 36 章 - Go语言 服务网格
java·运维·前端·后端·python·golang·java-ee
蒜蓉大猩猩2 小时前
Vue.js - 组件化编程
开发语言·前端·javascript·vue.js·前端框架·ecmascript