首页 > 数据库 >测试人员必会SQL命令

测试人员必会SQL命令

时间:2024-03-29 14:00:47浏览次数:22  
标签:grade SQL 测试人员 weisi 必会 test TABLE id SELECT

一、数据库相关的SQL

1.创建数据库 test

CREATE DATABASE test;
CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

2.查看数据库创建是否成功

SHOW DATABASES;

3.删除库 test

DROP DATABASE test;

4.进入testdb6 库

USE testdb6 ;

二、表相关的SQL

1.创建test和weisi表

CREATE TABLE test (

id INT(10) NOT NULL UNIQUE PRIMARY KEY ,

uname VARCHAR(20) NOT NULL ,

sex VARCHAR(4) ,

birth YEAR,

department VARCHAR(20) ,

address VARCHAR(50) ,

weisi VARCHAR(20)

);

weisi表

CREATE TABLE weisi (

id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,

stu_id INT(10) NOT NULL ,

c_name VARCHAR(20) ,

test VARCHAR(50) ,

grade INT(10)

);

 

2.显示所有表

SHOW TABLES;

3.复制test表结构,创建新表test2

注:可以有两种方式

CREATE TABLE test2 LIKE test ;

CREATE TABLE weisi2 AS SELECT * FROM weisi WHERE 2=1;

4.复制weisi表结构和数据,创建新表weisi3

CREATE TABLE weisi3 AS SELECT * FROM weisi

5.复制weisi表结构的 id,stu_id,test三个字段,创建新表weisi3

CREATE TABLE weisi3 AS SELECT id,stu_id,test FROM weisi WHERE 1<>1;

6.删除表 test2

DROP TABLE test2 ;

7.同时删除表weisi2和weisi3

DROP TABLE weisi2,weisi3 ;

8.修改test表,添加一个字段test6 (字符类型VARCHAR,长度100,不允许为空)

ALTER TABLE test ADD COLUMN test6 VARCHAR(100) NOT NULL;

9.查看表中的所有字段

DESC test

10.修改test表,删除字段test6

ALTER TABLE test DROP test6

11.把表weisi6,改名为weisi

RENAME TABLE weisi6 TO weisi;

或

ALTER TABLE weisi6 RENAME weisi;

12.把weisi表,改名为 weisi6

ALTER TABLE 旧表名 RENAME TO 新表名 ;

ALTER TABLE weisi RENAME TO weisi681 ;

 

13.修改表weisi,把字段test ,改为test6(字符类型varchar,长度160 )

ALTER TABLE weisi CHANGE test test6 VARCHAR(160);

 

14.在数据库 testdb2 ,创建weisi表,直接拷贝 test库weisi表的数据和结构 ;

CREATE TABLE testdb2.weisi AS SELECT * FROM test.weisi;

三、表中数据相关的SQL

1.向表中插入数据

向表test插入数据

id = 1 ,uname = weisi ,weisi = 2020

INSERT INTO test(id,uname,sex) VALUES(14,"weisi6",2);

 

向表weisi插入数据

id=4,stu_id=11,c_name=weisi,grade=90

id=5,stu_id=12,c_name=lin,grade=100

id=6,stu_id=33,c_name=test,grade=20

INSERT INTO weisi(id,stu_id,c_name,grade) VALUES(4,11,"weisi",90),(5,12,"lin",100),(6,33,"test",20);

SELECT * FROM weisi;

 

造数据 ,把test表的所有数据,插入到 weisi表

字段关系

id 取id

stu_id 取id

c_name 取 uname

test 和 grade字段,给默认值 60

INSERT INTO weisi(id,stu_id,c_name,test,grade) SELECT id,id,uname,60,60 FROM test ;

2.查询表中的数据

#查询test表 id = 1的内容

SELECT * FROM test WHERE id = 1;

#查找weisi表,名称(c_name)包含 “i” 的数据

SELECT * FROM weisi WHERE c_name LIKE '%i%' ;

#查找test表,id 包含 “1” 的数据,按id降序

SELECT * FROM test WHERE id LIKE '%1%' ORDER BY id DESC ;

#查找test表,id 包含 “1” 的数据 ,取id最大的三个

SELECT * FROM test WHERE id LIKE '%1%' ORDER BY id DESC LIMIT 3 ;

#找出weisi表中,分数最高的同学和分数;

SELECT c_name,grade AS "maxvalue" FROM weisi WHERE grade IN (SELECT MAX(grade) FROM weisi ) ;

#找出weisi表中,分数最低的同学和分数;

SELECT c_name,grade AS "minvalue" FROM weisi WHERE grade IN (SELECT MIN(grade) FROM weisi );

#找出test表,sex为空的的数据;

SELECT * FROM test WHERE sex IS NULL ;

#查询test表,有多少行数据

SELECT COUNT(sex) FROM test;

#查询test表,有性别类型数量(sex字段,去重)

SELECT COUNT(DISTINCT sex) FROM test;

#查找weisi表,成绩在80 - 100区间的学生 ;

SELECT * FROM weisi WHERE grade BETWEEN 80 AND 100;

#查找test表,id 为 2,11,12 的数据 ;

SELECT * FROM test WHERE id IN (2,11,12) ;

limit是mysql的语法

select * from table limit m,n

其中m是指记录开始的index,从0开始,表示第一条记录

n是指从第m+1条开始,取n条。

select * from tablename limit 2,4

即取出第3条至第6条,4条记录

#排名3 - 6名的学生 和分数 ;

SELECT c_name,grade FROM weisi ORDER BY grade DESC LIMIT 2,4;

#左连接

SELECT * FROM weisi a LEFT JOIN test b ON a.stu_id=b.id;

#内连接

SELECT * FROM weisi a INNER JOIN test b ON a.stu_id=b.id;

#右连接

SELECT * FROM weisi a RIGHT JOIN test b ON a.stu_id=b.id;

3.修改表中的数据

#更新test表,sex为空的,设置为0(性别未知)

UPDATE test SET sex = 0 WHERE sex IS NULL ;

#关联更新

UPDATE 表1

INNER JOIN 表2  ON 表1.`id_` = 表2.`order_id`

INNER JOIN 表3 ON 表1.`id_` = 表3.`order_id`

SET 表1.`update_time_`= 1650617212846000,

    表2.`update_time_` = 1650617212846000,

    表3.`update_time_` = 1650617212846000

WHERE 表1.user LIKE 'zs%';

 

4.删除表中的数据

#删除 test表,id大于12的数据 ;

DELETE FROM test WHERE id > 12;

#关联删除

DELETE 表1,表2,表3 FROM 表1

INNER JOIN 表2 ON 表1.id_ = 表2.order_id

INNER JOIN 表3 ON 表1.id_ = 表3.order_id WHERE 表1.user LIKE 'zs%';

 

#清空weisi表的数据

TRUNCATE TABLE weisi;

或

DELETE FROM weisi;

 

四、查看数据库版本、字符集

1.查看Mysql版本

SELECT VERSION();

2.修改数据库的字符集

ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.修改表的字符集

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

五、日期时间相关

1.获取当前系统的日期和时间

select now();

2.日期转时间戳

SELECT UNIX_TIMESTAMP('2022-01-01 00:00:00');

如果想得到13位的时间戳,需要再乘以1000

SELECT 1000*UNIX_TIMESTAMP('2022-01-01 00:00:00');

3.sql中实现一个日期减去几天,几个月,几年

SELECT DATE_SUB(NOW(),INTERVAL 1 DAY);#1天前的日期
SELECT DATE_SUB(NOW(),INTERVAL 1 MONTH);#1月前的日期
SELECT DATE_SUB(NOW(),INTERVAL 1 YEAR);#1年前的日期
sql中实现一个日期加上几天,几个月,几年
SELECT DATE_ADD(NOW(),INTERVAL 1 DAY);#1天后的日期
SELECT DATE_ADD(NOW(),INTERVAL 1 MONTH);#1月后的日期
SELECT DATE_ADD(NOW(),INTERVAL 1 YEAR);#1年后的日期

六、使用变量

1. 定义变量:

2. 使用变量

SET @starttime =1000*UNIX_TIMESTAMP('2022-01-01 00:00:00');
SELECT @starttime;

 

七、常见问题汇总

1.插入insert into 语句中字段包含中文时报错

解决:

插入中文时报错的原因可能是字符集设置不正确。请确保数据库、表和列的字符集设置为支持中文的字符集,如utf8或utf8mb4。

(持续更新中...)

标签:grade,SQL,测试人员,weisi,必会,test,TABLE,id,SELECT
From: https://www.cnblogs.com/weisilu/p/18103646

相关文章

  • 摄影跟拍预定系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。项目研究的背景困扰管理层的许多问题当中,摄影跟拍预定管理一定是不敢忽视的一块。但是管理好摄影跟拍预定又面临很多麻烦需要解决,例如有几个方面:第一,往往用户人数都比较多,如何保证能够管理到每一用户;第二,......
  • java.sql.BatchUpdateException: Date truncation: Out of range value for column xx
    报错:java.sql.BatchUpdateException:Datetruncation:Outofrangevalueforcolumnxxxxx原因:xxx列ddl中为stock_num(12,2)数据库值为0.06需要更新为:0.06-0.21就会出现该错误参考:https://www.jb51.net/article/158166.htmhttps://blog.csdn.net/stone_tomca......
  • 在线练测系统(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着信息技术的飞速发展,教育领域也迎来了革命性的变化。在线练习测验系统如8u098的出现,正是这一变革的产物。这类系统提供了一个虚拟的平台,让教师能够设......
  • mysql 8 报错 ERROR 1872 (HY000): Slave failed to initialize relay log info struc
    在MySQL8中遇到错误1872(HY000):Slavefailedtoinitializerelayloginfostruct的问题通常与主从复制配置有关,可能是由于配置问题或者数据不一致导致的。以下是可能的解决方法:检查主从服务器配置:确保主服务器和从服务器的配置信息正确,包括server_id的设置,主服务......
  • java毕业设计玩具租借系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当今社会,随着人们生活水平的提升和消费观念的变化,儿童教育和娱乐逐渐成为家庭支出的重要部分。玩具作为儿童日常生活中不可或缺的元素,伴随着孩子的成长,......
  • java毕业设计微社区综合服务疫情防控管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:自新冠疫情爆发以来,社区作为疫情防控的第一线,承担着居民健康监测、防疫物资分配、疫情信息宣传等重要职责。传统的社区疫情防控多依赖人力进行,存在着信息......
  • java毕业设计无偿献血服务平台(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:无偿献血是一项社会公益活动,对于挽救生命、维护人类健康具有极其重要的意义。然而,在实际操作过程中,献血者往往面临信息不对称、献血地点不便、献血后服务......
  • java毕业设计企业员工自助管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在现代企业管理中,提高管理效率和员工满意度是企业发展的重要目标。随着企业规模的扩大和管理层次的增加,传统的人力资源管理方式已无法满足快速反应和高效......
  • 【数据库】postgresql截取最后一个字符之前的所有字符,如V1.0.0.20230731110947中取V1.
    在PostgreSQL中,我们可以使用position函数和split_part函数来截取最后一个.之前的所有字符。这两个函数都非常有用,尤其是在处理文本数据时。position函数position函数用于查找一个字符串中某个子串的位置。它的语法如下:POSITION(substringINstring)其中,substring是要查找的......
  • Linux安装Mysql
    一、下载 https://downloads.mysql.com/archives/community/ 二、创建用户groupaddmysqluseradd-gmysqlmysql三、安装1、解压 tar-xvfmysql-8.0.28-el7-x86_64.tar.gz2、重新命名mvmysql-8.0.28-el7-x86_64.tar.gzmysql-8.0.283、加入配置root下......