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;

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

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

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

相关文章

备战蓝桥杯Day22 - 计数排序

计数排序问题描述 对列表进行排序,已知列表中的数范围都在0-100之间。设计时间复杂度为O(n)的算法。 比如列表中有一串数字,2 5 3 1 6 3 2 1 ,需要将他们按照从小到大的次序排列,得到1 1 2 2 3 3 5 6 的结果。那么此时计数排序是…

Jetson Xavier NX 开发板Ubuntu18.04 安装arduino IDE详细步骤

Jetson 平台是arch架构,官网上面几乎都是x86或者arm64的这两种错误版本都存在匹配问题无法使用,不要下载不要下载! uname -a #版本查询1.正确下载打开方式 https://downloads.arduino.cc/arduino-1.8.19-linuxaarch64.tar.xz选择自己想要下…

LeetCode #104 二叉树的最大深度

104. 二叉树的最大深度 题目 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root [1,null,2] 输出:2 分析 …

【Godot4自学手册】第十九节敌人的血量显示及掉血特效

这一节,我主要学习敌人的血量显示、掉血显示和死亡效果。敌人的血量显示和主人公的血量显示有所不同,主要是在敌人头顶有个红色的血条,受到攻击敌人的血条会减少,并且有掉血数量的文字显示,效果如下: 一、…

基于springboot+vue的医院后台管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

SMBGhost漏洞技术分析与防御方案

事件分析 最近国内外各安全厂商都发布了SMBGhost(CVE-2020-0796)漏洞的预警报告和分析报告,笔者利用周末休息时间也研究了一下,就算是做一个笔记了,分享给大家一起学习下,目前外面研究的POC大部分是通过SMB压缩数据包长度整数溢出…

如何根据玩家数量和游戏需求选择最合适的服务器配置?

根据玩家数量和游戏需求选择最合适的服务器配置,首先需要考虑游戏的类型、玩家数量、预计的在线时间以及对内存和CPU性能的需求综合考虑。对于大型多人在线游戏,如MMORPG或MOBA等,由于需要更多的CPU核心数来支持更复杂的游戏逻辑和处理大量数…

操作系统|概述|系统分类——笔记

1.1_1操作系统的概念和功能 操作系统的概念 操作系统(Operating System, OS) 是指控制和管理整个计算机系统的 硬件和软件 资源,并合理地组织调度计算机和工作和资源的分配; 1操作系统是系统资源的管理者 以提供给用…

文件的顺序读写函数举例介绍

目录 例1:(使用字符输出函数fputc)例2:(使用字符输入函数fgetc)例3:(使用文本行输出函数fputs )例4:(使用文本行输入函数fgets )例5&a…

Docker基础教程 - 2 Docker安装

更好的阅读体验:点这里 ( www.doubibiji.com ) 2 Docker安装 Docker 的官网地址:https://www.docker.com/,在官网可以找到 Docker Engine 的安装步骤。 下面进行 Docker 环境的安装,正常情况下 Docker …

服务发现:CP or AP?

1 服务发现的意义 为高可用,生产环境中服务提供方都以集群对外提供服务,集群里这些IP随时可能变化,也需要用一本“通信录”及时获取对应服务节点,这获取过程即“服务发现”。 对服务调用方和服务提供方,其契约就是接…

(3)(3.1) FlightDeck FrSky发射器应用程序

文章目录 前言 1 概述 2 Turnkey Packages 3 参数说明 前言 ​Craft and Theory 的 FlightDeck 可让你轻松查看飞行模式、高度、速度、姿态和关键系统警报,包括故障保护和电池错误,如电池不平衡警告和发射机低电量警报。 1 概述 Craft and Theory 的…

【自然语言处理】NLP入门(二):1、正则表达式与Python中的实现(2):字符串格式化输出(%、format()、f-string)

文章目录 一、前言二、正则表达式与Python中的实现1.字符串构造2. 字符串截取3. 字符串格式化输出3.1 %符号格式化字符串1. 一般形式2. 常用格式字符3. 最小宽度和精度4. 进位制和科学计数法5. 多个对象的格式化输出6. 典例 3.2 format()方法格式化字符串1. 一般形式2. 参数传递…

51单片机-(中断系统)

51单片机-(中断系统) 了解51单片机中断系统、中断源、中断响应条件和优先级等,通过外部中断0实现按键控制LED亮灭为例理解中断工作原理和编程实现过程。 1.中断系统结构 89C51/52的中断系统有5个中断源 ,2个优先级,…

WiFi模块引领智能家居革命:连接未来的生活

随着科技的快速发展,智能家居正成为现代生活的一部分,极大地改变了我们与家庭环境互动的方式。其中,WiFi模块作为关键的连接技术,在推动智能家居革命中发挥着不可忽视的作用。本文将深入探讨WiFi模块如何驱动智能家居革命。 设备互…

【探索Linux】—— 强大的命令行工具 P.24(网络基础)

阅读导航 引言一、计算机网络背景1. 网络发展历史 二、认识 "协议"1. 网络协议概念2. 网络协议初识(1)协议分层(2)OSI参考模型(Open Systems Interconnection Reference Model)(3&…

NoSQL--1.虚拟机网络配置

目录 1.初识NoSQL 1.1 NoSQL之虚拟机网络配置 1.1.1 首先,导入预先配置好的NoSQL版本到VMware Workstation中 1.1.2 开启虚拟机操作: 1.1.2.1 点击开启虚拟机: 1.1.2.2 默认选择回车CentOS Linux(3.10.0-1127.e17.x86_64) 7 …

MCU 串口接收环形缓冲区的实现

环形缓冲区 1. 环形缓冲区的特性 1.先进先出 2. 当缓冲区被使用完,且又有新的数据需要存储时,丢掉历史最久的数据,保存最新的数据 现实中的存储介质都是线性的,因此我们需要做一下处理,才能在功能上实现环形缓冲区 …

[计算机网络]--I/O多路转接之poll和epoll

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、poll函…

web漏洞与规避

文章目录 一、XSS 跨站脚本攻击1.1 XSS攻击的主要类型反射型XSS存储型XSSDOM型XSS 1.2 前端开发如何应对XSS 二、CSRF 跨站请求伪造2.1 CSRF例子2.2 前端开发如何应对CSRF 三、SQL 注入3.1 前端如何防御SQL注入 四、前端如何使用CSP 一、XSS 跨站脚本攻击 攻击者通过在受害者的…