MySQL的基础操作

目录

一.数据库的操作

1.显示当前的数据库

2.创建数据库

3.删除数据库

4.选择数据库

补充:

二.表的基础操作

1.常用数据类型:

2.查看表结构

3.创建表

4.删除表

三.表的增删改查

1.新增(Create)

2.查询(Retrieve)

3.修改(Update)

4.删除(Delete)


一.数据库的操作

1.显示当前的数据库

sql 复制代码
SHOW DATABASES;

2.创建数据库

sql 复制代码
CREATE DATABASE database_name;

3.删除数据库

sql 复制代码
DROP DATABASE database_name;

4.选择数据库

sql 复制代码
USE database_name;

补充:

1.创建数据库的时候可以加上**[IF NOT EXISTS]** 关键字,表示此数据库没创建时才创建

sql 复制代码
CREATE DATABASE IF NOT EXISTS database_name;

2.创建数据库的时候可以用**[SET]** 指定编码格式 ,没有指定用默认字符集:utf8

sql 复制代码
CREATE DATABASE IF NOT EXISTS database_name SET utf8mb4;

二.表的基础操作

先了解表的常用数据类型

1.常用数据类型:

  • 整数类型

    • INT/INTEGER: 标准大小的整数,通常使用INT,占用4字节。
    • TINYINT: 很小的整数,占用1字节。
    • SMALLINT: 小整数,占用2字节。
    • BIGINT: 大整数,占用8字节。
  • 浮点数类型

    • FLOAT: 单精度浮点数,占用4字节。
    • DOUBLE: 双精度浮点数,占用8字节。
  • 定点数类型

    • DECIMAL/NUMERIC: 用于存储精确的小数,需要指定精度和范围。
  • 字符串类型

    • CHAR: 定长字符串,最多255个字符。
    • VARCHAR: 变长字符串,最多65535个字符。
    • TEXT: 长文本字符串,最多65535个字符。
    • BLOB: 二进制数据,用于存储大型数据。
  • 日期和时间类型

    • DATE: 日期,格式为'YYYY-MM-DD'。
    • TIME: 时间,格式为'HH:MM:SS'。
    • DATETIME: 日期和时间,格式为'YYYY-MM-DD HH:MM:SS'。
    • TIMESTAMP: 时间戳,存储从1970年1月1日以来的秒数。
  • 枚举和集合类型

    • ENUM: 用于存储枚举值,可从指定的值列表中选择一个。
    • SET: 用于存储多个枚举值,可从指定的值列表中选择多个。
  • 空间数据类型

    • GEOMETRY: 用于存储几何图形对象的数据类型。

2.查看表结构

sql 复制代码
DESC table_name;

3.创建表

sql 复制代码
CREATE TABLE table_name(
   field1 datatype,
   field2 datatype,
   field3 datatype,
   ......
);
//field1    意思是字段,表示你为该字段取的名
//datatype  表示该字段的数据类型

注:可以使用[**comment]**增加字段说明,示例如下:

sql 复制代码
create table student(
   id int,
   name varchar(20) comment '姓名',
   password varchar(30) comment '密码',
   age int,
   sex varchar(1),
   birthday timestamp,
   resume text
);
   

4.删除表

sql 复制代码
DROP TABLE table_name;

注:同样可以使用**[if exists]**,示例如下:

sql 复制代码
drop table if exists student;

三.表的增删改查

1.新增(Create)

首先创造一张新表:

sql 复制代码
DROP TABLE IF EXISTS student;
CREATE TABLE student (
   id INT,
   sn INT comment '学号',
   name VARCHAR(20) comment '姓名',
   qq_mail VARCHAR(20) comment 'QQ邮箱'
);

1)单行数据 + 全列插入

sql 复制代码
INSERT INTO student VALUES(100,200,'小明',null);

2)多行数据 + 指定列插入

sql 复制代码
INSERT INTO student (id,sn,name) VALUES
    (100,200,'小明'),
    (101,201,'小张');

2.查询(Retrieve)

首先创造一张新表

sql 复制代码
DROP TABLE IF EXISTS student;
CREATE TABLE student (
   id INT,
   sn INT comment '学号',
   name VARCHAR(20) comment '姓名',
   math DECIMAL(3,1),
   english DECIMAL(3,1),
   chinese DECIMAL(3,1),
);

1)全列查询

sql 复制代码
SELECT * FROM student;

2)指定列查询

sql 复制代码
SELECT id, name, math FROM student;

3)别名

sql 复制代码
SELECT name, math+chinese+english as 总分 from student;

//as可以省略

4)去重:DISTINCT

sql 复制代码
SELECT DISTINCT math FROM student;

//对math这列数据进行去重处理

5)排序:ORDER BY

sql 复制代码
SELECT * FROM student order by math;

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC

6)条件查询:WHERE

  1. 基本的条件查询

    sql 复制代码
    SELECT * FROM table_name WHERE condition;
    
    //在这个查询中,table_name 是你要查询的表名,condition 是你指定的条件。查询将返回满足条件的所有列。
  2. 条件运算符

    • =:等于
    • !=<>:不等于
    • <:小于
    • >:大于
    • <=:小于等于
    • >=:大于等于
    • BETWEEN:在指定范围内
    • IN:在指定值列表内
    • LIKE:模糊匹配
  3. 逻辑运算符

    • AND:逻辑与
    • OR:逻辑或
    • NOT:逻辑非
  4. 模糊查询

    • %:匹配零个或多个字符
    • _:匹配单个字符
  5. 限制结果集:LIMIT

sql 复制代码
// 从 0 开始,筛选 n 条结果
SELECT * FROM student  LIMIT n;

//从 s 开始,筛选 n 条结果
SELECT * FROM student  LIMIT s,n;

//从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT * FROM student  LIMIT n OFFSET s;

3.修改(Update)

sql 复制代码
UPDATE student SET math=math*2;

UPDATE student SET english=88 where name='小明';

4.删除(Delete)

sql 复制代码
// 删除小明的数据
DELETE FROM student WHERE name='小明';

// 删除整表数据
DELETE FROM student;
相关推荐
vvvae12343 小时前
分布式数据库
数据库
雪域迷影4 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
bug菌¹4 小时前
滚雪球学Oracle[4.2讲]:PL/SQL基础语法
数据库·oracle
逸巽散人5 小时前
SQL基础教程
数据库·sql·oracle
月空MoonSky5 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle
momo小菜pa5 小时前
【MySQL 06】表的增删查改
数据库·mysql
向上的车轮6 小时前
Django学习笔记二:数据库操作详解
数据库·django
编程老船长6 小时前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
全栈师7 小时前
SQL Server中关于个性化需求批量删除表的做法
数据库·oracle
Data 3177 小时前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop