数据库的基本操作(创建数据库、表)

一、DDL与DML操作

(1)DDL——数据定义语言

        DDL用于定义数据库结构,包括创建、修改和删除数据库、表等对象

①数据库

数据库的基本操作:

-- 创建数据库
CREATE DATABASE IF NOT EXISTS mydb;

-- 查看所有数据库
SHOW DATABASES;

-- 选择数据库
USE mydb;

-- 修改数据库字符集
ALTER DATABASE mydb CHARACTER SET utf8mb4;

-- 删除数据库
DROP DATABASE IF EXISTS mydb;

IF NOT EXISTS: 用于避免创建已存在的数据库时报错,简单来说,无则创建,有则什么都不做

utf8mb4: 是一种字符集

IF EXISTS: 用于避免删除不存在的数据库时出错

②表

创建表
CREATE TABLE [IF NOT EXISTS] 表名 (
     列名1 数据类型 [约束],
     列名2 数据类型 [约束],
     ...
     [表级约束]
);

在这里举例创建一个表

-- 创建学⽣表
CREATE TABLE IF NOT EXISTS students (
     id INT,
     name VARCHAR(50),
     age INT,
     gender VARCHAR(10),
     birthday DATE
);

可以通过语句查看表结构

SELECT * FROM students

这时候眼尖的就会发现,数据类型怎么不一样,有什么区别吗?

好,接下来我来了解一下数据类型

数据类型

数据类型有很多很多,大致可以分为三类:①数字类型 ②字符串类型 ③日期类型

①数字类型:INT(整数类型)、TINYINT(小整数)、SMALLINT(小整数)、BIGINT(大整数)、FLOAT(单精度浮点数)、DOUBLE(双精度浮点数)、DECIMAL(M,D) :定点数,M是总位数,D是⼩数位数

②字符串类型:CHAR(n)(固定⻓度字符串,n最⼤为255)、VARCHAR(n)(可变⻓度字符串)、TEXT(⽂本类型)、LONGTEXT(⻓⽂本类型)、ENUM(枚举类型)

③日期类型:DATE(⽇期类型,格式为'YYYY-MM-DD')、TIME(时间类型,格式为'HH:MM:SS')、DATETIME(⽇期时间类型,格式为'YYYY-MM-DD HH:MM:SS')、YEAR(年份类型,格式为'YYYY')

表的其他操作
-- 查看表结构    DESCRIBE 表名; 或 DESC 表名;
DESC students;

-- 查看表创建语句    SHOW CREATE TABLE 表名;
SHOW CREATE TABLE students;

-- 删除表    DROP TABLE [IF EXISTS] 表名;
DROP TABLE IF EXISTS students;
修改表结构
-- 添加列    ALTER TABLE 表名 ADD 列名 数据类型 [约束];
ALTER TABLE students ADD email VARCHAR(100);

-- 修改列    ALTER TABLE 表名 MODIFY 列名 新数据类型 [新约束];
ALTER TABLE students MODIFY age TINYINT;

-- 重命名列    ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];
ALTER TABLE students CHANGE email student_email VARCHAR(100);

-- 删除列    ALTER TABLE 表名 DROP 列名;
ALTER TABLE students DROP student_email;

-- 重命名表    ALTER TABLE 表名 RENAME TO 新表名;
ALTER TABLE students RENAME TO tb_students;

(2)DML——数据操纵语言

DML主要应用于操作数据库中的数据,包括插入。更新和删除数据

数据插入

①插入单行数据: INSERT INTO 表名 (1, 2, ...) VALUES (1, 2, ...);

②插入多行数据: INSERT INTO 表名 (1, 2, ...) VALUES (1, 2, ...), (值1, 2, ...), ...;

③插入查询结果: INSERT INTO 表名 (1, 2, ...) SELECT 1, 2, ... FROM 其他表;

-- 插⼊单⾏数据
INSERT INTO students (id, name, age, gender) VALUES (1, '张三', 20, '男');

-- 插⼊多⾏数据
INSERT INTO students (id, name, age, gender) VALUES
(2, '李四', 22, '男'),
(3, '王五', 21, '⼥');

-- 插⼊查询结果
INSERT INTO students_bak (id, name, age) SELECT id, name, age FROM student
s;

数据修改

更新数据: UPDATE 表名 SET 1=1, 2=2, ... [WHERE 条件];

        这里需要注意的是,如果不加WHERE条件,将更新表中所有行

-- 更新单⾏数据
UPDATE students SET age=23 WHERE id=1;

-- 更新多⾏数据
UPDATE students SET age=age+1 WHERE gender='男';

-- 更新所有⾏
UPDATE students SET status=1;

数据删除

删除数据: DELETE FROM 表名 [WHERE 条件];

        这里需要注意的是,如果不加WHERE条件,将删除表中所有行

截断表: TRUNCATE TABLE 表名; ,删除所有数据且⽆法回滚

        这个与上面的区别简单来说,就是假如有一列数据是从1开始自增的,通过上面的删除方式删除后,再往表中添加数据,数据将会跟着上一次删除的尾部递增;而用下面这个删除方式,则会从1开始

-- 删除单⾏数据
DELETE FROM students WHERE id=1;

-- 删除多⾏数据
DELETE FROM students WHERE age > 22;

-- 删除所有数据
DELETE FROM students;

-- 截断表
TRUNCATE TABLE students;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值