• 数据库私房菜——(扯淡的三种主流数据库 oracle、sqlserver、mysql)


    一、 查看当前库有哪些表以及表结构

    --oracle查看当前表空间中的表
    select table_name from user_tables;
    --oracle查看当前表空间中的视图
    select view_name from user_views;
    --oracle查看表结构
    desc emp
    --


    --
    SQLServer查询某数据库所有表的表名: select name from sysobjects where xtype='U' and name like '%x_flow_history%' order by name --sqlserver查询某表的表结构: SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('x_flow_history')
    简便写法: sp_help x_flow_history


    --mysql查看所有数据库
    show databases
    --mysql查看所有表
    show tables
    --mysql查看表结构
    desc t_device

    二、 两种临时表格式

    全局临时表和本地临时表,全局临时表可以被创建临时表的连接和其它连接同时访问,本地临时表只能被创建这个临时表的连接所访问。
    全局临时表的表名以##开头,比如##、##a、##1等都是合法的全局临时表表名;
    本地临时表以#开头,比如#、#a、#1都是合法的本地临时表表名。

    三、 对空值的处理

    isnull(sal, 0) --sqlserver
    nvl(sal, 0) --oracle
    ifnull(sal, 0) --mysql

    四、单表复制

    select * into hzm_x_flow_history from x_flow_history   --sqlserver
    create table emp2 as select * from emp --oracle

    --mysql复制表结构
     create table a like users;      
    create table b select * from users limit 0;

    --mysql复制表结构以及数据
    create table c select * from users;
    --显示创表的sql
    show create table users\a;      

    五、sqlserver设置IDENTITY_INSERT为ON

    create table t_test1 (
        id int identity(1, 1),
        username varchar(20),
        sal int
    )
    GO
    SET IDENTITY_INSERT t_test1 ON

    六、SQL循环

    declare @i int
    set @i = 1
    while @i < 500
    begin 
    insert into t_test1(id, username, sal) values(@i, 't' + cast(@i as nvarchar), @i)
    set @i = @i + 1
    end

    七、分页

    --sqlserver效率不高
    select top(100) * from t_testTop where id not in (select top(1000000) id from t_testTop) 
    
    --稳定性有待验证(不通用)
    select top(100) * from t_testTop where id > (SELECT MAX(id) FROM (SELECT TOP(1000000) id FROM t_testTop) AS T)


    --oracle
    SELECT sal FROM
    (
             SELECT emp.*, ROWNUM RN
             FROM (SELECT * FROM emp order by sal desc) emp
             WHERE ROWNUM <= 10
    ) WHERE RN >= 6 

      --mysql

      select * from t_device limit 1, 5

    八、创建主键、序列

    --mysql
    id int primary key auto_increment
    --sqlserver id int primary key identity(1, 1)
    --oracle create sequence id_seq id int primary key insert into xx values(id_seq.nextval)



  • 相关阅读:
    Mousejack Hacking : 如何利用MouseJack进行物理攻击
    美国总统大选,黑客组织“匿名者”(Anonymous)也来凑热闹
    移动终端iframe的旋屏
    sql 语句和 mongodb 语句对应表
    [转] 两个viewport的故事
    单机斗地主
    websokcet压力测试工具
    python处理网络文字流,设置为utf8编码
    mysql常用命令
    redis学习资料
  • 原文地址:https://www.cnblogs.com/hzm112567/p/2848840.html
Copyright © 2020-2023  润新知