Sql 语句小结

发表于:2007-07-04来源:作者:点击数: 标签:
一 查询 Select column1[,column2,column3] from tablename [where condition] 例1:----WHERE select user_name,user_mail form city_users where user_name = ‘zsp’ 结果是:显示表city_users中名字为zsp用户的 名字列和mail列 例2: ---- LIKE 和 % sele
一 查询

Select column1[,column2,column3] from tablename

[where condition]                           

例1:----WHERE

select user_name,user_mail form city_users where user_name = ‘zsp’

结果是:显示表city_users中名字为zsp用户的 名字列和mail列

例2: ---- LIKE 和 %

select user_name, user_mail form city_users where user_name like ‘z%’

结果是:显示表 city_users中,名字的第一个字母为‘z’的用户的名字列和mail列

 

例3: ----AS

SELECT user_id AS ui

FROM city_users

结果是:把查询出来的结果的列名改为ui,并显示所有查出的结果

 

例4:----DISTINCT

SELECT DISTINCT user_name

FROM city_users

结果是:只显示用户名称不一样的数据

SELECT关键字支持用户查询数据表中指定字段的所有数据,但是这样有时就会不可避免的出现重复信息。如果用户希望只查询那些具有不同记录值的信息的话,可以使用SQL语言的DISTINCT关键字。

 

例5:----运算函数

现在,我们已经了解到在使用SQL语言进行数据库查询操作时可以通过对数值的判断设定灵活的查询条件。为了增强对运算的支持能力,SQL提供了众多实用的运算函数供广大用户使用。例如,我们可以直接在SQL命令中调用SUM或AVG这两个分别用于计算总数和平均数的函数。语法格式如下:

SELECT SUM(user_id) AS id

FROM city_users

结果是:所有id号的和显示在新列id下。

 

例6:----COUNT

SELECT COUNT(user_id) AS Length

FROM city_users

结果是:在新列Lentth下显示用户id的个数

 

例7:----COUNT(DISTINCT )

SELECT COUNT(DISTINCT user_name) AS Expr1

FROM city_users

结果是:只显示用户名称不一样的数据的个数

COUNT(DISTINCT user_name)是COUNT和DISTINCT的结合使用,从而可以查询数据表中指定字段中所有具有不同记录值的记录数目。

 

例8:----GROUP BY

Setct  user_name, sum(user_sales)

From city_users

Group by user_name

结果是:以用户名来分组显示每人的销售总额

使用sum函数计算出了所有人的销售总额,那么怎么计算每个人的销售总额呢?这里我们要做两件事:首先查询出用户名和销售额两个字段,然后使用SQL语言的GROUP BY命令将销售额按照不同的人进行分组,从而计算出不同人的销售总额,

GROUP BY关键字一般应用于同时查询多个字段并对字段进行算术运算的SQL命令中。

 

例9:----HAVING

注: []表示可选

   运算符可用 = <=   >= like 等等

   字符必需要放在单引号里

   *和%为通配符,但要注意它们的区别

 

二 建表

 create table tablename

(column1 data type,

column2 data type,

column3 data type);

如果用户希望在建立新表格时规定列的限制条件,可以使用可选的条件选项:

create table tablename

(column1 data type [constraint],

column2 data type [constraint],

column3 data type [constraint]);

举例如下:

create table employee

(firstname varchar(15),

lastname varchar(20),

age number(3),

address varchar(30),

city varchar(20));

简单来说,创建新表格时,在关键词create table后面加入所要建立的表格的名称,然后在括号内顺次设定各列的名称,数据类型,以及可选的限制条件等。注意,所有的SQL语句在结尾处都要使用“;”符号。

使用SQL语句创建的数据库表格和表格中列的名称必须以字母开头,后面可以使用字母,数字或下划线,名称的长度不能超过30个字符。注意,用户在选择表格名称时不要使用SQL语言中的保留关键词,如select, create, insert等,作为表格或列的名称。

数据类型用来设定某一个具体列中数据的类型。例如,在姓名列中只能采用varchar或char的数据类型,而不能使用number的数据类型。

SQL语言中较为常用的数据类型为:

char(size):固定长度字符串,其中括号中的size用来设定字符串的最大长度。Char类型的最大长度为255字节。

varchar(size):可变长度字符串,最大长度由size设定。

number(size):数字类型,其中数字的最大位数由size设定。

Date:日期类型。

number(size,d):数字类型,size决定该数字总的最大位数,而d则用于设定该数字在小数点后的位数。

最后,在创建新表格时需要注意的一点就是表格中列的限制条件。所谓限制条件就是当向特定列输入数据时所必须遵守的规则。例如,unique这一限制条件要求某一列中不能存在两个值相同的记录,所有记录的值都必须是唯一的。除unique之外,较为常用的列的限制条件还包括not null和primary key等。Not null用来规定表格中某一列的值不能为空。Primary key则为表格中的所有记录规定了唯一的标识符。

 

 

 

三 插入数据

 Insert into bablename

 (first_column,…,last_column)

 Values(first_value,…,last_value)

 例:INSERT INTO city_users

(user_name, user_pwd)

VALUES ('map', '123')

 结果是:把用户名称为map,字码为123的数据插入到表 city_users中

 简单来说,当向数据库表格中添加新记录时,在关键词insert into后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。最后,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。

四 更新记录

  SQL语言使用update语句更新或修改满足规定条件的现有记录。Update语句的格式为:

update tablename

set columnname = newvalue [, nextcolumn = newvalue2...]

where columnname OPERATOR value [and|or column OPERATOR value];

例如:

 Update city_users

 Set user_name = ‘map’

 Where user_name =’wang’

使用update语句时,关键一点就是要设定好用于进行判断的where条件从句。

 

五 删除记录

SQL语言使用delete语句删除数据库表格中的行或记录。Delete语句的格式为:

delete from tablename

where columnname OPERATOR value [and|or column OPERATOR value];

例如:

DELETE FROM city_users

WHERE (user_name =’baid’)

 

简单来说,当需要删除某一行或某个记录时,在delete from关键词之后输入表格名称,然后在where从句中设定删除记录的判断条件。注意,如果用户在使用delete语句时不设定where从句,则表格中的所有记录将全部被删除。

 

六 删除数据库表格

在SQL语言中使用drop table命令删除某个表格以及该表格中的所有记录。drop table命令的使用格式为:

Drop talbe tablename

例如:

Drop table city_users

如果用户希望将某个数据库表格完全删除,只需要在drop table命令后输入希望删除的表格名称即可。drop table命令的作用与删除表格中的所有记录不同。删除表格中的全部记录之后,该表格仍然存在,而且表格中列的信息不会改变。而使用drop table命令则会将整个数据库表格的所有信息全部删除。

原文转自:http://www.ltesting.net