【MySQL】SQL语言

【MySQL】SQL语言



前言

本篇文章将讲到SQL语言,包括SQL的通用语法,SQL的分类,以及SQL语言的DDL,DML,DQL,DCL。


一、SQL的通用语法

在学习具体的SQL语句之前,先来了解一下SQL语言的通用语法。
1). SQL语句可以单行或多行书写,以分号结尾。
2). SQL语句可以使用空格/缩进来增强语句的可读性。
3). MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4). 注释:
单行注释:-- 注释内容 或 # 注释内容
多行注释:/* 注释内容 */

二、SQL的分类

SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。

在这里插入图片描述


三、SQL

DDL

Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段)

  • 数据库操作

1). 查询所有数据库

show databases;

2). 查询当前数据库

select database();

3).创建数据库

create database [if not exists] 数据库名 [default charset 字符集][collate 排序规则];

在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。
可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不
创建。
创建一个student数据库,并指定字符集

create database student default charset utf8mb4;

4). 删除数据库

drop database [if exists] 数据库名;

5). 切换数据库

use 数据库名;

我们要操作某一数据库下的表时,就需要通过该指令,切换到对应数据库下,否则是不能操作的比如,切换到student数据库,执行如下SQL:

use student;

  • 表操作

表操作- 查询创建

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

show tables;

比如,我们切换到sys这个系统数据库,并查看该系统数据库中的所有表结构

use sys;
show tables;

2). 查看指定表结构

desc 表名

通过这条指令,我们可以查到指定表的字段,字段类型,是否可以为NULL,是否存在默认值等信息。
在这里插入图片描述

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

show create table 表名;

通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。
在这里插入图片描述

4). 创建表结构

create table 表名(
	字段1 字段1类型 [COMMENT 字段1注释],
	字段2 字段2类型 [COMMENT 字段2注释],
	字段3 字段3类型 [COMMENT 字段3注释],
	......
	字段n 字段n类型 [COMMENT 字段n注释][comment 表注释];

注意:[…]内为可选参数,最后一个字段后面没有逗号

比如,我们创建一张表 tb_user ,对应的结构如下,那么建表语句为:
在这里插入图片描述


create table tb_user(
	id int comment ' 编号',
	name varchar(50) comment ' 姓名',
	age int comment ' 年龄',
	gender varchar(1) comment ' 性别'
) comment '用户表';

表操作- 数据类型

在上述的建表语句中,我们在指定字段的数据类型时,用到了int ,varchar,那么在MySQL中除了
以上的数据类型,还有哪些常见的数据类型呢? 接下来,我们就来详细介绍一下MySQL的数据类型。
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

1). 数值类型
在这里插入图片描述

如:
1). 年龄字段 — 不会出现负数,而且人的年龄也不会太大
age tinyint unsigned
2). 分数 — 总分100 分,最多出现一位小数
score double(4,1)

2). 字符串类型

在这里插入图片描述

char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和 字段值的长度无关
。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性 能会更高些。
如:
1)用户名 usename ---->长度不定,最长不会超过50
usename varchar(50)
2) 姓名 gender ---->存储值,不是男,就是女
gender char(1)
3) 手机号 phone ----> 固定长度为 11
phone char(11)

3). 日期时间类型
在这里插入图片描述

如:
1)生日字段 birthday
birthday date
2) 创建时间 createtime
createtine datetime

表操作- 修改
1). 添加字段

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

为emp 表增加一个新的字段‘昵称’为‘nickname’,类型为varchar(20)

alter table emp add nickname varchar(10) comment '昵称';

2). 修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

3). 修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释] [约束]

比如,将emp表的nickname字段修改为usename,类型为varchar(30)

alter table emp change nickname usename varchar(30) comment '昵称';

4).删除字段

ALTER TABLE 表名 DROP 字段名

比如,将表的字段username删除

alter table emp drop usename;

5).修改表名

ALTER TABLE 表名 RENAME TO 新表名;

比如,将emp表的表名改为employee

alter table emp rename to employee;

表操作- 删除
1). 删除表

Drop TABLE [
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值