zoukankan      html  css  js  c++  java
  • SQL基础(二)

    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


     日期

    在处理日期时,需要确保所插入的日期格式,与数据库中日期列的格式相匹配。如果数据包含的只是日期部分,运行查询就不会出问题,但是,

    如果涉及时间,情况就会变得复杂。

  • 相关阅读:
    Shell是linux下的脚本语言解析器
    semver 是 语义化版本
    js中限制字符串输入中英文字符的长度封装
    chalk.js(node终端样式库)
    分页
    利用Nodejs的os.networkInterfaces()模块修改vuecli项目默认打开地址
    物理像素
    长列表优化eg
    [JSOI2008]球形空间产生器
    标记不下传线段树(混蛋树)
  • 原文地址:https://www.cnblogs.com/zyc19910109/p/8625176.html
Copyright © 2011-2022 走看看