当前位置: 首页 > news >正文

sql基本语法+实验实践

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;#表student_info
#3.使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。
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;
DROP table student_info;#表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;
DROP TABLE curriculum;#表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;
DROP table 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;

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

相关文章:

sql基本语法+实验实践

sql语法 注释: 单行 --注释内容# 注释内容多行 /* 注释内容 */数据定义语言DDL 查询所有数据库 show databases;注意是databases而不是database。 查询当前数据库 select database();创建数据库 create database [if not exists] 数据库名 [default charset 字符…...

Node.js中的并发和多线程处理

在Node.js中,处理并发和多线程是一个非常重要的话题。由于Node.js是单线程的,这意味着它在任何给定时间内只能执行一个任务。然而,Node.js的事件驱动和非阻塞I/O模型使得处理并发和多线程变得更加高效和简单。在本文中,我们将探讨…...

node.js 封装分页查询

node.js封装sql分页查询 方法: /*** 生成分页查询sql* param {string} table 表名* param {number} pageNum 分页页数 * param {number} pageSize 分页条数 * param {object} query 查询对象 例:{id:1,name:小明}* returns sql语句*/ const limit (ta…...

iptables 基本使用

iptables 主要用到两个表:filter 和 nat,其中 filter 表可以用来过滤数据包;nat 可以用来修改数据包的源地址和目的地址。 chain chain 是 table 中对数据包进行匹配的规则,对于 filter 来说 chain 有 INPUT & OUTPUT & …...

食品笔记()

吃东西有时不注意,就容易不舒服,记录下。 辣椒 辣椒真是个让人又爱又恨的东西。 看着想吃,吃着过瘾,吃完容易肚子疼。 主要是这东西本身就会刺激身体,即使是能吃辣的人,也容易造成肠胃发炎。 适量吃些即…...

C++入门和基础

目录 文章目录 前言 一、C关键字 二、命名空间 2.1 命名空间的定义 2.2 命名空间的使用 2.3 标准命名空间 三、C输入&输出 四、缺省参数 4.1 缺省参数的概念 4.2 缺省参数的分类 五、函数重载 5.1 函数重载的简介 5.2 函数重载的分类 六、引用 6.1 引用的…...

一些C语言知识

C语言的内置类型&#xff1a; char short int long float double C99中引入了bool类型&#xff0c;用来表示真假的变量类型&#xff0c;包含true&#xff0c;false。 这个代码的执行结果是什么&#xff1f;好好想想哦&#xff0c;坑挺多的。 #include <stdio.h>int mai…...

代码工具APEX的入门使用(未包含安装)

第一次使用APEX是2019年&#xff0c;这个技术成名已久只是我了解的比较晚。请看Oracle ACE的网站&#xff0c;这就是用APEX做的。实际上有一次我看O记的人操作他们的办公流程&#xff0c;都是用APEX做的。 那一年&#xff0c;我用APEX做了一个CMDB的管理系统。那时候还没有流行…...

负载均衡.

简介: 将请求/数据【均匀】分摊到多个操作单元上执行&#xff0c;负载均衡的关键在于【均匀】。 负载均衡的分类: 网络通信分类 四层负载均衡:基于 IP 地址和端口进行请求的转发。七层负载均衡:根据访问用户的 HTTP 请求头、URL 信息将请求转发到特定的主机。 载体维度分类 硬…...

Git 指令深入浅出【2】—— 分支管理

Git 指令深入浅出【2】—— 分支管理 分支管理1. 常用分支管理指令2. 合并分支合并冲突合并模式 3. 实战演习 分支管理 1. 常用分支管理指令 # 查看本地分支 git branch# 查看远程分支 git branch -r# 查看全部分支 git branch -aHEAD 指向的才是当前的工作分支 # 查看当前分…...

工作流/任务卸载相关开源论文分享

decima-sim 概述&#xff1a; 图神经网络强化学习处理多工作流 用的spark的仿真环境&#xff0c;mit的论文&#xff0c;价值很高&#xff0c;高被引&#xff1a;663仓库地址&#xff1a;https://github.com/hongzimao/decima-sim论文&#xff1a;https://web.mit.edu/decima/co…...

为什么要用Python?

为什么要用Python&#xff1f; Python简单易用&#xff1a;提供大量的简单易用数据结构和内置库&#xff0c;语法结构也很简单易读&#xff0c;不需要使用括号来进行代码块分组&#xff0c;也不需要预声明变量或参数。Python开发效率高&#xff1a;简单易用的前提下&#xff0…...

北京大学发布,将试错引入大模型代理学习!

引言&#xff1a;探索语言智能的新边界 在人工智能的发展历程中&#xff0c;语言智能始终是一个核心的研究领域。随着大语言模型&#xff08;LLM&#xff09;的兴起&#xff0c;我们对语言智能的理解和应用已经迈入了一个新的阶段。这些模型不仅能够理解和生成自然语言&#x…...

Java 设计模式

编程设计模式六大原则 开闭原则&#xff08;Open Close Principle&#xff09;&#xff1a;对扩展开放&#xff0c;对修改关闭。在程序需要进行拓展的时候&#xff0c;不能去修改原有的代码&#xff0c;实现一个热插拔的效果。简言之&#xff0c;是为了使程序的扩展性好&#…...

Kivy和BeeWare 开发APP的优缺点,及其发展历史

Kivy和BeeWare都是流行的Python框架&#xff0c;用于开发移动应用。它们各自有独特的特点和优势&#xff0c;同时也面临一些挑战和限制。下面是对这两个框架的开发优缺点及其发展历史的总结。 Kivy 发展历史 起源&#xff1a;Kivy诞生于2010年&#xff0c;旨在提供一个用于P…...

C++递推

统计每个月兔子的总数 #include<bits/stdc.h> using namespace std; int n,sum0; void f(int); int main() {int a[1000];cin>>n;a[1]1;a[2]2;for(int i3;i<1000;i){a[i]a[i-1]a[i-2];}cout<<a[n];return 0; } void f(int n){}猴子吃桃子 #include<b…...

C++ 面试题

一、基础语法 1. C 和 C的区别 i. C是面向对象的的编程语言&#xff0c;C是面向过程的编程语言 ii. C中的内存分配运算符是new/delete而C 中是malloc和free iii. C中有函数重载而C 中没有 iv. C中新增了引用的概念而C 中只有值和指针 2. struct 和 class的区别 i. struc…...

MySQL之索引详解

华子目录 索引概述优缺点 索引的原理索引的设计原则索引结构B-tree&#xff08;多路平衡查找树&#xff09;BtreeHash 为什么InnoDB存储引擎选择Btree&#xff1f;索引分类聚集索引选取规则 单列索引和多列索引前缀索引创建索引1.创建表时创建索引2.在已经存在的表上创建索引3.…...

Java面试题总结8:springboot

Spring Boot自动配置原理 importConfigurationSpring spi 自动配置类由各个starter提供&#xff0c;使用ConfigurationBean定义配置类&#xff0c;放到META-INF/spring.factories下 使用Spring spi扫描META-INF/Spring.factories下的配置类 如何理解Spring Boot中Starter …...

Android 4.4 以下,OkHttp访问Https报错,设置了sslSocketFactory仍无效的解决方法

背景 Android 4.4 及以下&#xff0c;使用 OkHttp 发送 Https 请求&#xff0c;报以下错误&#xff1a; javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl0x6b712c90: Failure in SSL library, usually a protocol erro…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...