下面是我学习SQL语言的记录,希望与大家一起学习,当中用不足的地方,希望各位路过的各位神人批评指出,让小弟更上一步。
SQL语言是一门结构化的查询语言,是一种ANSI(美国国家标准化组织)的标准计算机语言,SQL可以操作不同的数据库如sql server2008、DB2、orcale、sybase等等。
那么我们用SQL能对数据库做哪些操作呢?我们可以归纳为以下几个方面:1.查询数据库中的数据,2.删除数据库、数据表,3.更新数据库中的数据,4.创建数据库、数据表、存储过
程、创建视图,5设置数据表、存储过程、视图的权限。
从SQL语句的功能上我们可以将SQL语句分为数据操作语言(DML)、数据定义语言(DDL),其实数据的操作语言大部分是由数据选择和数据更新组成的,它的重要部分是:
1.select从数据库中查询数据。2.updata更新数据库中的数据。3.delete删除数据库中的数据,但是数据库或数据表还是存在的,delete只是将数据删除,保留数据的容器。4.insert
into 向数据库中插入一条数据。而数据定义语言的定义域主要是对数据库、表的操作,它的组成部分主要有:1.create database、createtable 2.alter database、 alter table
3.drop database、drop table 4.create index 、drop index。这些操作不涉及数据的操作 。学习SQL的关键离不开关键字的学习。
下面是一些关键字的介绍:
1.distinct:去除选择列中的相同记录
id | name | gender | school |
0 | 陈宇 | 男 | 清华大学 |
1 | 陈宇 | 男 | 清华大学 |
2 | 王红 | 女 | 北京大学 |
实例:select distinct name from Table1
结果:陈宇
王红
我们要注意distinct作用的结果是你选择的所有列如果 select distinct id,name from Table1那么结果就是 0 陈宇
1 陈宇
2 王红
2.where子句可以用于子查询或是一些条件点的限制,where中我们可以用到不同的操作符如:= 、>、<、<>(有的版本可以是!=)、like、between、>=、<=。
实例:select * from Table1 where id>1
在此处我们要注意sql的字符串是单引号的。
我们可以用Where构造出很多子查询的例子:
select * from Table1 Where id in(select id from Table1 where id>1)
select * from Table1 Where id not in(select id from Table1 where id>1)
另外需要注意的是all和any,这两个关键字是不能单独使用的,需要和>、<等一些操作符组合,
select * from Table1 where id>any(select id from Table1 where id<2)
这样我们选择出来的操作集是id大于子查询的最小值。all就不言而喻了。
3.and 和 or是结合where中出现的条件的
如:select id ,name from Table1 where name=N‘陈宇’ and id<1
4.order by 按照某一个字段排序,asc为升序、desc为降序
如:select * from Table1 order by id asc(默认就为asc)
如果where与order by 同时出现,那么order by 要在where之后,因为where是在整个数据表上的操作,而order by 是在选择集上的操作,当然需要先选择后排序了。那如果order by 后面有两个字段,则先按照第一个字段排序,然后在第一个字段的基础上再排序第二个字段。
5.insert into 向数据库中插入一条数据
如:insert into Table(name ,gender,school) values(N‘关羽’,N‘男’,N‘中国人民大学’)
6.updata 表名 set 列名=新值 where 列名=旧值
如:updata Table1 set name=N'刘备' where name=N‘陈宇’
7.delete删除表中数据
如:delete from Table1只是删除数据要是删除表还得是drop