数据库之路——SQL语法基础

来源:互联网 发布:如何看待校园暴力 知乎 编辑:程序博客网 时间:2024/05/06 10:32

1、创建数据库:CREATE DATABASE 库名

2、删除数据库:drop database 库名
3、创建新表:create table 表名(列1 数据类型 [not null][primary key],2 数据类型 [not null],..)

  根据已有的表创建新表: 
      ①create table 新表名 like 旧表名 
      ②create table 新表名 as select col1,col2… from 旧表名 definition only

     约束:

     NOT NULL列级约束
     UNIQUE 列级约束
          ①单列UNIQUE约束:列名 数据类型 UNIQUE
          ②多列UNIQUE约束:CONSRTRAIBT 约束名 UNIQUE(列1,列2...)
          ③创建UNIQUE约束:alter table 表名 add UNIQUE(列名)
          ④撤销UNIQUE约束:alter table 表名 drop constraint 约束名
     PRIMARY KEY约束 表级约束
          ①定义单列PRIMARY KEY约束:列名 数据类型 PRIMARY KEY
                                                                PRIMARY KEY(列名)
          ②定义多列PRIMARY KEY约束:CONSTRAINT 约束名 PRIMARY KEY(列1,列2...)
          ③创建PRIMARY KEY约束:add CONSTRAINT 约束名 PRIMARY KEY(列1,列2...)
          ④撤销PRIMARY KEY约束:drop CONSTRAINT 约束名
     FOREIGN KEY 表级约束 
          ①定义单列FOREIGN KEY约束:列名 数据类型 FOREIGN KEY REFERENCES 参考表名(列名)
          ②定义多列FOREIGN KEY约束:CONSTRAINT 约束名 FOREIGN KEY(列1,列2...) REFERENCES 参考表名(列1,列2...)
          ③创建FOREIGN KEY约束:add CONSTRAINT 约束名 PRIMARY KEY(列1,列2...) REFERENCES 参考表名(列1,列2...)
          ④撤销FOREIGN KEY约束:drop CONSTRAINT 约束名
     CHECK约束 列级约束
     CHECK(表达式)
     DEFAULT约束(默认值)

4、删除表:drop table  表名
5、增加一个列:Alter table表名 add column 字段名数据类型
  注:列增加后将不能删除。
6、添加主键: Alter table 表名 add primary key(字段名) 
      删除主键: Alter table 表名 drop primary key(字段名) 
7、创建索引:create [unique] index 索引名 on 表名(列….) 
      删除索引:drop index 索引名
      注:索引是不可更改的,想更改必须删除重新建。
8、创建视图:create view 视图名 as select statement 
      删除视图:drop view 视图名
9
选择:select*from 表名 where 条件
插入:insert into 表名(字段名1,字段名2) values(值1,值2)
删除:delete from 表名 where 条件
更新:update 表名 set 变量= where 条件
查找:select*from 表名 where 变量 like ’%%’ (%是通配符
排序:select*from order by 字段1,字段2 (升序)

           select*from order by 字段1,字段2 [desc](降序)
总数:select count(*)as totalcount from 表名(对所有行进行统计)

           select count(字段) as totalcount from 表名(对指定列进行统计)
求和:selectsum(数量) as sumvalue from 表名
平均:selectavg(字段) as avgvalue from 表名
最大:selectmax(字段) as maxvalue from 表名
最小:selectmin(字段) as minvalue from 表名


10、几个高级查询运算词
A UNION 运算符 (并集)
UNION 运算符通过组合两个结果表并消去表中任何重复行而派生出一个结果表。(UNION ALL不消除重复行
B EXCEPT 运算符 (插集)
EXCEPT 运算符通过包括所有在中但不在2中的行并消除所有重复行而派生出一个结果表。(EXCEPT ALL,不消除重复行) 
C INTERSECT 运算符(交集)
INTERSECT 运算符通过只包括12中都有的行并消除所有重复行而派生出一个结果表。 (INTERSECT ALL,不消除重复行) 
注:使用运算词的几个查询结果结构必须是一致的。 且每个子结果集不能包含order bycompute子句

11、使用外连接 
Aleft outer join 
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 
Eg: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
Bright outer join
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 
Cfull/cross outer join 
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录

12、分组:Group by:
   一张表,一旦分组 完成后,查询后只能得到组相关的信息。
    组相关的信息:(统计信息) count,sum,max,min,avg 

   分组的标准SQL Server中分组时不能以text,ntext,image类型的字段作为分组依据

13、对数据库进行操作:
   分离数据库: sp_detach_db;

  附加数据库:sp_attach_db

  注:后接表,附加需要完整的路径名
  修改数据库的名称:sp_renamedb '旧数据库名''新数据库名'

0 0
原创粉丝点击