首页 > 数据库 >数据库基础三 数据库基本语法(增删改查)(DML与DDL)

数据库基础三 数据库基本语法(增删改查)(DML与DDL)

时间:2023-08-22 16:55:11浏览次数:39  
标签:no -- 改查 数据库 DML stu tea date create

数据库(命令行操作DDL)

(1)创建数据库
-- 1、创建数据库
CREATE DATABASE IF NOT EXISTS change818; -- 建立change818数据库(IF NOT EXISTS可以不写,但是数据库名不能重复)
-- 2、创建数据库并指定字符集
CREATE DATABASE IF NOT EXISTS change818 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
-- 3、查看所有数据库名称
SHOW DATABASES;
-- 4、切换到change818数据库
USE change818;
-- 5、删除数据库
DROP DATABASE IF EXISTS change818; -- 删除change818的数据库(IF EXISTS可以不写,但是数据库名必须存在)

 

数据表设计

名称数据库表
学生表 student
老师表 teacher
课程表 course
成绩表 score

 

(1)学生表
  • 详细设计
字段类型字段名允许空值备注
id int(11) ID 主键、自动增长
stu_no varchar(10) 学生编号  
stu_name varchar(20) 学生姓名  
age tinyint 年龄  
sex char(2) 性别  
create_date datetime 创建日期  

 

创建学生表:

-- 1、创建数据库
CREATE DATABASE IF NOT EXISTS change818; -- 建立change818数据库(IF NOT EXISTS可以不写,但是数据库名不能重复)
-- 2、创建数据库并指定字符集 CREATE DATABASE IF NOT EXISTS change818 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 3、查看所有数据库名称 SHOW DATABASES;
-- 4、切换到change818数据库 USE change818;
-- 5、删除数据库 DROP DATABASE IF EXISTS change818; -- 删除change818的数据库(IF EXISTS可以不写,但是数据库名必须存在)

知识点解析:

1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
2、设置主键、设置非空约束
3、用到基本类型[int tinyint char varchar datetime]
添加列(ALTER TABLE 表名 ADD(列字段 varchar(100));):
语法: ALTER TABLE 表名 ADD(列字段 varchar(100));
ALTER TABLE student ADD(update_date datetime); 
修改列(ALTER TABLE 表名 MODIFY 列字段 CHAR(2);):
语法: ALTER TABLE 表名 MODIFY 列字段 CHAR(2);
ALTER TABLE student MODIFY update_date date;

修改列名(ALTER TABLE 表名 CHANGE 原列字段名 新列字段名 CHAR(2)):

语法: ALTER TABLE 表名 CHANGE 原列字段名 新列字段名 CHAR(2);
ALTER TABLE student change update_date update_date datetime;

删除列(ALTER TABLE 表名 DROP 列名;):

语法: ALTER TABLE 表名 DROP 列名;
ALTER TABLE student DROP update_date;

修改表名称(ALTER TABLE 原表名 RENAME TO 新表名;):

语法: ALTER TABLE 原表名 RENAME TO 新表名;
ALTER TABLE student RENAME TO student1; -- 备注:记得要修改回来,后面会用到student表

数据库表操作(DML)

插入数据(INSERT INTO)

INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_01', '刘一', '22', '男', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_02', '马二', '23', '女', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_03', '张三', '25', '女', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_04', '李四', '21', '男', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_05', '王五', '22', '男', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_06', '赵六', '21', '女', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_07', '朱七', '22', '男', '2023-08-22 00:00:00');
INSERT INTO student (stu_no,stu_name,age,sex,create_date) VALUES ('stu_08', '谢八', '23', '男', '2023-08-22 00:00:00');

修改数据(UPDATE SET)

UPDATE student SET age=23 WHERE stu_no='stu_01'; -- 修改学号为stu_1的年龄
UPDATE student SET age=23,sex='男' WHERE stu_no='stu_02';  -- 修改学号为stu_2的年龄和性别
UPDATE student SET stu_name ='张三三',age=23 WHERE stu_no='stu_03'; -- 修改学号为stu_3的姓名

删除数据(DELETE FROM)

DELETE FROM student WHERE stu_no='stu_08'; -- 删除学号为stu_8的学生,WHERE下一课讲解,如果这里不用WHERE,会删除学生表所有数据
(2)老师表
  • 详细设计
类型字段名允许空值主键
id int(11) ID 主键、自动增长
tea_no varchar(10) 老师编号  
tea_name varchar(20) 老师姓名  
age int(3) 年龄  
sex char(2) 性别  
create_date datetime 创建时间  

创建老师表:
CREATE TABLE teacher (
  id int(11) NOT NULL AUTO_INCREMENT, -- 老师编号,自动增长
  tea_no varchar(10) NOT NULL, -- 老师编号
  tea_name varchar(20) NOT NULL, -- 老师姓名
  age int(3) DEFAULT NULL, -- 年龄
  sex char(2) DEFAULT NULL, -- 性别
  create_date datetime DEFAULT NULL, -- 创建日期
  PRIMARY KEY (id), -- 设置主键
  UNIQUE KEY tea_no (tea_no) -- 唯一约束
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

知识点解析:

1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
2、设置主键、设置非空约束
3、用到基本类型[int char varchar datetime]

数据初始化

INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_01', '刘老师', 35, '男', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_02', '关老师', 38, '男', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_03', '张老师', 41, '男', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_04', '赵老师', 42, '男', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_05', '黄老师', 43, '男', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_06', '曹老师', 40, '男', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_07', '王老师', 25, '女', '2100-08-07 21:18:14');
INSERT INTO teacher (tea_no,tea_name,age,sex,create_date) VALUES ('tea_08', '孙老师', 24, '女', '2100-08-07 21:18:14');
(3)课程表
  • 详细设计
类型字段名允许空值备注
id int(11) ID 主键、自动增长
course_no varchar(10) 课程编号  
course_name varchar(20) 课程名称  
tea_no varchar(10) 老师编号  
create_date datetime 创建时间  
  • 创建表

    CREATE TABLE course (
      id int(11) NOT NULL AUTO_INCREMENT, -- ID,自动增长
      course_no varchar(10) NOT NULL, -- 课程编号
      course_name varchar(20) DEFAULT NULL, -- 课程名称
      tea_no varchar(10) DEFAULT NULL, -- 老师编号
      create_date datetime DEFAULT NULL, -- 创建日期
      PRIMARY KEY (id), -- 主键
      UNIQUE KEY course_no (course_no)-- 唯一约束
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 知识点解析
1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
2、设置主键、设置非空约束
3、用到基本类型[int varchar datetime]
  • 数据初始化
    INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_01', '语文', 'tea_01', '2100-08-07 21:32:06');
    INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_02', '数学', 'tea_02', '2100-08-07 21:32:06');
    INSERT INTO course (course_no,course_name,tea_no,create_date) VALUES ('cou_03', '英语', 'tea_03', '2100-08-07 21:32:06');
    4)成绩表
    • 详细设计
    类型字段名允许空值备注
    id int(11) ID 主键,自动增长
    course_no varchar(10) 课程编号  
    stu_no varchar(20) 学生编号  
    stu_score double(4,1) 学生成绩 默认0.0
    create_date datetime 创建时间  
    • 创建表

      CREATE TABLE score (
        id int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
        stu_no varchar(10) NOT NULL COMMENT '学生学号',
        course_no varchar(10) NOT NULL COMMENT '课程编号',
        stu_score double(4,1) DEFAULT '0.0' COMMENT '学生成绩',
        create_date datetime DEFAULT NULL COMMENT '创建日期',
        PRIMARY KEY (id)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

      知识点解析

      1、创建语法: CREATE TABLE 表名(列名1 列类型,列名2 列类型,列名3 列类型);
      2、设置主键、设置非空约束
      3、用到基本类型[int varchar datetime]

      数据初始化

      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_01', 100.0, '2100-08-07 21:45:23');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_02', 120.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_01', 'cou_03', 115.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_01', 0.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_02', 145.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_02', 'cou_03', 149.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_03', 'cou_01', 85.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_03', 'cou_02', 58.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_04', 'cou_01', 32.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_01', 100.0, '2100-08-07 21:45:23');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_02', 120.0, '2100-08-07 21:45:30');
      INSERT INTO score (stu_no,course_no,stu_score,create_date) VALUES ('stu_05', 'cou_03', 115.0, '2100-08-07 21:45:30');

       

 
 

标签:no,--,改查,数据库,DML,stu,tea,date,create
From: https://www.cnblogs.com/yund/p/17648803.html

相关文章

  • mybatis <foreach>标签动态增删改查方式
    摘要目录<foreach>标签动态增删改查mybatis<foreach>实战有了建表以及插入,当然少不了删除和更新mapper.xml中<foreach&目录<foreach>标签动态增删改查mybatis<foreach>实战有了建表以及插入,当然少不了删除和更新mapper.xml中<foreach>标签使用适用场景 <......
  • 使用docker-compose安装Milvus向量数据库及Attu可视化连接工具
    服务器需要安装docker-compose如何没有安装可以参考这篇博客https://www.cnblogs.com/likecoke/p/17596918.html1、创建宿主机上存储的目录mkdir-p/home/milvus/dbmkdir-p/home/milvus/confmkdir-p/home/milvus/etcd2、下载milvus官网的docker-compose.yml文件wgethtt......
  • C#,连接数据库字符串汇总
     //-------------------SQLServer连接数据库字符串-------------20161216-----------------------------DataSource=服务器地址;InitialCatalog=数据库名;UserID=sa;Password=sa //-------------------ACCESS连接数据库字符串----------20161216--------------------......
  • 使用 KubeBlocks 为 K8s 提供稳如老狗的数据库服务
    原文链接:https://forum.laf.run/d/994大家好!今天这篇文章主要向大家介绍Sealos的数据库服务。在Sealos上数据库后端服务由KubeBlocks提供,为用户的数据库应用保驾护航。无论你是在公有云还是本地环境中使用,Sealos都能为你管理关系数据库、NoSQL、向量数据库和流数据库等......
  • 数据库设计规范-设计格式合理
    数据库通用面试(三)原创 Suren 婺青年 2023-08-1411:14 发表于上海收录于合集#面试14个#数据库5个#sql7个数据库范式详解数据库范式:让你的数据库更规范、更高效你知道什么是数据库范式吗?为什么要用数据库范式呢?数据库范式又有哪些呢?如果你对这些问题感到困惑......
  • 关于数据库配置时区问题
    运行代码时,报如下错误ERRORcom.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException-HikariPool-1-Exceptionduringpoolinitialization.java.sql.SQLException:Theservertimezonevalue'Öйú±ê׼ʱ¼ä'isunrecognizedorrepresentsmor......
  • MySQL - 数据库设计(表之间的 3 种关联关系)
    表与表之间一般存在三种关系,即一对一,一对多,多对多关系。下面分别就三种关系讲解数据库相关设计的思路和思考过程。一、一对一关系例如,下面的一张表,保存了人的相关信息,有男有女,要求查处所有的夫妻。sql代码:`CREATETABLEIFNOTEXISTSperson(idINTPRIMARYKEYAUTO_INCREM......
  • 【java】[sql]使用Java程序向MySql数据库插入一千万条记录,各种方式的比较,最后发现inse
    转:https://www.cnblogs.com/heyang78/p/11666743.html我的数据库环境是mysqlVer14.14Distrib5.6.45,forLinux(x86_64)usingEditLinewrapper这个数据库是安装在T440p的虚拟机上的,操作系统为CentOs6.5.我的数据表是这样的:CREATETABLE`emp`(`Id`int(11)NOTNU......
  • EFCore多数据库合并查询分页
    EFCore多数据库合并查询分页参照:二个表的数据如何做分页?_两个表排序分页_深圳市热心市民市民的博客-CSDN博客基本情况介绍:由于系统迭代,部分收藏表在老系统的数据库,部分在新api接口的数据库,现在有一个需求是在个人中心展示用户收藏的数据,按照收藏时间倒序排列,因为在APP端实际上......
  • RISC-V公测平台发布 · 数据库在RISC-V服务器上的适配评估
    前言上一期讲到YCSB在RISC-V服务器上对MySQL进行性能测试(RISC-V公测平台发布·使用YCSB测试SG2042上的MySQL性能),在这一期文章中,我们继续深入讨论RISC-V+数据库的应用。本期就继续利用HS-2平台来测试数据库软件在RISC-V服务器上的兼容性。参与此次实验的数据库如下:RedisMongo......