数据库基本操作:

1.数据库的操作

  1. 查看所有的数据库

show databases;

  1. 创建数据库

create database if not exists 库名;

  1. 删除数据库

drop database if exists 库名;

  1. 选中库 切换当前数据库

use 库名;

  1. 查看创建数据库语句

show create database 库名;

2 .数据表的操作

  1. 查看所有表

show tables;

  1. 创建表

create table if not exists 表名(

列名 类型 【约束】,

列名 类型 【约束】,

....

);

  1. 删除表

drop table if exists 表名;

  1. 查看表结构

desc 表名;

  1. 查看创建表语句

show create table 表名;

练习:

1、创建分类表

分类表名称:category

分类表中有:分类ID和分类名称两个字段

分类ID:cid,为整型,

分类名称:cname,为字符串类型,最大允许填写100长度的字符串

CREATE TABLE IF NOT EXISTS category(

cid INT,

cname VARCHAR(100)

)

2、创建测试表

测试表名称:test1

测试表中有:测试ID和测试时间两个字段

测试ID:tid,为整型

测试时间:tdate,为年月日的日期类型

CREATE TABLE test1(

tid INT,

tdate DATE

)

3、创建学生表

学生表名称:student

学生表中有:学号, 姓名, 年龄, 性别, 邮箱五个字段

学号:sid为整型且最大长度为6

姓名:sname为字符串类型,最大允许填写30长度的字符串

年龄: sage为整型且最大长度为3

性别: ssex为字符串类型,最大允许填写2长度的字符串

邮箱: semail为字符串类型,最大允许填写50长度的字符串

CREATE TABLE student(

sid INT(6),

sname VARCHAR(30),

sage INT(3),

ssex VARCHAR(2),

semail VARCHAR(50)

)

查询表结构

DESC student;

查询创建表语句

SHOW CREATE TABLE student;

删除表

DROP TABLE IF EXISTS test1;

3 修改表操作(了解)

一般修改表结构,最多进行字段的添加操作;

alter table 表名 add 列名 类型(长度) 约束;

作用:修改表添加列.

例如:

#1,为分类表添加一个新的字段为 分类描述 cdesc varchar(20)

ALTER TABLE category ADD cdesc VARCHAR(20);

alter table 表名 modify 列名 类型(长度) 约束;

作用:修改表修改列的类型长度及约束.

例如:

#2, 为分类表的描述字段进行修改,类型varchar(50)

ALTER TABLE category MODIFY cdesc VARCHAR(50);

alter table 表名 change 旧列名 新列名 类型(长度) 约束;

作用:修改表修改列名.

例如:

#3, 为分类表的分类名称字段进行更换 更换为 description varchar(30)

ALTER TABLE category CHANGE cdesc description VARCHAR(30);

alter table 表名 drop 列名;

作用:修改表删除列.

例如:

#4, 删除分类表中description这列

ALTER TABLE category DROP description;

rename table 表名 to 新表名;

作用:修改表名

例如:

#5, 为分类表category 改名成 category2

RENAME TABLE category TO category2;

alter table 表名 character set 字符集(了解);

作用:修改表的字符集

例如:

#6, 为分类表 category 的编码表进行修改,修改成 gbk

ALTER TABLE category CHARACTER SET gbk;3.

3.DML数据操作语言(重点)

DML(Data Manipulation Language)数据操作语言,主要是针对数据表做增、删、改操作。

主要涉及的关键字有:

insert 添加

update 修改

delete 删除

下面以学生表为例给大家讲解这三种操作

1 .添加操作

  • 给指定列添加数据
复制代码
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
  • 给全部列添加数据
复制代码
INSERT INTO 表名 VALUES(值1,值2,…);
此方法不推荐使用,因为无法确保列与值的个数一一对应,容易出错。
注意:
    1. 插入值时要与值的个数, 顺序和字段类型, 以及约束保持一致.
    2. 插入值的长度要小于或等于设置的字段长度.
  • 批量添加数据
复制代码
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
复制代码
#向学生表student中添加一条记录
INSERT INTO student(sid, sname, sage, ssex, semail) VALUES(1, '柳岩', 18, '女', 'liuyan@163.com');
#字段名是否可以省略不写  ==> 可以省略(不建议省略)
INSERT INTO student VALUES(2, '王冰冰', 20, '男', 'bingbing@126.com');
INSERT INTO student VALUES(3, '宝强绿', 50, '人妖王', 'baoqiang@126.com');
​
#批量添加数据
#向学生表中添加多行记录
INSERT INTO student VALUES(4, '黄渤', 18, '男', 'huangbo@163.com'),
(5, '刘涛', 18, '女', 'liutao@163.com'),
(6, '张艺兴', 30, '男', 'xiaomianyang@163.com')

2 .修改操作

  • 修改表数据
复制代码
UPDATE 表名 SET 列名1=值1, 列名2=值2, … [WHERE 条件] ;

注意:

  1. 修改语句中如果不加条件,则将所有数据都修改!

  2. 像上面的语句中的中括号,表示在写sql语句中可以省略这部分

复制代码
#需求: 修改学生表中性别(不添加条件的修改慎用)
UPDATE student SET ssex='男';
​
#需求: 根据sid=1修改这个学生的性别;
UPDATE student SET ssex='女' WHERE sid=1;
/*
思考: 修改时是否可以根据姓名去修改性别, 
如果出现同名的情况, 会出现问题, 修改时不建议根据姓名修改;
要通过sid来修改, 因为sid是唯一的
*/
#同时修改多个字段
UPDATE student SET sage=38, ssex='女' WHERE sid=6;

3 .删除操作

  • 删除数据
复制代码
第一种方式:
    DELETE FROM 表名 [WHERE 条件] ;
第二种方式:
    TRUNCATE table 表名; #将表中的数据清空
复制代码
#需求: 将sid=4删除这个学生信息
DELETE FROM student WHERE sid = 4;
​
#需求:将表中的数据全部删除
DELETE FROM student;
​
#需求:将表中的数据全部清空
TRUNCATE TABLE student;
/*
区别:(面试题)
   delete删除是一行一行删除, 后边可以跟条件, 而truncate删除后不能跟条件
   delete删除是一行一行删除, 删除效率较慢, 而truncate删除是将表中结构删除又重新创建了一张一模一样的表结构, truncate删除效率要高于delete删除
*/
相关推荐
TDengine (老段)21 分钟前
TDengine 常见问题 TOP7
大数据·数据库·时序数据库·常见问题·tdengine·涛思数据
+VX:Fegn089525 分钟前
计算机毕业设计|基于java+ vue共享单车信息系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
mysqloffice1 小时前
数智时代,核心系统数据库架构往哪走
数据库·人工智能
l1t1 小时前
DeepSeek总结的 pgColumnar 1.0-alpha4 发布说明
数据库·postgresql
DBA_G1 小时前
南大通用GBase 8s数据库助力某农商行核心系统投产
数据库
工业涂料百问2 小时前
【环保合规】系列(四)工业涂料碳足迹怎么算?边界定义、因子选择与减排优先级拆解
数据库
wuyk5552 小时前
【Socket 进阶之路】第 7 章 IO 多路复用 select & poll 完整实战|多 fd 监听、超时等待、优缺点横向对比
服务器·开发语言·网络·数据库·物联网
文人sec3 小时前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
Omics Pro3 小时前
上海AI Lab孙思琦×高张阳:虚拟细胞代码库智能体
数据库·人工智能·算法·机器学习·自然语言处理
旺仔不是程序员3 小时前
相关子查询与性能优化:PostgreSQL 逐行执行的代价与 JOIN 重写
数据库·后端·sql