2023年6月21日发(作者:)
数据库SQL学习
数据库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:mssql7backupMyNwind_'
--- 开始备份BACKUP DATABASE pubs TO testBack
4、创建表create table 表名(列名1 类型1 [not null] [primarykey],列名2 类型2 [not null],..)
A根据已有的表创建新表:create table 新表名 like 旧表名 (使⽤旧表创建新表)
B根据已有表的某⼏个列创建新表:create table 新表名 as select 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 表名()
删除索引: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 LEFT 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是你编程的⼀个⼤砝码,在⼊职⼯作的时候,能给你带来意想不到的财富!
2023年6月21日发(作者:)
数据库SQL学习
数据库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:mssql7backupMyNwind_'
--- 开始备份BACKUP DATABASE pubs TO testBack
4、创建表create table 表名(列名1 类型1 [not null] [primarykey],列名2 类型2 [not null],..)
A根据已有的表创建新表:create table 新表名 like 旧表名 (使⽤旧表创建新表)
B根据已有表的某⼏个列创建新表:create table 新表名 as select 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 表名()
删除索引: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 LEFT 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是你编程的⼀个⼤砝码,在⼊职⼯作的时候,能给你带来意想不到的财富!
发布评论