首页 > 开发 > 综合 > 正文

数据库SQL学习

2024-07-21 02:52:30
字体:
来源:转载
供稿:网友

 

数据库SQL语言学习:

目前比较常用的数据库有:Oracle,DB2、SQL Server、Sybase、Informix、MySQL、VF、access等。下列语句有部分是Mssql数据中支持的语句 ,不能在access数据库中使用 。

 

SQL分类 :

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) 

DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) 

DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 

首先,简要介绍基础语句:

 

1、创建数据库

CREATE DATABASE 数据库名称 

 

2、删除数据库

drop database 数据库名称 

 

3、sql server 数据库中备份数据库

--- 创建备份数据的磁盘设备

USE master 

EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7

backup/MyNwind_1.dat' 

--- 开始备份

BACKUP DATABASE pubs TO testBack 

 

4、创建表

create table 表名(列名1  类型1 [not null] [PRimary

key],列名2 类型2 [not null],..) 

A根据已有的表创建新表:

create table 新表名 like 旧表名 (使用旧表创建新表) 

B根据已有表的某几个列创建新表:

create table 新表名 as select col1,col2... from 旧表名 definition only 

 

5、删除表:

drop table 表名 

 

6、给数据表增加一列:

Alter table 表名 add column 列名 列类型

注:列增加后将不能删除。

DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

 

7、添加删除主键:

添加主键:

Alter table 表名 add primary key(列名) 

删除主键:

Alter table 表名drop primary key(列名) 

 

8、创建删除索引:

创建索引:

create [unique] index 索引名on 表名(col....) 

删除索引:

drop index 索引名

注:索引是不可更改的 ,想更改必须删除重新建。

 

9、创建删除视图:

创建视图:

create view 视图名as select statement 

删除视图:

drop view 视图名

 

10、常用的基本的sql语句:

选择:

select * from 表名 where 范围

插入:

insert into 表名(field1,field2) values(value1,value2) 

删除:

delete from 表名where 范围

更新:

update 表名set field1=value1 where 范围

查找:

select * from 表名where field1 like ’%value1%’ ---like的语法很精妙,查资料! 

排序:

select * from 表名order by field1,field2 [desc] 

总数:

select count * as 列别名from 表名

求和:

select sum(field1) as 列别名from 表名

平均:

select avg(field1) as 列别名from 表名

最大:

select max(field1) as 列别名from 表名

最小:

select min(field1) as 列别名from 表名

 

11、几个高级查询运算:

A:UNION 运算符

UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个新的结果表。当ALL 随UNION 一起使用时(即UNION ALL), 不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。

 

B:EXCEPT 运算符

EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。

 

C:INTERSECT 运算符

INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当ALL 随INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。

 

注:使用运算词的几个查询结果行的列必须是一致的。

 

12、外连接:

A、左外连接(左连接): 结果集既包括连接表的匹配行,也包括左连接表的所有行 。

SQL语句: 

select a.a, a.b, a.c, b.c, b.d, b.f from a LEF

T OUT JOIN b ON a.a = b.c 

B:右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行 。

C:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

 

13、SQL取前10条记录

select top 10 * form 表名where 范围

 

14、包括所有在TableA 中但不在TableB和TableC 中的行并消除所有重复行而派生出一个结果表:

(select a from tableA ) except (select a from table B) except (select a from tableC) 

 

15、随机取出10条数据

select top 10 * from 表名order by newid() 

 

16、删除重复记录

Delete from 表名where id not in (select max(id) from 表名group by col1,col2,...) 

 

17、列出数据库里所有的表名

select name from sysobjects where type='U' 

 

18、列出表里的所有的列

select name from syscolumns where id=object_id('TableName') 

 

19、TRUNCATE初始化表table1 

TRUNCATE TABLE table1 

 

20、选择从10到15的记录

select top 5 * from (select top 15 * from table order by id asc) table_别名order by id desc 

 

 

在这里告诫新人:熟练掌握SQL是你编程的一个大砝码,在入职工作的时候,能给你带来意想不到的财富!

 

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表