北京建网站的价格,重庆建设工程管理网,网站重购,百度广州给做网站公司前言
直接上干货
数据定义语言(DDL) 主要负责数据库、数据表、视图、键、索引等结构化的操作 常用的语句有#xff1a;CREATE DATABASE、CREATE TABLE、ALTER TABLE等 字段的常用约束有#xff1a;PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、AUTO_INCREMENT、DEFAULT 常…前言
直接上干货
数据定义语言(DDL) 主要负责数据库、数据表、视图、键、索引等结构化的操作 常用的语句有CREATE DATABASE、CREATE TABLE、ALTER TABLE等 字段的常用约束有PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、AUTO_INCREMENT、DEFAULT 常用的数据定义语言示例如下
-- 【1、数据库操作】
-- 创建数据库
-- 字符集字符串存储方式DEFAULT CHARACTER SET定义字符集,mb4就是most bytes 4的意思兼容Emoji
-- 校对规则字符串比较方式COLLATE定义校对规则,general表示遗留的校对规则不可扩展但效率高,ci(case insensitive)表示大小写不敏感
-- 字符集和校对规则都有4个级别的设置服务器级、数据库级、数据表级、字段级CREATE DATABASE IF NOT EXISTS db_demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 删除数据库
DROP DATABASE db_demo;-- 切换当前数据库
USE db_demo;-- 【2、数据表操作】可以对数据表中的字段加上相应约束常用的约束有PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、AUTO_INCREMENT、DEFAULT-- 示例操作产品表
DROP TABLE IF EXISTS tb_product;
CREATE TABLE tb_product
(id INT NOT NULL AUTO_INCREMENT, -- 设置id列为非空、自增product_code CHAR(200) NOT NULL UNIQUE DEFAULT Normal, -- 设置编码列为非空、唯一、默认值为Normalproduct_name VARCHAR(50) NOT NULL,quantity INT(3) DEFAULT 0,price DECIMAL(6,2),address VARCHAR(50),remark VARCHAR(500),PRIMARY KEY (id), -- 指定主键列INDEX idx_product_name (product_name) -- 定义索引
);-- 示例操作产品表
DROP TABLE IF EXISTS tb_order;
CREATE TABLE tb_order
(id INT(10) NOT NULL AUTO_INCREMENT, -- 设置id列为非空、自增order_price DECIMAL(6,2),city VARCHAR(50),remark VARCHAR(500),product_id INT(10),PRIMARY KEY (id), -- 指定主键列FOREIGN KEY (product_id) REFERENCES tb_product(id) -- 指定外键id
);-- 修改数据表
ALTER TABLE tb_product
ADD COLUMN description VARCHAR(2000), -- 添加列
MODIFY COLUMN product_name VARCHAR(200) NULL, -- 修改列
DROP COLUMN remark, -- 删除列
CHANGE address city VARCHAR(20), -- 重命名字段
ADD INDEX idx_product_code (product_code), -- 添加索引
DROP INDEX idx_product_name; -- 移除索引-- 删除数据表
DROP TABLE tb_product;
DROP TABLE tb_order;-- 【3、视图操作】广泛应用于报表操作
-- 创建视图
CREATE VIEW v_product AS
SELECT tb_product.id,tb_product.product_code,tb_product.product_name,tb_order.id as order_id,tb_order.order_price
FROM tb_product LEFT JOIN tb_order ON tb_order.product_id tb_product.id-- 修改视图
ALTER VIEW v_product AS
SELECT tb_product.id,tb_product.product_code,tb_product.product_name,tb_order.order_price
FROM tb_product LEFT JOIN tb_order ON tb_order.product_id tb_product.id-- 删除视图
DROP VIEW v_product数据操作语言(DML)
主要负责数据表数据的新增、修改、删除操作 常用的语句有INSERT INTO、UPDATE、DELETE等 注意修改和删除操作时注意添加WHERE条件 常用的数据操作语言示例如下
-- 新增数据字段顺序、数据顺序一定要一致非空列一定要有类型也要匹配
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES(tv,电视机,150,43.27,长沙,这是一台计算机。);
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES(iPhone,苹果手机,100,8999,北京,这是一台苹果手机。);
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES(xiaomi,小米手机,13,2999,上海,这是一台小米手机。);
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES(oppo,欧泊手机,70,2499,广州,这是一台欧泊手机。);
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES(vivo,维沃手机,98,2199,深圳,这是一台维沃手机。);
INSERT INTO tb_product(product_code,product_name,quantity,price,city,description)
VALUES(tt,锤子手机,NULL,NULL,上海,这是一台锤子手机。);INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(7999,天津,一次愉快的购买。,1);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(1555,长沙,一次愉快的购买。,2);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(2800,重庆,一次不愉快的购买。,4);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(1200,杭州,重复购买。,4);
INSERT INTO tb_order(order_price,city,remark,product_id) VALUES(1200,武汉,下次再买。,5);select * from tb_product;
select *
-- 修改数据
UPDATE tb_product SET description CONCAT(description,特价甩卖...);
UPDATE tb_product SET description CONCAT(description,低到1块...) WHERE product_codexiaomi;-- 删除数据
DELETE FROM tb_product WHERE product_codexiaomi;-- 删除全表数据
DELETE FROM tb_order;
DELETE FROM tb_product;
TRUNCATE TABLE tb_product;数据查询语言(DQL)
主要负责数据表数据的查询操作 常用的语句有SELECT查询操作在SQL中使用非常多还有一些复杂的如排序、多表查询、分组等处理 常用的数据查询语言示例如下
-- 【1、查询系统参数】
-- 端口、目录、数据存放目录、服务器id
SELECT port,basedir,datadir,server_id;-- 【2、查询常用函数】
SELECT NOW(),USER(),CONCAT(同志们,大家好,欢迎光临。) AS welcome;-- 【3、查询条件】
-- 查询所有
SELECT * FROM tb_product;
-- 按条件查询可以使用运算符进行操作
SELECT * FROM tb_product WHERE product_code iPhone;
SELECT * FROM tb_product WHERE product_code like %i%;
SELECT * FROM tb_product WHERE quantity BETWEEN 50 AND 100;
SELECT * FROM tb_product WHERE quantity IS NOT NULL;
SELECT * FROM tb_product WHERE product_code in (tt,xiaomi);-- 【4、排序】
SELECT * FROM tb_product ORDER BY price DESC;
SELECT * FROM tb_product ORDER BY product_code DESC;-- 【5、多表联合查询】
-- 左连接
SELECT * FROM tb_product LEFT JOIN tb_order ON tb_order.product_id tb_product.id;
-- 右连接
SELECT * FROM tb_product RIGHT JOIN tb_order ON tb_order.product_id tb_product.id;
-- 完全连接
SELECT * FROM tb_product JOIN tb_order ON tb_order.product_id tb_product.id;
-- 笛卡尔积连接
SELECT * FROM tb_product,tb_order;-- 【6、分组】
SELECT tb_order.product_id,tb_product.product_code,COUNT(1),SUM(tb_order.order_price),AVG(tb_order.order_price)
FROM tb_order LEFT JOIN tb_product on tb_product.id tb_order.product_id
GROUP BY tb_order.product_id,tb_product.product_code
HAVING COUNT(1)1-- 【7、分页】
SELECT * FROM tb_product;
SELECT * FROM tb_product LIMIT 2,2; -- 起始、条数
SELECT * FROM tb_product ORDER BY product_code LIMIT 3 OFFSET 2 ; -- 条数、偏移量-- 【8、UNION】
-- UNION会去重
SELECT city FROM tb_product
UNION
SELECT city FROM tb_order;
-- UNION ALL不会去重
SELECT city FROM tb_product
UNION ALL
SELECT city FROM tb_order;数据控制语言(DCL)
主要负责用户创建、授权、权限回收操作一般主要由DBA来操作 常用的语句有CREATE USER、GRANT、REVOKE等 常用的数据控制语言示例如下
-- 创建用户,localhost只允许从本地ip访问%允许从所有的ip访问
CREATE USER a1% IDENTIFIED BY Password^;
-- 用户授权权限可以包括、insert、update、delete、references、create、alter、drop、create view、execute等多个用逗号分隔
-- 尾部添加WITH GRANT OPTION可让被授权者也能将这个权限授予其他人
GRANT ALL PRIVILEGES ON db_demo.* TO a1% IDENTIFIED BY Password^; -- 所有权限
-- GRANT SELECT ON db_demo.* TO a1% IDENTIFIED BY Password^; -- 只有查询权限
-- 回收权限
REVOKE INSERT ON db_demo.* from a1%; -- 回收新增权限
-- 删除用户
DROP USER a1%;-- 刷新权限,配置完后都要刷新
FLUSH PRIVILEGES;-- 查询表中数据
select * from mysql.user-- 查看用户权限
SHOW GRANTS FOR a1%事务控制语言(TCL)
主要负责用多条语句形成原子性的事务操作 常用的语句有SET AUTOCOMMIT、ROLLBACK、COMMIT、SAVEPOINT等 常用的事务控制语言示例如下
-- 【方式1】
-- 开启显式事务
SET AUTOCOMMIT 0;
-- 查看数据
SELECT * FROM tb_product;
-- 插入一条数据
INSERT INTO tb_product(product_code,product_name,quantity,price,description)
VALUES(c10,n10,50,1523.58,d10);
-- DDL会默认提交事务
-- create table tb_demo
-- (
-- id INT,
-- name VARCHAR(20)
-- );
-- 查看数据
SELECT * FROM tb_product;
-- 回滚显示事务
ROLLBACK;
-- 提交事务
COMMIT;
-- 查看数据
SELECT * FROM tb_product;
-- 关闭显式事务
SET AUTOCOMMIT 1;-- 【方式2】
-- 开启事务
START TRANSACTION;
-- 查看数据
SELECT * FROM tb_product;
-- 插入一条数据
INSERT INTO tb_product(product_code,product_name,quantity,price,description)
VALUES(z1,z1,40,1223.58,z1);
-- 查看数据
SELECT * FROM tb_product;
-- 设置回滚点
SAVEPOINT my_point;
-- 插入另一条数据
INSERT INTO tb_product(product_code,product_name,quantity,price,description)
VALUES(z9,z9,40,1223.58,z9);
-- 查看数据
SELECT * FROM tb_product;
-- 回滚全部
-- ROLLBACK;
-- 回滚到回滚点
ROLLBACK TO my_point;
-- 查看数据
SELECT * FROM tb_product;
-- 提交结束事务
COMMIT;指针控制语言(CCL)
主要负责用于数据遍历的操作 常用的语句有DECLARE…CURSOR…、OPEN、FETCH…INTO…、CLOSE等 常用的指针控制语言示例如下
-- 创建存储过程
-- 业务逻辑取给定最小价格以上的产品总数
CREATE PROCEDURE my_proc(IN min_price DECIMAL(7,2),OUT quantity_total INT)
BEGIN-- 设置游标变量DECLARE _id INT;DECLARE _product_code VARCHAR(100);DECLARE _product_name VARCHAR(200);DECLARE _quantity INT;DECLARE _price DECIMAL(7,2);DECLARE _description VARCHAR(2000);-- 设置汇总数量DECLARE total INT DEFAULT 0;-- 标记默认为0DECLARE done INT DEFAULT 0; -- 【1、定义游标】DECLARE cursor_product CURSOR FOR SELECT id,product_code,product_name,quantity,price,description FROM tb_product WHERE price min_price;-- #游标取完后的标志变量设置为1DECLARE CONTINUE HANDLER FOR SQLSTATE 02000 SET done 1 ;-- 【2、打开游标】OPEN cursor_product;-- 【3、读取游标】取下一行FETCH cursor_product INTO _id,_product_code,_product_name,_quantity,_price,_description;-- 循环WHILE done !1 DOSET total total _quantity;-- 【3、读取游标】取下一行FETCH cursor_product INTO _id,_product_code,_product_name,_quantity,_price,_description;END WHILE;-- 输出汇总-- SELECT total;SET quantity_total total;-- 【4、关闭游标】CLOSE cursor_product;
END;-- 调用
CALL my_proc(35,total);
select total;SQL语言标准中定义了很多的语句、关键字、函数等
在日常的测试工作中并不会都使用掌握常用的基础语句即可慢慢再扩展一些组合查询等复杂查询语句
在上述的6种SQL语句分类中一般只要熟悉并控制数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你