请问谁知道SQL语句有哪些、数据库表及索引具体是什么?

作者&投稿:势奋 (若有异议请与网页底部的电邮联系)
数据库索引是什么,有什么用,怎么用~

下面是关于数据库索引的相关知识:
简单来说,数据库索引就是数据库的数据结构!进一步说则是该数据结构中存储了一张表中某一列的所有值,也就是说索引是基于数据表中的某一列创建的。总而言之:一个索引是由表中某一列上的数据组成,并且这些数据存储在某个数据结构中。

2.索引的作用。举个例子,假设有一张数据表Emplyee,该表有三列:

表中有几万条记录。现在要执行下面这条查询语句,查找出所有名字叫“Jesus”的员工的详细信息

3.如果没有数据库索引功能,数据库系统会逐行的遍历整张表,对于每一行都要检查其Employee_Name字段是否等于“Jesus”。因为我们要查找所有名字为“Jesus”的员工,所以当我们发现了一条名字是“Jesus”的记录后,并不能停止继续查找,因为可能有其他员工也叫“Jesus”。这就意味着,对于表中的几万条记录,数据库每一条都要检查。这就是所谓的“全表扫描”( full table scan)
4.而数据库索引功能索引的最大作用就是加快查询速度,它能从根本上减少需要扫表的记录/行的数量。
5.如何创建数据库索引。可以基于Employee表的两列创建索引即可:

拓展资料:
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。

2.索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。
3.索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构。

4.例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。可见,索引是用来定位的。
5.从数据搜索实现的角度来看,索引也是另外一类文件/记录,它包含着可以指示出相关数据记录的各种记录。其中,每一索引都有一个相对应的搜索码,字符段的任意一个子集都能够形成一个搜索码。这样,索引就相当于所有数据目录项的一个集合,它能为既定的搜索码值的所有数据目录项提供定位所需的各种有效支持
参考资料:数据库索引-百度百科

1.索引作用
在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。
例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。

SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行。而可能的组合数目为1000×1000×1000(十亿),显然查询将会非常慢。

嗯,我以前学习的时候做了些笔记,希望对你有帮助。
1、使用create database 命令建立简单的数据库:
Eg:create database 学生管理
On primary
(name=学生管理_data1,
Filename=’H:\SQL\学生管理_data1.mdf’,
Size=2MB,
Maxsize=10MB,
Filegrowth=2%),
Filegroup p1
(name=学生管理_data2,
Filename=’H:\SQL\学生管理_data2.ndf’,
Size=1MB,
Maxsize=9MB,
Filegrowth=2MB),
(name=学生管理_data3,
Filename=’H:\SQL\学生管理_data3.ndf’,
Size=5MB,
Maxsize=49MB,
Filegrowth=12MB),
Filegroup p2
(name=学生管理_data4,
Filename=’H:\SQL\学生管理_data4.ndf’,
Size=5MB,
Maxsize=49MB,
Filegrowth=12MB)
Log on
(name=学生管理_log1,
Filename=’H:\SQL\学生管理_log1.ldf’,
Size=5MB,
Maxsize=49MB,
Filegrowth=12MB),
(name=学生管理_log2,
Filename=’H:\SQL\学生管理_log2.ldf’,
Size=2MB,
Maxsize=32MB,
Filegrowth=1%)
——所有符号必须在英文状态下输入
2、更改数据库名称:
Execute sp_renamedb ‘old_name’,’new_name’
Eg: execute sp_renamedb '学生管理','students'
execute sp_rename 'students','学生管理','database'
3、更改数据库所有者:
Execute sp_changedbowner ‘用户名’
4、删除数据库:
Drop database 数据库名
Eg: drop database 学生管理
5、分离数据库:
Execute sp_detach_db ‘dbname‘,’逻辑值’—— ‘dbname‘为数据库名,’逻辑值’为“true”时表示执行updata statistics;’逻辑值’为“false”时表示不执行updata statistics
Eg: execute sp_detach_db '学生管理'
6、附加数据库:
Execute sp_attach_db ‘dbname‘ ,’filename1’,’filename2’....——filename为数据文件与日志文件的物理文件名
Eg: execute sp_attach_db '学生管理',--附加数据库
'H:\SQL\学生管理_data1.mdf',
'H:\SQL\学生管理_data2.ndf',
'H:\SQL\学生管理_log1.ldf'
7、数据类型:
(1)字符数据:char(n) varchar(n) text
(2)整数数据:bigint 8字节;int 4字节;
smallint 2字节;tinyint 1字节
(3)精确数字:decimal(p,s) numeric(p,s)
P代表精度=整数部分的长度+小数部分的长度;s代表小数位数
(4)货币数据:money 8字节 大约表示900万亿;
smallmoney 4字节 大约表示21万
(5)日期和时间数据:datatime 8字节 1753/01/01—9999/12/31;
smalldatatime 4字节 1900/01/01—2079/01/06
8、创建表:
Create table table_name
(columu_name datatype [null/not null] [identity(种子,递增量)], columu_name datatype [null/not null].....)—自动编号的类型必须是int/bigint/smallint/tingint或decimal/numeric
Eg: create table 学生
(学号 char(11) not null ,
编号 int not null identity(1,1),
姓名 varchar(8) ,性别 char(2) default '男',
院系 char(20), 电话 char(11), 照片 image ,
备注 text) on filegroup1--(指定所保存的文件组)
Textimage_on filegroup2--(指定文本文件所保存的地方)
9、使用alter table命令修改表结构:
(1)、更改现有列的类型(更改现有字段的特性)
Alter table tabble_name
Alter column column_name new_datatype[p,s][null/not null]
Eg: alter table 学生
alter column 电话 varchar(20) not null
(2)、更改数据库名、表名、列名:
更改数据库名:execute sp_rename ‘old_name’,’new_name’, ‘database’
更改表名: execute sp_rename ‘old_name’,’new_name’, ‘object’
更改列名: execute sp_rename ‘old_name’,’new_name’, ‘column’
更改索引名: execute sp_rename ‘old_name’,’new_name’, ‘index’
(3)、向表中添加新列(一次可以向表中添加多个列)
Alter table table_name
Add column_name data_type identity(种子,增量)
Eg:alter table 学生
add 住址 varchar
(4)、删除现有的列:(一次可以删除多个)
Alter table table_name
Drop column column_name, column_name, column_name...
Eg: alter table 学生
drop column 班级,住址
10、使用drop table 命令删除表:(一次可以删除多个表)
Drop table table_name, table_name, table_name...
11、创建和维护check约束(用户定义完整性):
(1)、创建check约束:
Eg:create table 员工(列级约束,可以直接放列后面,也可放最后)
(职工编号 int identity(1000,1) not null , 姓名 varchar(16) not null, 基本工资 money not null constraint ck_基本工资 check(基本工资>500), 津贴 money not null,
住房补贴 money not null constraint ck_住房补贴 check(津贴+住房补贴>300))
Eg:(表级约束):alter table 职工
Add
constraint ck_住房补贴 check(津贴+住房补贴>300)
(2)、删除check约束:
Alter table table_name
Drop constraint 约束名1,约束名2,约束名3。。
12、创建和维护primary key(实体完整型/主码) 约束:(同check约束用法一样)
Eg:create table 系
(系名 varchar(11), 系编号 char(2) constraint pk_系primary key)
或:create table 成绩
(学号 char(11),课程编号 char(3),
分数 tinyint ,primary key(学号,课程编号))
添加:alter table 学生
add constraint pk_学生 primary key (学号)
13、创建和维护foreign key(参照完整型/建立各表之间的连接)约束:
(1)、创建foreign key约束:
Eg:create table table_name
(。。。constraint FK_子表_父表 foreign key reference 表(列))
14. 创建和维护index索引
(1)、创建约束 :
create [unique|nonunique][clustered|non clustered]
index 索引名(ix_表名) on table_name(列1,列2。。。)
[with][ pad_index][,fillfactor=N(填充值)][,ignore_dup_key][,drop_exsiting][on 文件组名]
Eg; create index ix_学生 on 学生(学号)
[with pad_index ,fillfactor=40]
(2)、删除约束:
Drop index 表名.索引名1,表名.索引名2。。。
Eg: drop index 学生.ix_学生
(3)、修改已存在索引的相关设置:
create [unique|nonunique][clustered|non clustered]
index 索引名(ix_表名) on table_name(列1,列2。。。)
[with][ pad_index][,fillfactor=N(填充值)][,ignore_dup_key] drop_exsiting [on 文件组名]
Eg:create unique index ix_学生 on 学生(学号)
[with pad_index ,fillfactor=50,]
drop_existing
15.数据记录的添加、修改、和删除
(1)、删除记录:
Delete 表名[where条件]
Eg:delete 学生 where 姓名 = '王平'
(2)、添加记录:
insert [into] 表名 (列名1,列名2,列名3。。。)
values(表达式1,表达式2,表达式3。。。)
Eg: insert into 学生
values('20090223001','张三','男','营销093','团员','班长')
insert into 学生
values('20090223003','王平','女','营销093','团员','同学')
(3)、修改记录:
Update 表名
Set列名=表达式 [where 条件]
Eg: update 学生
set 奖学金=奖学金+200
16、连接查询:
(1)、inner join 连接
Eg:select 学生.学号,姓名,课程.课程号,成绩
From 学生 inner join 选课 inner join 课程(一对多联系)
On选课.课程编号=课程.课程编号
On学生.学号=选课.学号
——(on后的顺序刚好与inner join的顺序相反)
(2)、from连接
Eg:select 学生.学号,姓名,课程.课程号,成绩
From 学生,选课,课程
Where 选课.课程编号=课程.课程编号
And 学生.学号=选课.学号
(3)group by ,having(一般一起用)
Eg:Select学号,姓名
From 学生, 成绩
Where学生.学号=成绩.学号
Group by 学号,姓名
Having count(*)>10
(4)、order by,top(一般一起用)
Top n[percent][with ties]
Order by [asc\desc] 默认为asc
Eg:select top 10 percent with ties 学号,姓名,年龄
From 学生
Order by 年龄

SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:
一、综合统一
二、高度非过程化
三、面向集合的操作方式
四、以一同一种语法结构提供多种使用方式
五、语言简洁,易学易用。
SQL动词:
数据查询——SELECT
数据定义——(创建)CREATE,(删除)DROP,(修改)ALTER
数据操纵——(插入)INSERT,(更新)UPDATE,DELETE
数据控制——(授权)GRANT,(收权)REVOKE

定义语句:
操作对象 操作方式
创建 删除 修改
模式 CREATE SCHEMA DROP SCHEMA
表 CREATE TABLE DROP TABLE ALTER TABLE
视图 CREATE VIEW DROP VIEW
索引 CREATE INDEX DROP INDEX

如果想了解更多,可以加我百度Hi,希望可以帮到你。

建议你找本书学习一下,内容很多。


SQL数据库语句大全
SQL数据库语句大全:1、选择:select * from table1 where 范围 2、插入:insert into table1(field1,field2) values(value1,value2)3、删除:delete from table1 where 范围 4、更新:update table1 set field1=value1 where 范围 5、排序:select * from table1 order by field1,field2 [de...

SQL数据库语句大全
连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option] ·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。 ·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后...

数据库常用sql语句有哪些
知道答主 回答量:113 采纳率:100% 帮助的人:82.2万 我也去答题访问个人页 关注 展开全部 数据库常用sql语句有哪些 SQL语句有哪些?SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,下文我为大家分享的就是SQL的常用语句,仅供参考! 50个常用的sql语句 Student(S#,Sname,Sage,Ssex) ...

求教sql查询语句
1、查询每门课程的最高分、最低分:SELECT b.b课号, b.b课名, MAX(c.c成绩) AS 最高分, MIN(c.c成绩) AS 最低分 FROM b JOIN c ON b.b课号 = c.b课号 GROUP BY b.b课号, b.b课名;2、查询至少选修三门课程的学生(姓名和学号):SELECT s.s学号, s.s姓名 FROM s JOIN...

谁来帮帮我SQL语句
1)select t1.ID,t1.Name,Price,t2.Namefrom T_Goods as t1left join T_Types as t2 on TypeID=t2,ID 2)select ID,Name,totalfrom T_Types left join (select TypeID,sum(Price) as total from T_Goods group by TypeID)as t2 on TypeID=ID 3)insert into T_Types(ID,Name) ...

SQL Server里常用的语句 有那些?按功能分
功能和语句都那些?解析: 一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,email...

请教SQL基本语句
adoCnn.Execute(sql)'好象insert,update这样的语句不能这样运行 adoRst已经可以正常使用!DELETE语句是用来删除表中实体的(也就是一行记录)使用DELETE 并加入WHERE条件进行筛选 可以删除记录 如果不加的话 肯定是全部删除,而加一些条件可能只会删除一部分或者根本不删除 这个原理和UPDATE的WHERE是相似的 ...

问一条sql语句!
只查有父分类的(为0没有就不差)select from 父分类表 inner join 项目表 on(父分类表.父分类ID=项目表.ID)根据分类表查(为0为null值)select from 父分类表 left join 项目表 on(父分类表.父分类ID=项目表.ID)

SQL语句学习大全
SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段前10条记录 select top 10 ...

如何查看数据库表中的sql语句
两种方式,一种是直接在sqlserver的列表中找到,另一种用写语句的方式查询。方法一:1、登陆SQL SERVER Manager Studio。2、在左边的树找到自己要查询的数据库。如图:3、点击逗表地,就能看到这个库中的所有表了。方法二:1、登陆SQL SERVER Manager Studio。2、点击左上角的逗新建查询地。3、在窗口...

平舆县19539064877: 数据库语言有哪些 -
仉度产后: 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句. 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句. 数据查询语言(DQL),例如:SELECT语句.(一般不会单独归于一类,...

平舆县19539064877: sqlservler数据库中常有的SQL语句有哪些 -
仉度产后: 选择查询语句:select 【 字段 】 from 表 where【 条件】.插入语句: insert 【 字段 】 into 表.更新语句:update 表 from 【 字段 】 where 【 条件】.删除语句:delete ... from ...----具体可以去买一些资料看看.

平舆县19539064877: 什么是sql,sql语句的分类,常见的数据库对象以及所使用的数据字典 -
仉度产后: 1、数据操纵语言(DML):用来操纵数据库中数据的命令.包括:select、insert、update、delete. 2、数据定义语言(DDL):用来建立数据库、数据库对象和定义列的命令.包括:create、alter、drop. 3、数据控制语言(DCL):用来控制数据库组件的存取许可、权限等的命令.包括:grant、deny、revoke. 4、其他语言元素:如流程控制语言、内嵌函数、批处理语句等.

平舆县19539064877: sqlservler数据库中常有的SQL语句有哪些
仉度产后: 主要是select,insert,updata,delete语句.

平舆县19539064877: sql数据库查询语句
仉度产后: 1、select 字段名 from 表名2、select 字段名 from 表名 where 条件 3、select 字段名 from 表名 where 条件1 and 条件2 4、select 字段名 from 表名 where 条件1 or 条件2

平舆县19539064877: 常用标准Sql Server语句有哪些? -
仉度产后: "创建表:creat table 表名 (id, int, admin, char(10)) 插入纪录:insert into 表名 (id, admin) values(1, '名称') 删除纪录:delete 表名 where admin='名称' 修改纪录:update 表名 set admin='名称' where id=1 删除表:drop table 表名"

平舆县19539064877: sql语句是什么? -
仉度产后: SQL语句,顾名思义就是SQL语言写的语句. SQL语言是一种成熟的关系数据库语言,可以实现对数据库的增删改查等操作功能. SQL语句多用在编程中,尤其是涉及大量数据的时候,用到了数据库.一般是将SQL语句以字符串的形式写入C/C++/Java等高级语言中执行,这些语言都有相应的库可以执行SQL语句.

平舆县19539064877: 数据库 SQL 查询语句 -
仉度产后: SELECT * FROM tab WHERE number in ( SELECT number FROM tab GROUP by number HAVING COUNT(type) = 2) 这个更加精确,是不重复的type SELECT * FROM tab WHERE number in ( SELECT number FROM tab GROUP by number ...

平舆县19539064877: 什么是sql,其包含哪几项功能的语句 -
仉度产后: SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的.SQL功能强大、简单易学、...

平舆县19539064877: sql 数据库的全部操作?(sql语句) -
仉度产后: 数据库的所涉及的到操作就只有 :增,删,改,查,其中查询是最为常用的. 你的问题太模糊了,所以不知道怎么回答你好.如果要学习sql 语句的话,那么需要自己从建库,建表,修改表,删除表,以及数据的操作开始学习.暂时的,只能说这么多了,有其它的问题在留言.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网