sql基本语法+实验实践

news2024/11/17 17:25:58

sql语法

注释:

  1. 单行
--注释内容

# 注释内容
  1. 多行

    /*
    注释内容
    */
    

数据定义语言DDL

  1. 查询所有数据库

    show databases;
    

    注意是databases而不是database。

  2. 查询当前数据库

    select database();
    
  3. 创建数据库

    create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
    
  4. 删除数据库

    drop database [if exists] 数据库名;
    
  5. 切换数据库

    use 数据库名;
    

表操作

表的查询创建

  1. 查询当前数据库所有表

    show tables;
    

    注意是tables而不是table。

  2. 查看指定表结构

    desc 表名;
    
  3. 查询指定表的建表语句

    show create table 表名;
    
  4. 创建表结构

    create table 表名(
    	字段1 字段1类型 [comment 字段1注释],
    	字段2 字段2类型 [comment 字段2注释],
    	字段3 字段3类型 [comment 字段3注释],
    	......
    	字段n 字段n类型 [comment 字段m注释],
    )[comment 表注释];
    

    注意:[…]内是可选参数,最后一个字段后面没有逗号。

表的修改操作

  1. 添加字段

    alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
    
  2. 修改数据类型

    alter table 表名 modify 字段名 新数据类型(长度);
    
  3. 修改字段名和字段类型

    alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
    
  4. 删除字段

    alter table 表名 drop 字段名;
    
  5. 修改表名

    alter table 表名 rename to 新表名;
    

表的删除操作

  1. 删除表

    drop table [if exists] 表名;
    
  2. 删除指定表,并重新创建表

    truncate table 表名;
    

数据操作语言DML

添加数据

  1. 给指定字段添加数据

    insert into 表名 {字段名1, 字段名2,...} values{值1,2, ..};
    
  2. 给全部字段添加数据

    insert into 表名 values (1,2, ...);
    
  3. 批量添加数据

    insert into 表名 (字段1, 字段2, ...) values (1,2, ...),(1,2, ...);
    
    insert into 表名 values (1,2, ...), (1,2, ...);
    

修改数据

修改数据的具体语法

update 表名 set 字段名1 =1, 字段名2 =2, ..{where 条件};

删除数据

delete from 表名 {where 条件};

数据查询语言DQL

  1. 查询多个字段

    select 字段1, 字段2, 字段3,... from 表名;
    
    select * from 表名;
    

    ​ 注意:*号代表查询多有字段,在实际开发中尽量少用(不直观、影响效率)。

  2. 字段设置别名

    select 字段1 [as 别名1], 字段2 [as 别名2], ... from 表名;
    
    select 字段1 [别名1], 字段2 [别名2], ... from 表名;
    
  3. 去除重复记录

    select distinct 字段列表 from 表名;
    

    实验

    实验要求:
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    实验代码:

SHOW DATABASES;

#1.使用SQL语句创建数据库studentsdb。
CREATE DATABASE if not exists studentsdb;

#2. 使用SQL语句选择studentsdb为当前使用数据库。
USE studentsdb;
/*
12.删除表stu。

13.删除数据库studb。*/


#表student_info
#3.使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。
DROP table student_info;
CREATE TABLE student_info(
	学号 CHAR(4) NOT NULL PRIMARY KEY,
	姓名 CHAR(8) NOT NULL,
	性别 CHAR(2),
	出生日期 DATE,
	家庭住址 VARCHAR(50)
);

#4.使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据,各表数据如表4-表6所示。
INSERT INTO student_info VALUES ('0001','张青平','男','2000-10-01','衡阳市东风路77号'),
	('0002','刘东阳','男','1998-12-09','东阳市八一北路33号'),
	('0003','马晓夏','女','1995-05-12','长岭市五一路763号'),
	('0004','钱忠理','男','1994-09-23','滨海市洞庭大道279号'),
	('0005','孙海洋','男','1995-04-03','长岛市解放路27号'),
	('0006','郭小復','男','1997-11-10','南山市红旗路113号'),
	('0007','肖月玲','女','1996-12-07','东方市南京路11号'),
	('0008','张玲珑','女','1997-12-24','滨江市新建路97号');
	
#7. 使用SQL语句ALTER TABLE为student_info表添加一个名为“备注”的数据列,其数据类型为varchar(50)。
ALTER TABLE student_info ADD 备注 VARCHAR(50);

DESC student_info;
SELECT * FROM student_info;

#表curriculum
DROP TABLE curriculum;
CREATE TABLE curriculum(
	课程编号 CHAR(4) NOT NULL PRIMARY KEY,
	课程名称 VARCHAR(50) NOT NULL,
	学分 INT
);

INSERT INTO curriculum VALUES 
	('0001','计算机应用基础',2),
	('0002','C语言程序设计',2),
	('0003','数据库原理及应用',2),
	('0004','英语',4),
	('0005','高等数学',4);
	
#5. 使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。
UPDATE curriculum SET 课程名称 = '';
SELECT * FROM curriculum;


#表grade
DROP table grade;
CREATE TABLE grade(
	学号 CHAR(4) NOT NULL,
	课程名称 VARCHAR(50) NOT NULL,
	分数 INT
);
ALTER TABLE grade ADD PRIMARY KEY (学号,课程名称);
INSERT INTO grade VALUES 
('0001','0001',80),
('0001','0002',91),
('0001','0003',88),
('0001','0004',85),
('0001','0005',77),
('0002','0001',73),
('0002','0002',68),
('0002','0003',80),
('0002','0004',79),
('0002','0005',73),
('0003','0001',84),
('0003','0002',92),
('0003','0003',81),
('0003','0004',82),
('0003','0005',75);

#6. 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。
ALTER TABLE grade MODIFY 分数 DECIMAL(5,2);
DESC grade;
SELECT * from grade;

#8. 使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。
CREATE DATABASE if not exists studb;
USE studb;
CREATE TABLE stu(
	学号 CHAR(4) NOT NULL PRIMARY KEY,
	姓名 CHAR(8) NOT NULL,
	性别 CHAR(2),
	出生日期 DATE,
	家庭住址 VARCHAR(50)
);
INSERT INTO stu VALUES 
	('0001','张青平','男','2000-10-01','衡阳市东风路77号'),
	('0002','刘东阳','男','1998-12-09','东阳市八一北路33号'),
	('0003','马晓夏','女','1995-05-12','长岭市五一路763号'),
	('0004','钱忠理','男','1994-09-23','滨海市洞庭大道279号'),
	('0005','孙海洋','男','1995-04-03','长岛市解放路27号'),
	('0006','郭小復','男','1997-11-10','南山市红旗路113号'),
	('0007','肖月玲','女','1996-12-07','东方市南京路11号'),
	('0008','张玲珑','女','1997-12-24','滨江市新建路97号');
ALTER TABLE stu ADD 备注 VARCHAR(50);
DESC stu;
SELECT * FROM stu;

#9. 使用SQL语句删除表stu中学号为0004的记录。
DELETE FROM stu WHERE 学号 = '0004';
#10.使用SQL语句更新表stu中学号为0002的家庭住址为“滨江市新建路96号”。
UPDATE stu SET 家庭住址 = '滨江市新建路96号' WHERE 学号 = '0002';
#11.删除表stu的“备注”列。
ALTER TABLE stu DROP 备注;
SELECT * FROM stu;
#12.删除表stu。
DROP TABLE stu;
SHOW TABLES;
#13.删除数据库studb。
DROP DATABASE studb;
SHOW DATABASES;

注意:为了结果可视化,在问题的实现步骤最后都进行了展示数据库、表结构或表数据等。
如果有任何问题欢迎提出!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt中关于信号与槽函数的思考

信号与槽函数的思考 以pushbutton控件为例,在主界面上放置一个pushbutton控件,点击右键选择关联槽函数,关联一个click函数,如下图所示: 在该函数中,实现了一个点击pushbutton按钮后,弹出一个窗…

复制策略深入探讨

在之前的博客中,我们讨论了复制最佳实践和不同类型的复制,例如批量、站点和存储桶。但是,随着所有这些不同类型的复制类型的出现,人们不得不想知道在哪里使用哪种复制策略?从现有 S3 兼容数据存储迁移数据时&#xff0…

部署PhotoMaker通过堆叠 ID 嵌入自定义逼真的人物照片

PhotoMaker只需要一张人脸照片就可以生成不同风格的人物照片,可以快速出图,无需额外的LoRA培训。 安装环境 python 3.10gitVisual Studio 2022 安装依赖库 git clone https://github.com/bmaltais/PhotoMaker.git cd PhotoMaker python -m venv venv…

借助 Aspose.Words,使用 C#、Java、Python 和 C++ 创建 Word 文档

以编程方式创建和操作 Word 文档是许多应用程序的常见要求。幸运的是,有各种编程语言的强大库可以简化此任务。Aspose.Words 就是此类多功能解决方案之一,它是强大的 API,使开发人员能够无缝生成、修改和转换 Word 文件。在这篇博文中&#x…

tomcat下载安装配置教程

tomcat下载安装配置教程 我是使用tomcat下载安装及配置教程_tomcat安装-CSDN博客 此贴来进行安装配置,原文21年已经有些许不同。 下载tomcat 官网:http://tomcat.apache.org/ 我们老师让安装8.5以上,所以我直接选择版本9 点击9页面之后…

定制开发一款家政小程序,应知应会

引言 在这个快节奏的现代生活中,人们对高效、便捷的家政服务的需求日益增加。随着社会结构的变化和职业生活的繁忙,许多家庭面临着时间不足、精力不济的挑战。在这种情况下,家政服务成为解决问题的有效途径。然而,传统的家政服务…

SD-WAN助力企业数据传输安全

随着企业网络需求的不断增长,SD-WAN成为企业网络组网的首选方案,能够实现多种网络拓扑结构的无缝连接,其中包括总部-分支、总部-分支-数据中心、总部-数据中心、总部-分支-云服务等。如何确保企业数据在传输过程中的安全性成为企业关注的重要…

微软广告和网络服务CEO承认OpenAI的Sora将加入Copilot,但需要一些时间

事情的起因是一名网友询问 Sora 是否会加入 Copilot,微软广告和网络服务CEO首席执行官——Mikhail Parakhin 回应说:“最终,但这需要时间。”毕竟投了几十个亿美金进去,不亏是金主爸爸。 图为Mikhail Parakhin Sora是OpenAI开发的…

论文设计任务书学习文档|基于智能搜索引擎的图书管理系统的设计与实现

文章目录 论文(设计)题目:基于智能搜索引擎的图书管理系统的设计与实现1、论文(设计)的主要任务及目标2、论文(设计)的主要内容3、论文(设计)的基本要求4、进度安排论文(设计)题目:基于智能搜索引擎的图书管理系统的设计与实现 1、论文(设计)的主要任务及目标 …

03OpenCV图像的掩膜操作

文章目录 掩膜操作提高图像的对比度获取图像像素制作图像掩膜算子防止像素溢出算子全部代码 掩膜操作提高图像的对比度 红色是中心像素,从上到下,从左到右对每个像素做同样的处理操作,得到最终结果就是对比度提高之后的输出图像Mat对象 注&am…

Google checkstyle实战

概述 CheckStyle检查代码是否符合制定的规范。CheckStyle检查是基于源码的,无需编译,执行速度快。 CheckStyle的主要流程是: 对Java文件进行词法语法分析,生成语法树。载入配置文件(checkstyle-metadata.xml以及自定…

解密逃脱路径判断算法

介绍 在计算机科学领域,有许多有趣的算法问题需要解决。其中之一就是判断在给定条件下是否存在逃脱路径的问题。本篇博客将介绍如何使用广度优先搜索(BFS)算法来解决这个问题。 问题背景 假设有一个二维平面上的迷宫,某人被困在…

【AI绘画·24年1月最新】Stable Diffusion整合包安装!解压即用--秋葉aaaki 大佬的作品,试用

前言 Stable Diffusion 之前费老大的劲部署安装,解决报错。搞完之后,突然发现有个现成集成包可以用,真是效率高到不行,今天搞下来试试 我电脑配置: CPU: 12th Gen Intel Core™ i7-12700F 2.10 GHz 内存32G&#xff0…

解决鸿蒙模拟器卡顿的问题

缘起 最近在学习鸿蒙的时候,发现模拟器非常卡,不要说体验到鸿蒙的丝滑,甚至到严重影响使用的程度。 根据我开发Android的经验和在论坛翻了一圈,最终总结出了以下几个方案。 创建模拟器 1、在DevEco Virtual Device Configurat…

【Go语言】Go语言中的指针

Go语言中的指针 变量的本质是对一块内存空间的命名,我们可以通过引用变量名来使用这块内存空间存储的值,而指针则是用来指向这些变量值所在内存地址的值。 注:变量值所在内存地址的值不等于该内存地址存储的变量值。 Go语言中,…

vue3+vite+ts配置多个代理并解决报404问题

之前配置接口代理总是报404,明明接口地址是对的但还是报是因数写法不对;用了vue2中的写法 pathRewrite改为rewrite 根路径下创建env文件根据自己需要名命 .env.development文件内容 # just a flag ENVdevelopment# static前缀 VITE_APP_PUBLIC_PREFIX"" # 基础模块…

Dockerfile(2) - LABEL 指令详解

LABEL 可以为生成的镜像添加元数据标签信息&#xff0c;这些信息可以用来辅助过滤出特定镜像 LABEL <key><value> <key><value> <key><value> ... 栗子一 # key 加了 " LABEL "com.example.vendor""ACME Incorpor…

【活动】前端世界的“祖传代码”探秘:从古老魔法到现代重构

作为一名前端工程师&#xff0c;我时常在项目中邂逅那些被岁月打磨过的“祖传代码”。它们就像古老的魔法书页&#xff0c;用HTML标签堆砌起的城堡、CSS样式表中的炼金术&#xff0c;以及JavaScript早期版本中舞动的符咒。这些代码承载着先驱们的探索精神和独特智慧&#xff0c…

postman测试接口

1、postman测试接口 &#xff08;1&#xff09;首先安装postman 下载地址&#xff1a;Download Postman | Get Started for Free 选择对应版本下载&#xff0c;然后安装即可 &#xff08;2&#xff09;使用postman发送请求 比如以下这个请求例子&#xff1a; 使用postman发…

ArmV8架构

Armv8/armv9架构入门指南 — Armv8/armv9架构入门指南 v1.0 documentation 上面只是给了一个比较好的参考文档 其他内容待补充