top 用于规定要返回的记录的数目 select top number | percent column_name(s) from table_name like 以及 not like 用于在where 子句中搜索列中的指定模式 select column_name(s) from table_name where column_name like pattern select * from persons where city like '%lon%'
SQL通配符 在搜索数据库中的数据时,SQL通配符可以替代一个或多个字符,通配符必须和LIKE一起使用。 % 替代一个或多个字符 _ 下划线仅替代一个字符 [charlist] 字符列中的任何单一字符 [^charlist]或[!charlist] 不在字符列中的任何单一字符 select * from persons where city like '[ALN]%' 居住的城市以 A ,L或 N开头的人
in 允许我们在where 子句中规定多个值 select column_name(s) from table_name where column_name in (v1,v2,v3``````)
between ····· and 选取介于两个值之间的数据范围 select column_name(s) from table_name where column_name between value1 and value2 某些数据库不包括边界,某些包括 判断字符顺序的时候可以使用这个
sql alias 可以为列名称和表名称指定别名 select column_name(s) from table_name as alias_name select column_name as alias_name from table_name
sql join 根据两个或 多个表中列之间的关系,从这些表中查询数据 数据库中的表可通过键将彼此联系起来。主键是一个列,在这个列中每一行的值都是唯一的。在表中,每个主键的值都是唯一的,这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起 select p.firstname,p.lastname,o.orderno from persons as p inner join orders o on p.id_p = o.id_p inner join 内连接 在表中存在至少一个匹配时,则返回行 join 如果表中有至少一个匹配,则返回行 select column_name(s) from table_name1 inner join table_name2 on table_name1.column_name = table_name2.column_name left join 即使右表中没有匹配,也从左表返回所有的行 select column_name(s) from table_name1 left_join table_name2 on table_name1.column_name = table_name2.column_name right join 即使左表中没有匹配,也从右表返回所有的行 select column_name(s) from table_name1 right join table_name2 on table_name1.column_name = table_name2.column_name full join 只要其中一个表中存在匹配,就返回行。 select column_name(s) from table_name1 full join table_name2 on table_name1.column_name = table_name2.column_name sql union 用于合并两个或多个select 语句的结果集 select column_name(s) from table_name1 union select column_name(s) from table_name2 注意:union 内部的select语句必须拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条select语句中的列的顺序必须相同。 union 和union all 执行结果的唯一区别就是,union 会将相同结果的行合并成一行,而union all会显示所有的 union 结果集中的列名总是等于union第一个select中的列名 select into 从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份复件或者用于对记录进行存档。 select * into new_table_name [in externaldatabase] from old_tablename select column_name(s) into new_table_name [in externaldatabase] from old_tablename new_table_name 该数据库不能是已经存在的表
create table table_name( id int primary key identity(1,1) not null, column1 varchar(20) not null, column2 datetime , column3 decimal(18,2) not null, id_p int foreign key references table_name2(id_p) ) SQL 约束 not null 不接受null值 unique 唯一标识数据库表中的每条记录,没有相等的 primary key 主键 foreign key 外键 foreign key (id_p) references persons(id_p) check 用于限制列中的值的范围 default 用于向列中插入默认值 CONSTRAINT 【ADD CONSTRAINT 约束名 UNIQUE (Id_P,LastName)】 alter table persons drop constraint 约束名 alter table orders add constraint 约束名 foreign key (id_p) references persons(id_p) alter table persons add constraint chk_person check (id>0 and city ='sandnes') alter table persons alter column city drop default create index 语句用于在表中创建索引,在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据 用户无法看到索引,它们只能被用来加速搜索/查询 注:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是在常常被搜索到的列(以及表)上面创建索引。 create index index_name on table_name (column_name) create unique index index_name on table_name(column_name) 唯一的索引意味着两个列不能拥有相同的索引值。 create index personindex on person (lastname desc) drop drop index 索引名 on 表名 drop table 表名 drop database 数据库名 truncate table 表名 仅删除表内的数据,不删除表本身 alter table 添加,修改或删除列 alter table table_name add column_name datatype alter table table_name drop column column_name alter table table_name alter column column_name datatype 改变表中列的数据类型 如果column有索引,则不能对该列进行数据类型修改或者删除,只有删除索引后,才可以对该类进行操作 auto-increment 插入表中时生成一个唯一的数字 view 视图是基于SQL语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加SQL函数、where以及 join语句,我们也可以提交数据,就像这些来自于某一个单一的表。 数据库的设计和结构不会受到视图中的函数、where或join语句的影响。 create view view_name as select column_name(s) from table_name where condition create view 必须是批处理中仅有的语句,即查询中不能有其他语句 更新视图:create or replace view yma1_view as select year,amount from yma1【在测试的时候,出错,错误提示:or 附近存在语法错误】 删除视图:drop view view_name
日期 在处理日期时,需要确保所插入的日期格式,与数据库中日期列的格式相匹配。如果数据包含的只是日期部分,运行查询就不会出问题,但是, 如果涉及时间,情况就会变得复杂。
|
|