SQL数据库操作_第1页
SQL数据库操作_第2页
SQL数据库操作_第3页
SQL数据库操作_第4页
SQL数据库操作_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库操作主讲:宁茗数据库作用: SQL 是用于访问和处理数据库的标准的计算机语言。SQL 是什么是什么? SQL,指结构化查询语言,全称是 Structured Query Language。 SQL 让您可以访问和处理数据库。 SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。SQL 能做什么?能做什么? SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新

2、表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限一些最重要的一些最重要的 SQL 命令命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键) DROP IN

3、DEX - 删除索引 SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。选取所有列: Select * from 表名选取某些列: Select 列名,列名 from 表名多个条件时的查询: 1:Select */列名 from 表名 where (条件1 and 条件2)or 条件3 /条件不唯一,可多列取值为条件 2:Select */列名 from 表名 where 列名 in(值1,值2) /同一列中,包含某些不同的值为条件SELECT 语句单个条件时的查询: Select */列名 from 表名 where 列名=值1选取某一列中所有不同的值(去重):

4、 Select distinct 列名 from 表名选取前N行数据: Select top N 列名/* from 表名选取第N行数据: Select top 1 列名 from 表名 where 列名 not in (select top N-1 列名 from 表名)SELECT 语句选取重新排序后的第N行: select * from (select *,line=ROW_NUMBER() over (order by 列名 asc) from 表名)m where line=N(也可以大于N)选取一定百分比的数据: Select top N percent * from 表名模糊查询

5、: Select * from 表名 where 列名 like %N%SELECT 语句通配符示例: N%:以N开头 %N%:包含N %N:以N结尾 _N:第一个字符之后是N,一共两个字符 _N_M:第一和第四个字符是N和M,一共四个字符 ALN%:以A或L或N开头 ALN%:不以A或L或N开头,过滤掉以A或L或N开头的数据 %ALN:以A或L或N结尾 %ALN:不以A或L或N结尾 %ALN%:包含A或L或N %ALN%:不包含A或L或NSELECT 语句 选取介于两个值之间的数据,比如首字母介于N和W之间: Select * from 表名 where 列名 between 值1 and

6、值2 为临时的数据或者列插入别名: 1:列名后加空格指定别名 2:(列名)别名 3:列名 as 别名 选取两个表中的数据: Select 表1.列1,表2.列2 from 表1,表2 where 表1.列1=表2.列2 Select 表1.列1,表2.列2 from 表1 inner join 表2 on表1.列1=表2.列2SELECT 语句 Join/inner join:内连接-取交叉-左(匹配值)+右(匹配值) Left join:左连接-左表为主表-左(所有值)+右(匹配值) Right join:右连接-右表为主表-左(匹配值)+右(所有值) Full join:全连接-取两个表所

7、有值-左(所有值)+右(所有值) 选取某列中的重复项,并计算重复数量: Select 列名1,count(列名1) as RepeatNum from 表名 where 列名1=值1 Group by 列名1 Having count(列名1)1SELECT 语句Select 语句结果集的合并 1:取不同表中的不同列的值放在同一列中 Select 列名1 from 表1 Union/union all Select 列名2 from 表2注意:1:列名1与列名2必须有相同的数据类型 2:上下两个表中搜索的列名数量必须相同复制表:从一个表中选择数据,然后插入到另一个新表中(常用于数据库中某一张表

8、 的备份,或数据库的 备份) 1:表间互传数据: Select * into 新表名 from 表2 where 列名=值1 2:数据库间传数据: Select * into 数据库2.dbo.新表名 from 数据库1.dbo.表1 /后者为原数据库的表SQL UPDATE 语句语句UPDATE 语句用于更新表中已存在的记录。1:更新某一行中的某一列: Update 表名 set 列名1=值1,列名2=值2 where 列名=值2:将某一列中的值换成同一个值: Update 表名 set 列名=值3:将某一列中的某一字段(有多个)批量转换成另一字段: Update 表名 set 列名=rep

9、lace(列名,原值,新值)4:将某一列中的时间批量修改(比如天数加两天): Update 表名 set 列名=dateadd(day,2,列名)5:将某一列中的字母批量转换成大写或小写: Update 表名 set 列名1=upper(列名1) Update 表名 set 列名1=lower(列名1)6:修改自增不从1开始: dbcc checkident (表名,reseed,0) /从1开始 dbcc checkident (表名,reseed,N-1) /从N开始SQL DELETE 语句语句DELETE 语句用于删除表中的行。1:删除表中的某一行: Delete from 表名 wh

10、ere 列名=值12:删除所有行,清空所有数据 1:不清空自增量,下次插入仍然从最后一次的自增数字开始 Delete from 表名 Delete 表名 2:清空自增量,下次插入从1开始 Truncate table 表名3:删除一列(包括列名) Alter table 表名 drop column 列名4:清空某一列中的所有数据 Update 表名 set 列名=null5:删除表 Drop table 表名6:删除数据库 Drop database 数据库名SQL INSERT INTO 语句语句INSERT INTO 语句用于向表中插入新记录。 1:插入一行数据: Insert into

11、 表名 values(值1, 值2, 值3, 值4, 值5, ) 2:插入值(在指定列) Insert into 表名 (列名1,列名2,) values (值1,值2,) 3:数据多行插入,一列一次插入多个值 Insert into 表名(列名) values(值1),(值2),(), 4:数据多行插入,所有行都插入数据 Insert into表名 values(值1,值2,)(值3,值4,)ALTER TABLE 语句语句ALTER TABLE 语句用于在已有的表中添加、删除或修改列。 1:增加一列 Alter table 表名 add 列名 数据类型 2:修改列名 Exec.sp_ren

12、ame 表名.原列名,新列名 3:修改列的数据类型 Alter table 表名 alter column 列名 新的数据类型 4:删除一列: Alter table 表名 drop column 列名SQL CREATE DATABASE 语句语句CREATE DATABASE 语句用于创建数据库 1:创建数据库: Create database 数据库名 2:创建表: Create table 表名 ( 列名1 数据类型1 primary key not null, 列名2 数据类型2 identity(开始数,增幅数) not null, Constraint 约束名 unique(列名

13、1,列名2) /添加唯一性验证 )CREATE TABLE - 创建新表3:在关联两张表的时候就创建表:Select 表1.列名1,表2.列名2 into 新表1 from 表1 inner join 表2 on 表1.Guid=表2.RYGuid4:修改表的时候增加/删除约束:Alter table 表名 add constraint 约束名 unique (列名1,列名2)Alter table 表名 drop constraint 约束名5:外键约束(foreign key) 用于预防破坏表之间的连接动作 预防非法数据插入外键,因为它必须是它指向的那个表中的值之一Create table

14、 表名1(列名1 数据类型 not null primary key,列名2 数值类型 not null,Constraint 约束名1 foreign key(列名2) references 表2(列1)CREATE TABLE - 创建新表6:修改表时创建/删除外键 Alter table 表名1 add constraint 约束名1 foreign key (列名1) references 表2(列名2) Alter table 表名1 drop constraint 约束名 /删除外键7:check约束-用于约束限制列中值的范围 1:如果对单个列定义check约束,那么该列只允许特定

15、的值 2:如果对一个表定义check约束,那么此约束会在特定的列中对值进行限制 Create table 表名 ( 列1 数值类型1 not null check(约束条件), 列2 数值类型2 not null, Constraint 约束名 check (约束条件1 and 约束条件2) ) 8:修改表时创建/删除约束 Alter table 表名 add constraint 约束名 check (约束条件1 and 约束条件2) Alter table 表名 drop constraint 约束名创建表的时候默认值的插入 1:创建表的时候插入默认值: Create table 表名 (

16、 列名1 数据类型1 not null, 列名2 数据类型2 default 中国/getdate() ) 2:修改表的时候添加默认值 Alter table 表名 add constraint 约束名 default 中国 for 列名 Alter table 表名 drop constraint 约束名创建索引 在不读取整个表的时候,索引是数据库应用程序可以更快的查找数据 更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是因为索引本身也需要更新,因此,理想的做法是仅仅在经常被使用列上面穿件索引 在表上创建一个唯一索引,唯一意味着两个行不能拥有相同的索引值 Create inde

17、x 索引名 on 表名 (列名) Create index 索引名 on 表名 (列名1 desc,列名2 desc) Create unique index 索引名 on 表名(列名1,列名2) Drop index 表名.索引名函数 AVG(column) /求取平均值 例:找到RowID的值比RowID平均值高的名字 Select DisplayName, RowID,(select AVG(RowID) from dbo.SYS_User) as PJ From dbo.SYS_User where RowID (select AVG(RowID) from dbo.SYS_User) /不用写Having语句Count(列名) /统计行数Right(列名,截取位数)/截取字符,仅限字母,从左边截取Left(列名,截取位数) /截取字符,仅限字母,从右边截取Substring(列名,截取开始位置,截取字符个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论