SQL基本知识学习和优化

来源:互联网 发布:软件使用手册标准 编辑:程序博客网 时间:2024/06/06 00:45

学习数据库之前 先了解几个基本概念

SQL 结构化查询语言

DBMS 数据库管理系统

数据模型包括三个要素:数据结构,数据操作,数据完整性

 

数据定义语言(DDL)

1:创建表

create table 表名{

      列名1          数据类型和长度   属性,

      。。。。。。。。。。

      列名n         数据类型和长度    属性,

}

2:修改表

a:添加字段

Alter table 表名 add    列名 数据类型和长度 列属性

b:修改列属性

Alter table 表名 Alter column 列名 新数据类型和长度 新属性

c:删除列

Alter table 表名 drop column 列名

3:删除表

Drop table 表名

 

除了表 还有视图和索引

 

数据操作语言(DML)

1:插入数据

insert into 表名(列名1,。。。,列名n)   values(值1,。。。。,值n);

当插入整条数据列名可以省略

2:更新数据

update  表名 set 列名1=值1,。。。。,列名n=值n where 更新条件语句

注意

当没有where条件的时候 采用更新语句 将会使整张表的属性多改变

3:删除数据

delete 表名 where  删除条件

 

select 语句

select  (子句)  [into 子句]  from 子句 where (子句)  [ grroup by 子句] [ having 子句] [order by 子句] [union 运算符]

 

a:显唯一数据

select distinct 列名 from 表名

b:显示列标题

select 列名 as ' ' from 表名

c:对结果集进行排序

select  * from 表名 order by 列名  desc  或asc

d:条件查询

select * from 表名 where 查询条件

e:统计函数

select count(*) from 表名

f:分组统计

select 列名1,。。。,列名n from 表名 group by 列名

select  列名1,。。。,列名n from 表名  where 条件 group by 列名 但是值的注意的是where子句中是不能包含聚合函数的 此时改成having

select  列名1,。。。,列名n from 表名  group by 列名 having 查询条件

h:union

select e.emp_name,e.title,d.dep_name from employee e,department d where e.dep_id=d.dep_id;其中e和d是表别名

select e.emp_name,e.title,d.dep_name from employee e inner  join department d on e.dep_id=d.dep_id; 内连接

 

优化select原则

1;正确使用索引

2:避免死锁

3:尽量少用select  * from  表名 避免返回不需要的列

4:设置where条件 只返回需要的结果

5:使用top 限制返回记录数量

6:在where 中 使用 like,应注意通配符的使用

7:慎用unioin 影响查询效率

8:慎用distinct 查询时过滤重复记录 影响系统资源和浪费时间

9:少使用视图

10:where 中少用in 可以选择between

11:少用group by

12:where 条件中少用函数

13:对同一数据进行操作很频繁时,可以创建临时表

14:需要对数据进行统计 尽量不要在查询时 采用统计函数 可以在表中 添加一个字段

15:判断表中是否有记录 可以采用exists 而不使用count()  

 

 

 

原创粉丝点击