SQL语句基础

查询语句:select ;
* DML语句(Data Manipulation Language)数据操作语言 :
* 主要有 insert、update、deleted三个关键字完成。
* DDL语句(Data Definition Language)数据定义语言:
* create、alter、drop和truncate四个关键字完成
* DCL语句(Data Control Language)数据控制语言:
* grant、revoke两个关键字。
* 事务控制语句: 主要有 commint、rollback、savepoint。
*
* ------------------------------常见的数据库对象:
*
* 表(Table )
* 数据库中的表与我们日常生活中使用的表格类似,
* 它也是由行(Row) 和列(Column)组成的。
*
* 索引(Index)
* 索引是根据指定的数据库表列建立起来的顺序。
* 它提供了快速访问数据的途径,并且可监督表的数据,
* 使其索引所指向的列中的数据不重复。
*
* 视图(View)
* 视图看上去同表似乎一模一样,具有一组命名的
* 字段和数据项,但它其实是一个虚拟的表,在数据库中
* 并不实际存。在视图是由查询数据库表产生的,它限制
* 了用户能看到和修改的数据。由此可见,视图可以用来
* 控制用户对数据的访问,并能简化数据的显示,即通过
* 视图只显示那些需要的数据信息。
*
* 触发器(Trigger)
* 触发器是一个用户定义的SQL 事务命令的集合。
* 当对一个表进行插入、更改、删除时,这组命令就会自
* 动执行。
*
* 存储过程(Stored Procedure)
* 存储过程是为完成特定的功能而汇集在一起的一组SQL
* 程序语句,经编译后存储在数据库中的SQL 程序。
*
* --------------------------------SQL的基本语法 :
*
* ----------DDL语句---------------
* 创建表语法
* create table [模式名.]表名
* (
* --多个内容
* ...
* );
*
* 修改表结构的语法
*
* alter table 表名
* add
* (
* --多个列表
* ...
* );
*
* 修改列定义的语法:
* alter table 表名
* modify column_name datatype [default expr] [first|after col_name]
* first 或者 after col_name将目标修改到指定位置.
* 注意 : add 的名字必须是原表中不存在的;而 modify的名字必须是原表中存在的。
*
* 从数据表中删除列的语法:
* alter table 表名
* drop column_name ;
*
* 重命名数据表的语法格式:
* alter table 表名
* rename column_name ;
*
*
* truncate表
* 作用是删除该表里的全部数据,但是保留表的结构。
* 语法 :
* truncate 表名 ;
*
* * * 约束
* 可以更好地保证数据表里面数据的完整性。
* NOT NULL:非空约束,指定某列不能为空。
* UNIQUE :唯一约束,指定某列或者几列组合不能重复。
* PRIMARY KEY :主键,指定该列的值可以唯一地标识该条记录.
* FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于保证参照完整性。
* CHECK :检查,指定一个布尔表达式,用于指定对应的值必须满足该表达式。
*
* NOT NULL (不分大小写)的建表语法如:
* colunmn_name int NOT NULL
* ...
* colunmn_name varchar(255) default 'xyz' not null
*
* UNIQUE 的语法:
* colunmn_name int UNIQUE
* 为多列组合建立唯一约束,或者想自行指定约束名则要使用表级约束格式:
* [ constraint 表名 ] 约束定义
*
* create table unique_test
* (
* test_id int not null ,
* test_name varchar(255) ,
* test_pass varchar(255)
* );
* ----注意:
* unique(test_pass)
* constraint test_uk unique(test_name)
* 和,
* constriant test_uk2 unique(test_name,test_pass)
* 是不同的。
* 前者是要求test_pass和test_name都不能出现重复.
* 后者是要求test_pass和test_name的组合不能重复.
*
* 可以在修改表结构时使用add关键字来增加唯一约束。
* alter table unique_test
* add unique(test_name , test_pass) ;
* 也可以在修改表时使用modify关键字为单列采用列级约束语法
* 来增加唯一约束。
*
* PRIMARY KEY 语法。
* 相当于非空约束和唯一约束,即主键上约束的列既不能允许
* 为空,也不能重复。当对多个组合建立主键约束时,则多列
* 里包含的数据不能为空,但是只要组合不重复就可以。
* 使用列级约束语法建约束
* create table primary_test
* (
* -- 建立主键约束
* test_id int primary key ,
* test_name varchar(25)
* );
* 使用表级约束语法建约束
* create table primary_test
* (
* test_id int not null ,
* test_name varchar(25) ,
* test_pass varchar(25) ,
* constraint test_pk key(test_id,test_name)
* );
*
* 可以使用drop primary key 删除指定表的主键约束:
* alter table primary_test
* drop primary key ;
*
* 也可以使用modify修改列定义来为单独的数据列增加主键约束
* alter table primary_test
* modify test_pass primary key ;
*
* FOREIGN KEY 约束:
* 主要用于保证一个或两个数据表之间的参照完整性,外键是构建
* 于一个表的两个字段或者两个表的两个字段之间的参照关系。
* 子(从)表外键列的值必须在主表被参照列的值范围内,或者为空。
* 语法:
* 如果仅对单独的数据列建立外键约束,则使用列级约束语法;
* 否则是表级约束语法。 使用列级约束语法外键约束直接使用reference关键字:
* 如果使用表级约束语法,则使用foreign key来指定本表的外键列。
* --------------DML 语法--------------
* DML主要操作数据表里面的数据,使用个DML可以完成如下三个任务:
* 1、插入新数据。
* 2、修改已有数据。
* 3、删除不需要的数据。
* 有insert into 、update 和 delete form三个命令组成。
*
* -- insert into 语句
* 用于向指定数据表中插入记录。
* insert into table_name [(column[,cloumn...])]
* values(value[,value...]) ;
*
* -- update 语句
* 用于修改数据库记录,每次可以修改多条记录,
* 可通过where子句限定修改哪些记录。where子句是一个条件
* 表达式,只有符合条件才能被修改(就像if语句)。
* 语法格式:
* update table_name
* set colmumn1 = value1[,column2 = values2] ...
* [where condition] ;
*
* -- delete from 语句
* 删除指定数据表的记录,不需要指定列名,应为删除总是整行的删除。
* 语法格式:
* delete from table_name
* [where condition] ;
* -- select 语句和SQL函数
* 功能就是查询数据。
* 语法格式:
* 最简单的select语句的语法格式如下:
* select column1 , column2 ...
* from 数据源
* [where condition] ;
* 如果想列出所有列,可以用*代表所以列。

SELECT DISTINCT 语句

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

关键词 DISTINCT 用于返回唯一不同的值。 

语法格式:

  select distinct column1[,column ... ] from table_name ; 


posted @ 2012-02-21 19:24  贺佐安  阅读(364)  评论(0编辑  收藏  举报