1. SQL语句的基本概念
SQL(Structured Query Language),结构化查询语言,被设计用来管理关系数据库管理系统(RDBMS)中的数据。SQL语句由关键字组成,分为两类:
数据操作语言(DML)
用于查询、插入、更新和删除表中的数据。
-- 查询表中的数据
SELECT * FROM table_name;
-- 插入一行数据
INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);
-- 更新表中的数据
UPDATE table_name SET column1 = value1 WHERE condition;
-- 删除表中的数据
DELETE FROM table_name WHERE condition;
数据定义语言(DDL)
用于创建、修改和删除数据库对象(表、索引、视图等)。
-- 创建一个新表
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
...
);
-- 修改表结构
ALTER TABLE table_name
ADD column_name datatype;
-- 删除表
DROP TABLE table_name;
2. SQL Server中的常用操作
2.1. 数据库查询
查询是SQL语句最基本的功能,可以通过SELECT命令实现。在查询的时候,可以指定要返回哪些列,也可以指定查询的条件。
-- 查询employees表中的所有列
SELECT * FROM employees;
-- 查询employees表中的指定列
SELECT last_name, salary FROM employees;
-- 查询employees表中工资大于10000的员工
SELECT * FROM employees WHERE salary > 10000;
2.2. 数据修改
用于修改表中已有的数据,可以使用INSERT、UPDATE、DELETE三个语句。
-- 插入数据
INSERT INTO employees (last_name, salary, hire_date) VALUES ('张三', 12000, '2020-01-01');
-- 更新数据
UPDATE employees SET salary = 11000 WHERE last_name = '张三';
-- 删除数据
DELETE FROM employees WHERE last_name = '张三';
2.3. 数据排序
通过ORDER BY子句对查询结果进行排序。
-- 按salary升序排序
SELECT * FROM employees ORDER BY salary ASC;
-- 按hire_date降序排序
SELECT * FROM employees ORDER BY hire_date DESC;
2.4. 数据分组
使用GROUP BY对查询结果进行分组,通常与SUM、AVG、COUNT等聚合函数一起使用。
-- 按department_id分组,并统计每个部门的员工数
SELECT department_id, COUNT(*) AS employee_count FROM employees GROUP BY department_id;
-- 按department_id、gender分组,计算男女员工的平均工资
SELECT department_id, gender, AVG(salary) AS avg_salary FROM employees GROUP BY department_id, gender;
2.5. 数据联接
通过JOIN命令将多个表中的数据联接在一起,可以进行内联接、外联接等多种方式。
-- 内联接,查询每个员工的部门信息
SELECT employees.*, departments.department_name FROM employees JOIN departments ON employees.department_id = departments.department_id;
-- 左联接,查询所有部门的员工数,如果部门没有员工也返回,员工数为0
SELECT departments.department_name, COUNT(employees.employee_id) AS employee_count FROM departments LEFT JOIN employees ON departments.department_id = employees.department_id GROUP BY departments.department_name;
2.6. 数据索引
使用索引可以提高数据访问的速度,常用的索引类型有聚集索引、非聚集索引等。
-- 创建聚集索引
CREATE CLUSTERED INDEX index_name ON table_name (column_name);
-- 创建非聚集索引
CREATE NONCLUSTERED INDEX index_name ON table_name (column_name);
2.7. 存储过程
存储过程是一段预编译的代码,可以多次使用,提高数据库应用程序的性能。
-- 创建存储过程
CREATE PROCEDURE procedure_name
AS
BEGIN
-- 执行语句
END;
-- 调用存储过程
EXEC procedure_name;
2.8. 触发器
触发器是一种在表的操作(例如INSERT、UPDATE或DELETE)发生时自动执行的代码块。
-- 创建触发器
CREATE TRIGGER trigger_name
ON table_name
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
-- 执行语句
END;
3. 总结
以上是SQL Server数据库中常用的语句及操作的介绍,了解这些语句和操作可以让我们更好地进行数据的读写、管理。在实际使用时,应该根据实际需要,选择合适的语句和操作来完成任务。