sql server中的实用操作

一、sql server服务器操作

  1. 查看sql server服务器的状态

    systemctl status mssql-server
    
  2. 重启sql server 服务器

    systemctl restart mssql-server
    
  3. 停止

    systemctl stop mssql-server
    
  4. 开启

    systemctl start mssql-server
    
  5. linux中远程连接服务器端的sql server

    sqlcmd -S 192.168.*.* -U sa -P '123456'
    

二、数据表操作

  1. 将表A的id重置为从1开始(不保留表A中的内容)
    truncate TABLE A;
    
  2. 将表A的id重置为从1开始(保留表A中的内容)
    DBCC CHECKIDENT (A,reseed,0)
    
  3. 统计表A中所有的项目出现的次数
    SELECT pro_Id as 项目ID, COUNT(*) as 次数  from A GROUP BY pro_Id
    ORDER BY pro_Id;
    
  4. 根据条件 “pro_Id = 1” 删除表A中的数据
    DELETE FROM A WHERE pro_Id = 1;
    
  5. 向表A中插入字段 a_field
    ALTER TABLE A ADD a_field INT NOT NULL DEFAULT 0;
    
  6. 更新表A字段a_field
    UPDATE A SET a_field = 1 WHERE a_field = 0;
    
  7. 表A中查询a_field 不等于“1,2,3”的所有数据
    SELECT * from A where a_field not in('1', '2', '3');
    
  8. 查询表A中a_field为空的所有数据
    SELECT * FROM A where a_field is null;
    
  9. 根据pro_id字段,查询表A中的所有重复数据
    SELECT DISTINCT pro_id FROM A;
    
  10. 根据pro_id字段,取表A和表B的差集,存在A表中不存在B表中
    SELECT * FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE A.pro_id = B.pro_id)
    
  11. 根据pro_id字段,取表A和表B的并集,A表和B表公有的数据
    SELECT * FROM A WHERE EXISTS (SELECT * FROM B WHERE A.pro_id = B.pro_id)
    
  12. 根据pro_id字段,查询表A中出现两次以上的数据
    SELECT pro_id, COUNT(1) FROM A Group By pro_id Having Count(1) > 1;
    
  13. 替换表A中,a_row列中的数据,将字段内容中的所有java替换成python
    update A set a_row = replace(cast(a_row as varchar(30)),'java','python');
    
  14. 根据pro_id,a_row字段去除表A中的重复值,保留最新的一条(根据自增id,保留id最大的一条)
    with m as (
     select row_number() over(partition by pro_id , a_row order by id desc) rn , * from A
    )
    delete m where rn > 1 
    go
    
  15. 根据a_date时间字段查询表A中2020-06-26号的数据
    select * from A where a_date = CONVERT(DATETIME,'2020-06-26 00:00:00', 121)
    
  16. 根据a_date时间字段查询表A中的数据,并升序(asc)排列,倒叙(desc)
    select * from A ORDER BY a_date asc;
    
  17. 更新表A中的a_date时间字段,当a_field=1时,将a_date改为2020-06-26号
    update A set a_date=CONVERT(DATETIME, '2020-06-26 00:00:00', 121) WHERE  a_field = 1;
    
  18. 根据a_date时间字段,查询表A中最近一周的数据(0表示当天,1代表昨天,依次类推)
    select * from A where (DateDiff(dd, a_date, getdate()) between 1 and 7);
    
  19. 根据a_date时间字段,查询表A中当天的数据
    select * from A where DateDiff(dd, a_date, getdate()) = 0; 
    
  20. 合并A表和B表 (A、B中的字段名可以不一样,但位置一定要对应,字段属性要一样)
    insert into A ("pro_id", "a_field", "a_date") select "pro_id", "b_field", "b_date" from B;
    

你可能感兴趣的:(数据库)