数据库基础(sqlserver)

1、更新  update  xxx set  xxx  where  xxxx
     UPDATE T_Debt set FAmount =123 WHERE FPerson='Tom'
2、插入数据 insert
     INSERT INTO T_Person(FName,FAge,FRemark) VALUES('Jim',20,'USA');
3、删除  delete  from
     DELETE FROMT_Debt;
     DELETE FROM T_Person WHERE FAge >20 or FRemark ='Mars' (删除年龄大于20或者来自火星的人)
4、删除   drop  from
     DELETE 语句仅仅是删除表中的数据行, 而表的结构还存在, 而 DROP T ABLE 语句则不仅将表中的数据行全部删除,而且还将表的结构也删除。
      我们不再需要这张表:DROP TABLET_Debt;
5、创建creat
     CREATE  TABLE  T_Employee  (FNumber  VARCHAR(20),  FName  VARCHAR(20),  FAge INT ,  FSalary NUMERIC(10,2),  PRIMARY KEY (FNumber)) 
     记录员工信息的数据表
     varchar (20) 是字符串长度小于20
     int    是整形
     numeric  是  数值,有小数的
     primary key  是主键
5、修改Alter
     它与update的区别是:update更新的是具体的数据,而later修改的是数据库的结构
     在数据库中加一列分公司,字符串20以内:ALTER TABLE T_Employee ADD FSubCompany VARCHAR(20);
     UPDATE  T_Employee SET FSubCompany='Beijing',FDepartment='Development'   WHERE FNumber='DEV001'; 
     (1)添加列名:alter table sutdent add s_name varchar(20);
     (2)删除列:alter table student drop column s_name;
     (3)修改列属性:alter table student alter column s_name  varchar(20)not null;
     (4)添加主键:alter table student add constraint pk_sno primary key(sno)  --(constraint:约束)
     (5)删除主键:alter table student drop constraint pk_sno
     (6)删除主键(不知道那个是主键):declare @pk_name varchar(100) select @pk_name=name from 
sysobjects where xtype ='PK' and parent_obj=object_ID('student') exec('alter table student drop'+@pk_name)
     (7)修改列名:exec sp_rename't_student.name','nn','column'; 
6、列别名(别名的定义格式为 “列名  AS  别名”)(为了方便)
     SELECT  FNumber  AS  Number1,FName  AS  Name,FAge  AS  Age,FSalary  AS  Salary  FROM  T_Employee
     结果显示的属性行变成:Number1   Name   Age   Salary
     AS不是必须的,可以省略:SELECT  FNumber  Number1,FName  Name,FAge  Age,FSalary  Salary  FROM  T_Employee
7、排序ORDER BY
     按年龄排序(升序):  SELECT  *   FROM  T_Employee   ORDER BY   FAge   ASC 
     先安年龄排序,如果相同,再以工资排序DESC(降序):   SELECT* FROM  T_Employee  WHERE  FAge>23   ORDER BY  FAge DESC,FSalary DESC 
8、通配符过滤(LIKE关键字)//避免使用,太慢
     单个字符:“_”,下划线,Ex:b_d,  _oo_,  __o,不能为空。SELECT  *   FROMT_Employee    WHERE   FName  LIKE    '_erry'
     多字符:“%”,可以为空,Ex:k%,%n%。SELECT   *  FROMT_Employee   WHERE   FName   LIKE    '%n%' 
           可以将两者合并:SELECT* FROMT_Employee  WHERE    FName LIKE '%n_' 
     集合匹配(only at SQLServer)(“[]”)
          匹配与字符集任意一个字符相匹配的字符。Ex:[bt]%(匹配第一个字符为b或者为t,长度不定的字符串)
          匹配第一个字符为“J”或者为“S”的字符串:SELECT * FROM   T_Employee   WHERE   FName LIKE   '[SJ]%'
     集合取反(“^”):"[^SJ]%",第一个字符除了SJ以为的字符
9、空值检测(is NULL   不是=null)
     检测用户名为空的行:SELECT *  FROMT_Employee  WHERE   FNAME IS NULL 
10、反义字符(“!”非,只适用于SQLServer、DB2
     !=不等于,!>不大于。SELECT *  FROMT_Employee  WHERE  FAge!=22   AND  FSALARY!<2000
     (其他数据库管理可以使用NOT,推荐使用NOT
     SELECT *  FROM    T_Employee   WHERE NOT(FAge=22) AND NOT(FSALARY<2000) 
11、多值检测(in关键字
     取代了or关键字,当需要查询的限制条件比较多时!
     Ex:取年龄为23,25,26的员工,SELECT  FAge,FNumber,FName  FROMT_Employee  WHERE    FAge IN(23,25,28)
12、数据分组(GROUP BY)
     公司人员的年龄段:SELECT  FAge FROM    T_Employee   GROUP  BY   FAge
原文地址:https://www.cnblogs.com/shadow-fei/p/3369684.html