• sql sever基本语法总结


    一.数据库导入表  

    1.先用sql语句创建相应的表,包括表的字段和字段类型  

    2.导入数据,选择相应的表名,不带'$'符号的表名

    二.创建数据库  

    create datatable 数据库名

    三.查看表里的字段结构  

    sp_help 表名

    四.创建表  

    create table 表名(字段名 字段类型,字段名 字段类型)   

    类型解析:   

    nchar(n)     固定长度,存储Unicode字符,不足的补英文半角空格  

    char(n)      固定长度,存储ANSI字符,不足的补英文半角空格。

     varchar(n)   可变长度,存储ANSI字符,根据数据长度自动变化。  

    nvarchar(n)  可变长度,存储Unicode字符,根据数据长度自动变化(两个字节表示一个字符)  

    numeric(4,1) 共四位,小数点后保留一位  

    datetime     一般用来存放出生日期  

    tinyint      0~255  

    smallint     -32768~32767

    五.删除表

     drop table 表名

    六.表中添加列

     alter table 表名 add 列名 列的类型

    七.表中修改列

     alter table 表名 alter column 列名 类型

    八.表删除列

     alter table 表名 drop column 列名

    九.表中插入记录  

    a) insert into 表名 values(数据1,数据2)    

    对于不确定的写null  

    b)insert into 表名(列1,列2)values(数据1,数据2)   

    其它值被默认为null  对于字符类型的数据插入时要用单引号,datetime类型的数据添加单引号

    十.表查询除去重复列  

    select distinct 列名 from 表名

    十一.条件查询用where

    十二.查询某字段的长度为3个字符,where条件里写:  字段名 like '___'  下划线的个数为3个

    十三.模糊匹配用like '%表示的匹配美容'     

    模糊不匹配用not like '%表示的匹配内容'

    十四.可以在where条件里进行算术运算

    十五.查询是否是某几个特定的值用in (值1,值2)

    十六.对于多条件的或查询

    例如:  查询课程号以“01”结尾的并且学时不少于48的课程号,课程名,课程类型和开课学期,

    或者不以 “C0”开头的,必修专业基础课的课程号,课程名,课程类型和开课学期

    select courseno,cname,type from course where courseno like '%01' and period >=48 or (type='必修' and courseno not like '%c0') 

    十七.多条件排序  

    排序方式:desc降序  asc升序  order by 条件1 排序方式,条件2 排序方式

    十八.区间查询

    between a and b

    十九.限制查询的条数:

    在查询关键字前加上top 条数

     例如:select * from student where birthday>(select top 1 birthday from student where sname='梁欣' ) and sex = (select sex from student where sname='梁欣')

    二十.查询取了别名表中的全部数据用:

    别名.*

    二十一.默认值的设置:  

    ISNULL(COUNT(studentno),0) studentno的值为空则显示0

    二十三.统计不重复列的数量:  

    select count(distinct sno) from student

    二十四.where子句不能用聚合函数作为条件表达式

    聚合函数只能用于select子句和group by中的having子句

    二十五.查询数据库中所有的表

    SELECT Name FROM SysObjects Where XType='U'

    二十六.挑选一个表中的数据放入另一个(表已存在的条件下)

     a.  insert into 表1(字段1,字段2) 直接写表2的select语句   

    例如:insert into student_backp(sid,name,classno,sex,birth,point,phone) select studentno,sname,classno,sex,birthday,point,phone from student where point>700  

    b. insert into 表1 直接写表2的select语句(两个表的表字段和类型都要相同)

    select studentno,sname,classno,sex,birthday,point,phone from student where point>700

    二十七.清空表 truncate table 表名 二十八.在表不存在的情况下将数据插入表中  

    select 字段1,字段2  into 新表  from 旧表

    二十九.给已存在的表添加主键  

    因为主键不能为空,所以在给已存在于表中的字段设置主键时先要用sql语句把此字段设置为非空,然后写  

    alter table 表名  add constraint 主键名 primary key(字段名)

    三十.删除表中的主键  

    alter table 表名 drop constraint 主键名

    三十一.创建表时设置主键  

    a. 定义字段时直接定义  

    字段名 字段类型 primary key  

    b.在定义的所有字段下面定义  

    PRIMARY KEY (字段名1,字段名2) 设置多个主码  

     或:  constraint 主键名 primary key(字段名)

    三十二.在已存在的表中添加外键  

    alter table 表1  add constraint 外键名  foreign key(表1的字段) references 表2(表2的字段)

    三十三.在不存在的表上添加外键  

    字段名 int constraint 主键名 foreign key  references 表2(表2的字段) 

    下面一行可有可无  

    on delete cascade 级联删除(一个表中的记录删除。另一个表记录也删除)  

    可以把cascade改为null(一个表中的记录删除。另一个表记录相应部分置空)  

    还要注意的是,两个字段的类型要一致  

    on update cascade  (级联更新)

    三十四.唯一约束

    唯一约束unique和主键的创建方式差不多,唯一约束允许为空

    三十五.在已存在的表中创建唯一约束:

    alter table 表名 add constraint 约束名称 unique(字段名)

    三十六.check约束用户定义完整性:  

    格式a:字段名 字段类型 check(条件表达式)  --创建表时添加约束  

    格式b:alter table 表名        --修改表时添加约束

    add constraint 约束名 check (条件表达式)

    三十七.删除check约束  

    alter table 表名  drop constraint 约束名

    三十八.创建视图

     a.  create view 视图名 as select语句

     b.  创建视图时加上with check option,当对视图进行插入修改和删除操作时,会给视图加上where里的属性   

    create view 视图名   as   select。。where 。。   with check option

    三十九.删除视图  

    drop view 视图名 cascade  

    cascade可要可无,添加此词表示级联删除,把该视图和由它导出的所有视图一起删除

    四十. 创建存储过程

    create or replace procedure 过程名(参数1 参数1类型,参数2 参数2类型)  as 过程化sql块

    四十一.执行存储过程

     call/perform procedure 过程名(参数1,参数2)

    四十三.重命名存储过程  

    alter peocedure 过程名1 rename to 过程2

    四十四.重新编译一个存储过程  

    alter procedure 过程名 compile

    四十五.删除存储过程

     drop procedure 过程名()

  • 相关阅读:
    webpack 配置别名,解决 import 时路径查找麻烦的问题
    Vue 中 diff 算法后更新 DOM 的方法
    React Native 开发环境搭建
    JavaScript 堆排序详解
    JavaScript 快速排序详解
    websocket 心跳重连
    AJAX 请求后使用 JS 打开新标签页被阻止的解决方法
    auto.js环境搭建
    Mac os 创建pppoe拨号
    mac os IntelliJ IDEA搭建环境
  • 原文地址:https://www.cnblogs.com/liuwanqiu/p/5564524.html
Copyright © 2020-2023  润新知