SQL笔记-建索引

一、说明

  • Oracle:
-- 创建单列索引
CREATE INDEX index_name ON table_name(column_name);

-- 创建联合索引
CREATE INDEX index_name ON table_name(column1, column2, column3);
  • MySQL:
-- 创建单列索引
ALTER TABLE table_name ADD INDEX index_name(column_name);

-- 创建联合索引
ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);
  • SQL Server:
-- 创建单列索引
CREATE INDEX index_name ON table_name(column_name);

-- 创建联合索引
CREATE INDEX index_name ON table_name(column1, column2, column3);
  • PostgreSQL:
-- 创建单列索引
CREATE INDEX index_name ON table_name(column_name);

-- 创建联合索引
CREATE INDEX index_name ON table_name(column1, column2, column3);

二、示例

  • Oracle:
    建表语句:
CREATE TABLE table1(
   id NUMBER(10) PRIMARY KEY,
   name VARCHAR2(50),
   age NUMBER(3),
   gender VARCHAR2(10),
   address VARCHAR2(100)
);

CREATE TABLE table2(
   id NUMBER(10) PRIMARY KEY,
   table1_id NUMBER(10),
   subject VARCHAR2(50),
   score NUMBER(3)
);

ALTER TABLE table2 ADD FOREIGN KEY (table1_id) REFERENCES table1(id);

数据插入语句:

-- 插入 table1 数据
INSERT INTO table1(id, name, age, gender, address) VALUES(1, 'John', 25, 'Male', 'New York');
INSERT INTO table1(id, name, age, gender, address) VALUES(2, 'Mary', 30, 'Female', 'Los Angeles');

-- 插入 table2 数据
INSERT INTO table2(id, table1_id, subject, score) VALUES(1, 1, 'Math', 80);
INSERT INTO table2(id, table1_id, subject, score) VALUES(2, 1, 'English', 90);
INSERT INTO table2(id, table1_id, subject, score) VALUES(3, 2, 'Math', 85);
INSERT INTO table2(id, table1_id, subject, score) VALUES(4, 2, 'English', 95);

建立索引:

-- 对 table1 的 id 列建立索引
CREATE INDEX idx_table1_id ON table1(id);

-- 对 table2 的 table1_id 列建立索引
CREATE INDEX idx_table2_table1_id ON table2(table1_id);
  • MySQL:
    建表语句:
CREATE TABLE table1(
   id INT(10) PRIMARY KEY,
   name VARCHAR(50),
   age INT(3),
   gender VARCHAR(10),
   address VARCHAR(100)
);

CREATE TABLE table2(
   id INT(10) PRIMARY KEY,
   table1_id INT(10),
   subject VARCHAR(50),
   score INT(3)
);

ALTER TABLE table2 ADD FOREIGN KEY (table1_id) REFERENCES table1(id);

数据插入语句:

-- 插入 table1 数据
INSERT INTO table1(id, name, age, gender, address) VALUES(1, 'John', 25, 'Male', 'New York');
INSERT INTO table1(id, name, age, gender, address) VALUES(2, 'Mary', 30, 'Female', 'Los Angeles');

-- 插入 table2 数据
INSERT INTO table2(id, table1_id, subject, score) VALUES(1, 1, 'Math', 80);
INSERT INTO table2(id, table1_id, subject, score) VALUES(2, 1, 'English', 90);
INSERT INTO table2(id, table1_id, subject, score) VALUES(3, 2, 'Math', 85);
INSERT INTO table2(id, table1_id, subject, score) VALUES(4, 2, 'English', 95);

建立索引:

-- 对 table1 的 id 列建立索引
ALTER TABLE table1 ADD INDEX idx_table1_id(id);

-- 对 table2 的 table1_id 列建立索引
ALTER TABLE table2 ADD INDEX idx_table2_table1_id(table1_id);
  • SQL Server:
    建表语句:
CREATE TABLE table1(
   id INT PRIMARY KEY,
   name VARCHAR(50),
   age INT,
   gender VARCHAR(10),
   address VARCHAR(100)
);

CREATE TABLE table2(
   id INT PRIMARY KEY,
   table1_id INT,
   subject VARCHAR(50),
   score INT
);

ALTER TABLE table2 ADD FOREIGN KEY (table1_id) REFERENCES table1(id);

数据插入语句:

-- 插入 table1 数据
INSERT INTO table1(id, name, age, gender, address) VALUES(1, 'John', 25, 'Male', 'New York');
INSERT INTO table1(id, name, age, gender, address) VALUES(2, 'Mary', 30, 'Female', 'Los Angeles');

-- 插入 table2 数据
INSERT INTO table2(id, table1_id, subject, score) VALUES(1, 1, 'Math', 80);
INSERT INTO table2(id, table1_id, subject, score) VALUES(2, 1, 'English', 90);
INSERT INTO table2(id, table1_id, subject, score) VALUES(3, 2, 'Math', 85);
INSERT INTO table2(id, table1_id, subject, score) VALUES(4, 2, 'English', 95);

建立索引:

-- 对 table1 的 id 列建立索引
CREATE INDEX idx_table1_id ON table1(id);

-- 对 table2 的 table1_id 列建立索引
CREATE INDEX idx_table2_table1_id ON table2(table1_id);
  • PostgreSQL:
    建表语句:
CREATE TABLE table1(
   id SERIAL PRIMARY KEY,
   name VARCHAR(50),
   age INT,
   gender VARCHAR(10),
   address VARCHAR(100)
);

CREATE TABLE table2(
   id SERIAL PRIMARY KEY,
   table1_id INT,
   subject VARCHAR(50),
   score INT
);

ALTER TABLE table2 ADD FOREIGN KEY (table1_id) REFERENCES table1(id);

数据插入语句:

-- 插入 table1 数据
INSERT INTO table1(name, age, gender, address) VALUES('John', 25, 'Male', 'New York');
INSERT INTO table1(name, age, gender, address) VALUES('Mary', 30, 'Female', 'Los Angeles');

-- 插入 table2 数据
INSERT INTO table2(table1_id, subject, score) VALUES(1, 'Math', 80);
INSERT INTO table2(table1_id, subject, score) VALUES(1, 'English', 90);
INSERT INTO table2(table1_id, subject, score) VALUES(2, 'Math', 85);
INSERT INTO table2(table1_id, subject, score) VALUES(2, 'English', 95);

建立索引:

-- 对 table1 的 id 列建立索引
CREATE INDEX idx_table1_id ON table1(id);

-- 对 table2 的 table1_id 列建立索引
CREATE INDEX idx_table2_table1_id ON table2(table1_id);
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server是Microsoft开发的关系型数据库管理系统(RDBMS),用于管理和存储数据。以下是一些SQL Server的笔记: 1. 数据库SQL Server中的数据库可以包含多个表和视图等对象,每个数据库都有一个唯一的名称和一个文件组,文件组用于存储数据库文件。 2. 表:表是SQL Server中最基本的数据存储单位,表由列和行组成,列定义表中存储的数据类型,行包含实际的数据。 3. 索引索引是用于加速数据检索的数据结构,SQL Server中有多种类型的索引,包括聚集索引、非聚集索引等。 4. 存储过程:存储过程是由SQL语句和控制语句组成的一段代码,可用于执行数据库操作,存储过程可接收参数和返回值。 5. 触发器:触发器是一种特殊的存储过程,它会在特定的数据库事件发生时自动执行,例如数据插入、更新或删除。 6. 视图:视图是一种虚拟表,它是基于一个或多个表的查询结果构的,视图可用于简化复杂的查询操作。 7. 外键:外键是用于立表之间关系的机制,它用于保证数据的完整性和一致性。 8. 事务:事务是一组数据库操作,这些操作要么全部成功,要么全部失败,SQL Server提供了ACID事务机制,确保数据的一致性和可靠性。 9. 安全性:SQL Server提供了强大的安全性功能,包括身份验证、授权、加密等,可用于保护数据库和数据的机密性和完整性。 10. 监控和性能调整:SQL Server提供了多种工具和技术,用于监控数据库的性能和状态,以及对数据库进行性能调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

123的故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值