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