目录
📚前言
随着数据科学与大数据的不断发展,SQL这门技术也越来越重要,很多人都开始了学习,本文就介绍了SQL基础内容。
📚SQL是什么?
SQL (Structured Query Language)是一种用于关系数据库查询或从数据库中获取数据的语言,是其原始名称结构化查询语言的缩写。
📚什么是数据,什么是数据库?
data 数据是以文字、数字甚至图片的形式收集的事实。 数据是所有企业中最重要的资产之一。 它几乎在任何地方都被使用和收集。
database 数据库是数据的存储库。 它是一个存储数据的程序。 数据库还提供添加、修改和查询该数据的功能。 有不同种类的数据库有不同的要求。 数据可以以各种形式存储。 当数据以表格形式存储时,数据会像电子表格一样组织成表格,即列和行。 这是一个关系数据库。 一组用于数据库中数据的软件工具称为数据库管理系统或简称 DBMS。
📚语句结构
1、数据查询语言(DQL: Data Query Language):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
① SELECT –查找数据
SELECT语句用于从数据库中提取数据。
SELECT column1, column2, ... FROM table_name;
实例:
SELECT city FROM placeofinterest;
② WHERE – 条件过滤
where子句用于仅提取满足指定条件的记录
SELECT column1, column2, ...FROM table_name WHERE condition;
实例:
SELECT * FROM placeofinterest WHERE city == 'Rome';
③ COUNT – 计数
COUNT是一个函数,它以列的名称为参数,并在列不为NULL时计算行数。
SELECT COUNT * FROM table_name ;
实例:
SELECT COUNT(country) FROM placeofinterest WHERE country='Canada';
④ AVG – 均值
AVG函数返回数值列的平均值。
SELECT AVG(column_name) FROM table_name WHERE condition;
实例:
SELECT AVG(salary) FROM employees;
⑤ SUM – 求和
SUM函数返回一个数字列的总和。
SELECT SUM(column_name) FROM table_name WHERE condition;
实例:
SELECT SUM(salary) FROM employees;
⑥ MIN – 求最小值
MIN函数返回被选中列的最小值。
SELECT MIN(column_name) FROM table_name WHERE condition;
实例:
SELECT MIN(salary) FROM employees;
⑦ MAX – 求最大值
max函数返回被选中列的最大值。
SELECT MAX(column_name) FROM table_name WHERE condition;
实例:
SELECT MAX(salary) FROM employees;
⑧ ROUND – 四舍五入
ROUND函数将数字四舍五入到指定的小数位数。
SELECT ROUND(2number, decimals, operation) AS RoundValue;
实例:
SELECT ROUND(salary) FROM employees;
⑨ LENGTH – 字符串长度
LENGTH函数返回字符串的长度(以字节为单位)。
SELECT LENGTH(column_name) FROM table;
实例:
SELECT LENGTH(f_name) FROM employees;
⑩ UCASE – 列名大写
UCASE函数,该函数以大写形式显示每个表中的列名。
SELECT UCASE(column_name) FROM table;
实例:
SELECT UCASE(f_name) FROM employees;
⑪ DISTINCT – 去重
distinct函数用于指定语句是在指定列中返回唯一值的查询
SELECT DISTINCT column_name FROM table_name;
实例:
SELECT DISTINCT country FROM placeofinterest WHERE type='historical';
⑫ LIMIT – 限制
LIMIT是一个子句,用于指定结果集必须具有的最大行数。
SELECT * FROM table_name LIMIT number;
实例:
SELECT * FROM placeofinterest WHERE airport="pearson" LIMIT 5;
⑬ LIKE – 运算符
在WHERE子句中使用LIKE运算符来搜索列中的指定模式。
有两个通配符经常与LIKE运算符一起使用,它们是百分号(%)和下划线符号(_)。
SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;
实例:
SELECT f_name , l_name FROM employees WHERE address LIKE '%Elgin,IL%';
⑭ BETWEEN – 运算符
BETWEEN运算符选择给定范围内的值。这些值可以是数字、文本或日期。BETWEEN运算符包含在内:包含开始值和结束值。
SELECT column_name(s) FROM
table_name WHERE column_name BETWEEN value1 AND value2;
实例:
SELECT * FROM employees WHERE salary BETWEEN 40000 AND 80000;
⑮ ORDER BY – 排序
ORDER BY关键字用于按升序或降序对结果集进行排序。默认值为升序。
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC丨DESC;
实例:
SELECT f_name, l_name, dep_id FROM employees ORDER BY dep_id DESC, l_name;
⑯ GROUP BY – 分组
GROUP BY子句与SELECT语句一起用于将相同的数据排列到组中。
SELECT column_name(s) FROM
table_name WHERE condition GROUP BY column_name(s) ORDER BY
column_name(s);
实例:
SELECT dep_id, COUNT(*) FROM employees GROUP BY dep_id;
2、数据定义语言(DDL: Data Definition Language):
常见的 DDL 语句类型包括 CREATE、ALTER、TRUNCATE 和 DROP。CREATE :用于创建表和定义其列ALTER:用于更改表,包括添加和删除列以及修改其数据类型; TRUNCATE:用于删除表中的数据,但不用于删除表本身;DROP:用于删除表;为表加入索引等。
① CREATE TABLE – 创建表
CREATE TABLE语句用于创建表。表中的每一列都指定了其名称、数据类型和可选关键字,该关键字可以是PRIMARY KEY、NOT NULL等。
CREATE TABLE table_name (col1 datatype optional keyword, col2 datatype optional keyword,col3 datatype optional keyword,..., coln datatype optional keyword)
实例:
CREATE TABLE employee ( employee_id char(2) PRIMARY KEY, first_name varchar(30) NOT NULL, mobile int);
② ALTER TABLE – 修改表
1. ALTER TABLE – ADD COLUMN
ALTER TABLE语句用于将列添加到表中。
ALTER TABLE table_name ADD COLUMN column_name_l datatype.... ADD COLUMN column_name_n datatype;
实例:
ALTER TABLE employee ADD COLUMN income bigint;
2. ALTER TABLE – ALTER COLUMN
ALTER TABLE ALTER COLUMN语句用于修改列的数据类型。
ALTER TABLE table_name ALTER COLUMN column name_1 SET DATA TYPE datatype;
实例:
ALTER TABLE employee ALTER COLUMN mobile SET DATA TYPE CHAR(20);
3. ALTER TABLE – DROP COLUMN
ALTER TABLE DROP COLUMN语句用于从表中删除列。
ALTER TABLE table_name DROP COLUMN column_name_l ;
实例:
ALTER TABLE employee DROP COLUMN mobile ;
4. ALTER TABLE – RENAME COLUMN
ALTER TABLE RENAME COLUMN语句用于重命名表中的列。
ALTER TABLE table_name RENAME COLUMN current_column_name TO
new_column_name;
实例:
ALTER TABLE employee RENAME COLUMN first_name TO name ;
③ TRUNCATE TABLE – 清除表数据
TRUNCATE TABLE语句用于删除表中的所有行,并不删除表本身。IMMEDIATE指定立即处理该语句,并且该语句不能撤消。
TRUNCATE TABLE table name IMMEDIATE;
实例:
TRUNCATE TABLE employee IMMEDIATE ;
④ DROP TABLE – 删除表
使用DROP TABLE语句可以从数据库中删除表。如果删除包含数据的表,默认情况下,数据将与表一起删除。
DROP TABLE table_name ;
实例:
DROP TABLE employee ;
3、数据操作语言(DML:Data Manipulation Language):
数据操作语言(或 DML)语句用于读取和修改表中的数据。 这些操作有时也被称为 CRUD 操作,即在表中创建、读取、更新和删除行。 常见的 DML 语句类型包括插入、选择、更新和删除。 INSERT:用于向表中插入一行或几行数据;SELECT:从表中读取或选择一行或多行;更新:编辑表中的一行或多行;DELETE:从表中删除一行或多行数据。
① INSERT – 插入数据
INSERT用于在表中插入新行。
INSERT INTO table_name
(columnl,column2,column3...) VALUES(valuel,value2,value3...);
实例:
INSERT INTO placeofinterest
(name,type,city,country,airport) VALUES('Niagara
Water干alls','Nature','Toronto','Can ada','Pearson');
② UPDATE – 更新数据
UPDATE用于更新表中的行。
UPDATE table_name SET[[columnl]= [VALUES]] WHERE [condition];
实例:
UPDATE placeofinterest SET name = 'Niagara Falls' WHERE name =
"Niagara Waterfalls";
③ DELETE – 删除数据
DELETE语句用于从表中删除在WHERE条件中指定的行。
DELETE FROM table_name WHERE [condition];
实例:
DELETE FRDM placeofinterest WHERE city IN ('Rome','Vienna');
4、事务控制语言(TCL:Transaction Control Language):
它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
① Commit command(在MySQL使用 phpMyAdmin)
COMMIT命令用于将更改持久化到数据库中。COMMIT命令的默认终止符是分号(😉。
DELIMITER //
CREATE PROCEDURE PROCEDURE_NAME BEGIN
COMMIT;
END//
DELIMITER ;
实例:
DELIMITER //
CREATE PROCEDURE TRANSACTION_ROSE()
BEGIN
DECLARE EXIT HANDLER FDR SQLEXCEPTION BEGIN ROLLBACK; RESIGNAL; END;
START TRANSACTION; UPDATE BankAccounts SET Balance = Balance-200 WHERE AccountName = 'Rose';
UPDATE BankAccounts SET Balance = Balance-300 WHERE AccountName = 'Rose';
COMMIT;
END//
DELIMITER ;\
② Rollback command(在MySQL使用 phpMyAdmin)
ROLLBACK命令用于回滚未保存在数据库中的事务。ROLLBACK命令的默认终止符是分号(😉。
DELIMITER //
CREATE PROCEDURE PROCEDURE_NAME BEGIN
ROLLBACK;
COMMIT;
END//
DELIMITER ;
实例:
DELIMITER //
CREATE PROCEDURE TRANSACTION_ROSE()
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK; RESIGNAL; END;
START TRANSACTION; UPDATE BankAccounts SET Balance = Balance-200 WHERE AccountName = 'Rose';
UPDATE BankAccounts SET Balance = Balance-300 WHERE AccountName = 'Rose';
COMMIT;
END//
DELIMITER ;\
学习如何使用高级SQL技术(如视图、事务、存储过程和联接)构建更强大的查询,见附件
总结
以上就是本文主要的内容,本文仅仅简单介绍了SQL的使用,而SQL提供了大量能使我们快速便捷地处理数据的函数和方法。