汇总一下基础SQL语句 第一弹

本文章以MySQL为例带你入门SQL语句。

目录

一、 DDL语句

数据库操作

查询所有的数据库

查询当前数据库

创建数据库

删除数据库

使用数据库

表操作

查询当前数据库所有表

查询表结构

查询指定表的建表语句

建表

添加字段

修改数据类型

修改字段名和字段类型

删除字段

修改表名

删除表

删除指定表,并重新创建该表

二、DML语句

给指定字段添加数据

给全部字段添加数据

批量添加

修改数据

删除数据


一、 DDL语句

DDL(数据定义语言)是SQL语言的一个组成部分,用于创建、修改和删除数据库中的各种对象,如表、索引和数据库本身。DDL语句的核心功能是定义数据库的结构。

数据库操作

查询所有的数据库
SHOW DATABASES;

(sql语句不区分大小写,但是安装规范关键字应该大写)

值得一提的是安装MySQL并初始化后,默认会创建以下4个数据库:

1. information_schema 用于存储数据库管理系统(DBMS)中的元数据。元数据指的是有关数据库结构、表、列、索引、视图、权限等的信息,而不是存储实际的数据。它是一个虚拟的数据库,允许用户查询数据库对象的相关信息。

具体来说,information_schema 包含了多个系统视图,用户可以通过这些视图获取不同类型的信息。常见的视图包括:

  1. TABLES: 存储数据库中所有表的信息(如表名、所属数据库等)。

  2. COLUMNS: 存储每个表的字段的信息(如字段名、数据类型、是否可为 NULL、默认值等)。

  3. KEY_COLUMN_USAGE: 存储列和主键、外键等约束的关系。

  4. SCHEMATA: 存储所有数据库的信息。

  5. VIEWS: 存储视图的相关信息。

  6. USER_PRIVILEGES: 存储用户权限的相关信息。

  7. ROUTINES: 存储存储过程和函数的信息。

  8. CONSTRAINTS: 存储表约束的相关信息。

这些视图帮助数据库管理员、开发人员和用户查看数据库的结构,而不需要访问内部的数据存储方式。

2. mysql 用于存储与 MySQL 数据库管理系统本身的配置、权限、用户管理以及系统操作相关的信息。这个数据库包含了一些表,用来管理 MySQL 的基本运行机制和控制用户权限。

3. performance_schema 是一个用于收集数据库性能和诊断信息的系统数据库。它提供了一些表,用来监控和分析数据库的性能、资源消耗、查询执行等情况。

4. sys 是一个由 MySQL 提供的辅助数据库,旨在简化和优化从 performance_schema 和其他系统数据库中收集到的性能和诊断信息的查询。它通过对 performance_schema 中的复杂数据进行封装和抽象,提供了易于理解和使用的视图。它不存储实际数据,而是提供了一些用于性能监控、系统诊断和优化的视图和查询。这些视图和查询简化了对性能数据的访问,并帮助数据库管理员(DBA)快速发现潜在的问题。

查询当前数据库
SELECT DATABASE();

当然首先你要先使用数据库,不然会返回NULL,你可以通过以下命令使用指定的数据库:

USE 数据库名;

如果返回Database changed那么就是执行成功了,如果返回的 ERROR 1049 (42000): Unknown database '数据库名' 就说明没有找到你的数据库名

创建数据库
CREATE DATABASE [IF NO EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序];

中括号里面的内容可以省略,这里我们介绍一下中括号里面的是什么意思:

IF NO EXISTS 就是如果数据库存不存在就创建,已经存在就不创建,如果不加这一段的话你在创建与已存在的数据库名称相同的数据库时会报以下错误 ERROR 1007 (HY000): Can't create database '数据库名'; database exists 表示你的数据库已存在

DEFAULT CHARSET 字符集 用来指定默认字符集,默认字符集是 utf8mb4 (从 MySQL 5.7 开始,utf8mb4 成为默认的字符集。推荐使用utf8mb4)

COLLATE 排序 指定排序方式(MySQL 5.7开始,默认为latin1_swedish_ci)

删除数据库
DROP DATABASE [IF EXISTS] 数据库名;

IF EXISTS用于判断数据库是否存在,不存在会报ERROR 1008 (HY000): Can't drop database 'a'; database doesn't exist

使用数据库

之前已经讲过也就是:

USE 数据库名;

表操作

查询当前数据库所有表
SHOW TABLES;
查询表结构
DESC 表名;
查询指定表的建表语句
SHOW CREATE TABLE 表名;
建表
CREATE TABLE 表名(
    字段1 字段类型 [COMMENT 字段1注释],
    字段2 字段类型 [COMMENT 字段2注释],
    ......
    字段n 字段类型 [COMMENT 字段n注释]
) [COMMENT 表注释];

例如:

idnameagegender
1张三34
2李四35
CREATE TABLE user_info(
    id INT COMMENT '编号',
    name VARCHAT(50) COMMENT '姓名',
    age INT COMMENT '年龄',
    gender VARCHART(1) COMMENT '性别'
) COMMENT ‘用户信息’;
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束]; 

例如:

我们对之前的表添加一个邮箱字段

ALTER TABLE user_info ADD email VARCHAR(50) COMMENT '邮箱';
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度);
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
删除表
PROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建该表
TRUNCATE TABLE 表名;

二、DML语句

主要是对数据进行增加、删除、修改操作。

给指定字段添加数据
INSERT INTO 表名 (字段1,字段2,...) VALUES (值1,值2,...)
给全部字段添加数据
INSERT INTO 表名 VALUES (值1,值2,……);
批量添加
INSERT INTO 表名 (字段1,字段2,...) VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);

INSERT INTO 表名 VALUES (值1,值2,……),(值1,值2,……),(值1,值2,……);
修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2.... [WHERE 条件]; -- 没有条件会修改整张表的数据

例如:

UPDATE tb_user SET email='ansds@163.com' WHERE id=4;
删除数据
DELETE FROM 表名 [WHERE 条件]; -- 没有条件删除整张表的全部数据

DELETE无法删除某一字段的值,想要删除某一字段的值可以使用UPDATE实现:

UPDATE 表名 SET 字段名 = NULL WHERE 条件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值