zoukankan      html  css  js  c++  java
  • 20151019sql1

    一基础知识

    SQLServer:前后后台进行数据交互

    1、创建数据库

    数据库-新建数据库(数据库文件,日志文件)

    数据库、表、字段规范:英文名词开头,单词首字母大写。

    以增强代码的可读性

    对数据库进行操作的语句叫sql

    2、创建表

    ID 图片 价格 详情

    表-新建表

    表一般都必须有一个自增的主键

    主键:通过主键找到对应的内容,主键是不能重复的。

    设置主键- 标识规范(是)

    3、数据类型:

    char(10) 定长 会用空格补齐

    nchar(10)定长

    varchar(10)变长

    nvarchar(10)变长 用户名 50

    nvarchar(Max)不确定的内容,大量文本内容 Introduce

    datetime时期类型 Birthday

    int 整数 age

    float小数 工资

    bit  bool类型 1true 2 false

    4、修改表

    5、允许null值 勾如果去掉,就不能为空

    6、设置默认值  默认值或绑定  

    CreatedTime  getdate()获取当前系统的值

    7、不能保存的时候 工具-选项-designers-去掉阻止修改数据

    8、删除数据库时,出现无法删除,数据库当前正在使用:解决方案:重启sqlserver服务 在顶级节点

    二、SQL语句

    1、创建数据库

    create database Library

    go

    use Library

    go

    2、创建表

    create table Users

    {

    UID int primary key, //创建ID  写表名+ID

    UserName nvarchar(20) not null,

    UserPwd nvarchar(20) not null

    }

    SQL语句不区分大小写

    3、查询语句

    select *  from StuInfor

    select StuId from StuInfor

    在sql语句里字符串是单引号

    select * from StuInfor Country='中国' and ClassName='一班'

    select * from StuInfor Country='中国' and (ClassName='一班' or ClassName='二班')

    select * from StuInfor Country='中国' and ClassName in('一班','二班')

    排序: desc大到小 默认小到大

    select * from StunInfor order by Age desc

    年龄最大的三个同学

    select top 3 * from StunInfor order by Age desc

    select top 3 StuName from StunInfor order by Age desc

    介于之间 区间

    select * from StuInfor where Age>=24 and Age<=28

    select * from StuInfor where Age between 24 and 28

    统计 用as重新命名

    select count(*) as StuCount  from StuInfor where ClassName='一班'

    分组

    select country,count(*) as StuCount from StrInfor group by Country

    分组筛选 以什么分组,就是前面可以用的字段

    国家大于2

    select country,count(*) as StuCount from StrInfor group by Country having cout(*)>2

    模糊匹配 like %  开头 小%   结尾 %小 包含 %小%

    所有姓小的同学

    select * from StuInfor where StuName like '小%'

    计算

    select SUM(age) from StuInfor

    select MIN(age) from StuInfor

    select MAX(age) from StuInfor

    select AVG(age) from StuInfor

    年龄大于平均年龄值的学生

    select * from StuInfor where Age>(select AVG(age) from StuInfor)

    增删改查最难的是查询

    联合查询 别名

    主键 外键

    select StuId,StuName,ClassName from StuInfor

    select SI.StuId.SI.StuName,SI.ClassName,PE.FatherName,PE.MotherName from StuInfor SI

    left join Parenet PE

    on SI.StuId=Pe.StuId

    left join 以左表为主,左表内容都会显示出来。右表里没有的数据以null填充

    right join 以右表为主,右表的内容都会显示出来,左表里没有的数据以null填充

    inner join 以公共为主

    三个表进行联合查询 把前面的联合查询做为一个表 再和另一个表查询

    语文成绩 数学成绩

    select SP.StuId,SP.StuName,SP.ClassName,SP.FatherName,SP.MotherName,SC.EnlishScore,SC.ChineseScore

    from

    (select SI.StuId.SI.StuName,SI.ClassName,PE.FatherName,PE.MotherName from StuInfor SI

    left join Parenet PE

    on SI.StuId=Pe.StuId) SP

    inner join  Score SC

    on SP.StuId=SC.StuId

    四个表的联合查询 需求就有点问题了。

  • 相关阅读:
    Codeforces Round #277 (Div. 2)
    Topcoder SRM 637 (Div.2)
    【转】大素数判断和素因子分解【miller-rabin和Pollard_rho算法】
    【网络流#5】UVA 11082 最大流
    【网络流#4】UVA 753 最大流
    Codeforces Round #274 (Div. 2)
    【网络流#3】hdu 1532
    【网络流#2】hdu 1533
    【网络流#1】hdu 3549
    Codeforces Round #273 (Div. 2)
  • 原文地址:https://www.cnblogs.com/16lily521/p/4925068.html
Copyright © 2011-2022 走看看