3.SQL通用语法及分类(DDL)

文章介绍了SQL的通用语法,包括单行/多行书写、不区分大小写等特点。接着详细讲解了DDL(数据定义语言),涉及数据库的查询、创建(如IFNOTEXISTS和设置字符集)、删除,以及表的操作,如查询表、创建表、数据类型的使用(整数、浮点、字符串、日期时间)和修改、删除表结构等。
摘要由CSDN通过智能技术生成

一、SQL通用语法

1.书写

(1).SQL语句可以单行或多行书写,以分号结尾。
(2).SQL语句可以使用空格/缩进来强化语句的可读性。
(3).MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
(4).注释:

     ·单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
     ·多行注释:/*注释内容*/ 

二、SQL分类

在这里插入图片描述

三、DDL

1.DDL-数据库操作

(1).查询

查询所有数据

SHOW DATABASES;

查询当前数据库

SELECT DATABASE();

(2).创建

CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则];

注意[ ]里的可省略

演示

(1).查询

输入SHOW DATABASES;查询所有数据
在这里插入图片描述
可以看到里面有四个数据库,这四个数据库是安装完毕MySQL之后自带的数据库

(2).创建
1.默认

输入CREATE DATABASE 你好;创建了一个名为你好的数据库
在这里插入图片描述
看到Query OK, 1 row affected (0.01 sec)数据库就创建成功了

我们再次查询一下所有数据库SHOW DATABASES;
在这里插入图片描述

那么我们再创建一个你好数据库会发生什么呢?
在这里插入图片描述
他会回这样一句ERROR 1007 (HY000): Can't create database '你好'; database exists报错,原因是数据库已经存在了
这句话的意思是:不能创建一个’你好’数据库,因为数据库已经存在了

接下来我们输入一句如果数据库已经存在就不要创建了,如果数据库不存在再创建

2.IF NOT EXISTS(如果数据库已经存在就不要创建了,如果数据库不存在再创建)

代码如下:

CREATE DATABASE IF NOT EXISTS 你好;

在这里插入图片描述
在这里插入图片描述

3.设置字符集(default charset 字符集名)

创建一个数据库名字为你好世界字符集为 utf8mb4
代码如下:

CREATE DATABASE 你好世界 default charset utf8mb4;

(3).删除

删除指定数据库

DROP DATABASE [IF EXISTS]数据库名;

注意[ ]里的可省略
IF EXISTS :如果存在则删除

删除世界数据库
代码如下:

DROP DATABASE 世界;

在这里插入图片描述

我们再删除一次不存在的数据库世界试试看会发生什么
在这里插入图片描述
可以看到他报错了

如果不想让他报错可以加上IF EXISTS

(4).使用

代码如下:

USE 数据库名;

我们试试看把!

在这里插入图片描述

USE 你好:指我要切换到你好数据库,来使用这个数据库
Database changged:指数据库发生改变,已经切换到了你好数据库

如果忘了当期处在的数据库怎么办呢?
那么就可以用上面的查询当前数据库
代码如下:

SELECT DATABASE();

在这里插入图片描述

下面是使用另一个数据库并查询的实例:
在这里插入图片描述

总结:DDL-数据库操作

查询:
1.查询所有数据库

 SHOW DATABASES;

2.查询当前数据库

SELECT DATABASE();

创建

CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则];

删除

DROP DATABASE [IF EXISTS]数据库名;

使用

USE 数据库名;

2.DDL-表操作-查询&创建

首先我们先查询一下我们有哪些数据库
在这里插入图片描述

接着我们使用一个数据库(你好)
在这里插入图片描述

(1).查询

查询当前数据库所有表
代码如下:

SHOW TABLES;

在这里插入图片描述
返回了一个Empty set:空的集合

我们再使用系统的数据库试试吧
在这里插入图片描述
在这里插入图片描述
可以看到系统 sys里有好多的表

(2).创建

代码如下:

CREATE TABLE 表名{
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
字段3 字段3类型[COMMENT 字段3注释],
·······
字段n 字段n类型[COMMENT 字段n注释]
}[COMMENT 表注释];

首先我们要查询我们有哪些数据库
在这里插入图片描述

然后我们使用你好世界数据库
在这里插入图片描述

我们创建表(璃月员工表)
在这里插入图片描述

接下来我们开始实践把
我们先创建一个璃月员工表
在这里插入图片描述

验证数据库是否创建完毕
在这里插入图片描述

我们想要查询表里有哪些字段,类型
在这里插入图片描述

我们要展示详细信息
在这里插入图片描述
我来解释一下最后一行是什么东西把
在这里插入图片描述

总结-DDL-表操作-查询&创建

1.查询当前数据库所有表

SHOW TABLES;

2.查询表结构

DESC 表名;

3.查询指定表的建表语句

SHOW CREATE TABLE 表名;

4.创建表

CREATE TABLE 表名{
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
字段3 字段3类型[COMMENT 字段3注释],
·······
字段n 字段n类型[COMMENT 字段n注释]
}[COMMENT 表注释];

3.DDL-表操作-数据类型

MySQL 中的数据类型有很多,主要分为三类,数值类型,字符串类型,日期时间类型。

(1).数值类型

1.整数类型
整数类型含义
TINYINT很小的整数
SMALLINT小的整数
MEDIUMINT中等大小的整数
INT或INTEGER普通大小的整数
BIGINT极大整数值
例一:在一张表中描述用户的年龄

第一种(比较占用内存空间)

年龄 INT,

第二种

年龄 TINYINT,
因为年龄不会出现负数
年龄 TINYINT UNSIGNED,
2.浮点类型
浮点类型(小数)含义
FLOAT(m,n)单精度
DOUBLE(m,n)双精度(m规定DOUBLE的整个长度,n规定小数点后面的长度)
例一:在一张表中描述用户的分数(100.0,85.5,75.5…)
分数 DOUBLE(4,1),

(2).字符串类型

字符串类型含义字节
char(n)固定长度,储存英文字符;储存定长数据,存入数据长度不够自动补上空格,不能包含中文字符1
nchar(n)char(n)多了 一个可储存中文
varchar(n)可变长度,储存英文字符,不能包含中文字符,(常用场景,地址,名称)(节省空间)2
nvarchar(n)varchar(n)多一个可储存中文
text长文本数据
例一:在一张表中描述用户的用户名
用户名 varchar(50),
例二:在一张表中描述用户的性别(男/女)
性别 nchar(1),

(3).日期时间类型

日期时间类型范围格式描述
DATE1000 - 01 - 01至9999 - 12 - 31年 - 月 - 日日期值
TIME-838 : 59 : 59 至 838 : 59 : 59时 :分 :秒时间值或持续时间
YEAR1901 至 2155年份值
DATETIME1000 - 01 - 01 00 : 00 : 00 至 9999 - 12 - 31 23 : 59 : 59年 - 月 - 日 时:分:秒混合日期和时间值
TIMESTAMP1970 - 01 - 01 00 : 00 : 01 至 2038 - 01 - 19 03 : 14 : 07年 - 月 - 日 时:分:秒混合日期和时间值,时间戳
例一:在一张表中描述用户的生日
生日 DATE,

案例:

在这里插入图片描述

我们先创建一个数据库名为员工信息

CREATE DATABASE 员工信息;

在这里插入图片描述

使用数据库员工信息

USE 员工信息;

在这里插入图片描述

创建一张表名为员工信息表

CREATE TABLE 员工信息表(
    -> 编号 INT COMMENT'编号(纯数字)',
    -> 员工工号 VARCHAR(10) COMMENT'工号',
    -> 员工姓名 NVARCHAR(10) COMMENT'姓名',
    -> 性别 NCHAR(1) COMMENT'性别',
    -> 年龄 TINYINT UNSIGNED COMMENT'年龄',
    -> 身份证号 CHAR(18) COMMENT'身份证号',
    -> 入职时间 DATE COMMENT'入职时间'
    -> )COMMENT'员工表';

在这里插入图片描述

我们完成之后查询一下

SHOW TABLES;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.DDL-表操作-修改&删除

(1).修改

1.添加字段

代码结构如下

ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT注释][约束];

案例:
员工信息表添加一个新的字段昵称,类型为varcahr(20)

我们添加的代码为

ALTER TABLE 员工信息表 ADD 昵称 varchar(20);

在这里插入图片描述

好的我们添加成功了,让我们查询一下

DESC 员工信息表;

在这里插入图片描述

2.修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
3.修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT注释][约束];

案例:
员工信息表昵称字段修改为牛逼的名称,类型为varchar(30)

代码如下:

ALTER TABLE 员工信息表 CHANGE 昵称 牛逼的名称 varchar(30) COMMENT'牛逼的名称';

在这里插入图片描述

我们查看一下表结构
在这里插入图片描述

4.删除字段
ALTER TABLE 表名 DROP 字段名;

案例:
员工信息表的字段牛逼的名称删除。

代码如下:

ALTER TABLE 员工信息表 DROP 牛逼的名称;

在这里插入图片描述

接下来我们查看一下

在这里插入图片描述

5.修改表名
ALTER TABLE 表名 RENAME TO 新表名;

案例:
员工信息表改名为璃月员工表

ALTER TABLE 员工信息表 RENAME TO 璃月员工表;

接下来我们查询一下

在这里插入图片描述

6.删除表
DROP TABLES [IF EXISTS] 表名;
7.删除指定表,并重新创建该表(删除表里的数据)
TRUNCATE TABLE 表名;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值