为质量而战!为胜利而战!

发布新日志

  • 用文本方式将数据添加到数据表中(一个可以添加多条记录)

    2009-06-16 11:37:39

    为了方便向数据表中添加记录,可以先把所要添加的数据做成一个文本文件,把下面3条记录复制到test.txt文本中,注意每行一条记录,且要以tab键隔开,china后也要有tab键隔开

    张三 男 china

    李四 女 usa

    小陈 男 china

    开始加载,命令如下

    mysql> load data local infile "D:\test.txt" into TABLE testTable;

    (testTable为数据表的名称,test.txt在D盘下)

  • MySQL基础:查看数据库和表;创建用户,数据库,表;增删改数据

    2009-06-16 11:36:33

    查找存在的数据库 mysql>show DATABASE;

    查找当前数据库存在的所有表 mysql>show TABLES;

    创建一个用户名为:test密码为:123456的用户 create USER'test'@'localhost' identified by '123456';

    创建数据库 create database testDB;

    创建表 create table testTable(name varchar(20),sex char(1));

    向表添加数据 insert into testTable values('张三',m);

    更新表的数据 update testTable set name='李四' where name='张三';

    删除表的数据 delete from testTable where name='李四';

  • MySQL创建简单的存储过程

    2009-06-16 11:35:41

    1、启动:程序/MySQL Server 5.0/MySQL command line client
    输入密码登录
    2、查询当前数据库有哪些存储过程

    mysql>show procedure status where db='testTable'

    3、创建一个简单的存储过程

    mysql>create procedure hello() select 'helloworld';

    4、调用存储过程

    mysql>call hello();

  • 更高效的SQL使用技巧

    2009-06-16 09:33:03

    1、最后指定最大的表
    from a,b,c
    数据量:a<b<c

    2、使用外连接而不是union

    3、在子查询中,无需使用distinct

    select a from table where a in (selectdistinctA from table2)

    4、使用between来代替 > and <
    and a.createTime >= '2008-10-01'
     and a.createTime <= '2009-10-01'


    5、避免使用not运算符
    state not in ( '1' , '3')
    可改成state in ('2' , '4' , '5')    //前提是state的值为1、2、3、4、5中的任何一个

    6、避免使用or运算符
    用in代替:a=1 or a=2
    用union代替a=1 or b='tom'

  • 不同数据库显示前几条记录的写法

    2009-02-10 22:38:34

    Oracle:select * from table_name where rowid<11;

    DB2:select * from table_name where fetch first 10 rows only;

    SQL Server:select * top 10 from table_name;

  • Oracle管理对象--表、索引

    2008-06-19 12:37:14

    --alter,add,modify,constraint,not null,

    --创建表

    create or replace table test(
    test_id number(4),
    test_name varchar2(20)
    );

    --创建索引

    create index index_name

    on table_name(

    column_name

    );

    --删除索引

    drop index IDX_CREDIT_LIMIT_6

  • Oracle中的SQL*plus命令的使用

    2008-06-16 16:13:39

    sql*plus是与oracle进行交互的客户端工具

     >SQL  作用
     start file_name  执行一个SQL脚本文件
     @ file_name  
     edit  编辑
     / 重新运行上一次运行的sql语句 
     spool file_name  将显示的内容输出到指定文件
     spool off  关闭spool输出

     desc table_name  显示一个表的结构
       
     L  显示
     c/old/new  修改
     r  运行

  • tnsnames.ora和listener.ora配置

    2008-06-16 15:51:45

     

    文件所在路径:

    oracle\product\10.2.0.1\db_1\network\admin\ 

      (1)服务端listener.ora  
      LISTENER   =  
          (DEscrīptION_LIST   =  
              (DEscrīptION   =  
                  (ADDRESS_LIST   =  
                      (ADDRESS   =   (PROTOCOL   =   TCP)(HOST = ip)(PORT = 1521))  
                  )  
              )  
          )
       
      (2)客户端tnsnames.ora   
      SID   =  
          (DEscrīptION   =  
              (ADDRESS_LIST   =  
                  (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   ip)(PORT   =   1521))  
              )  
              (CONNECT_DATA   =  
                  (SID   =   net_ser_name)  
              )  
          )   
       

     


     

  • Oracle的序列(Sequence)是什么

    2008-06-12 10:34:14

    序列是一种数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主键值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用 层实现序列而引起的性能瓶颈。

    --(1)创建
    create sequence my_seq
    minvalue 1
    maxvalue 9999
    start with 10
    increment by 10
    nocache;

    --(2)SQL中取序列号

    SELECT my_seq.nextval FROM dual
    SELECT my_seq.CURRVAL FROM dual

  • 什么是结构化数据与非结构化数据

    2008-06-12 10:15:23

       定义  举例
    结构化数据 即行数据,可用二维表结构来逻辑表达实现的数据  如商品,可按名称、价钱等存储为二维表
    非结构化数据  与上相反

    办公文档、XML、HTML、各类报表、图像和音频/视频

  • Oracle与SQL Server数据类型区别

    2008-06-12 10:09:29

     

        Oracle  SQL Server
       number  int
       varchar2  varchar
       date  datetime
       long   ntext
       float  float(占8bit)
         

  • SQL Server 2000左连接left join on

    2008-05-20 22:01:15

    如果左表的某行在右表中没有匹配行,则在相关联的结果集中右表为NULL

    已知表一:stu

     stu_id  name  gender
     001  张三  M
     002  李四  M

    表二:borrow

     stu_id  borrow_date  book_name
     001  2008-05-20  C语言
         

    执行以下SQL语句

    select stu.stu_id,stu.name,borrow.book_name from stu left join borrow on stu.stu_id=borrow.stu_id

    结果得

     stu_id name   book_name
     001  张三 C语言 
     002  李四  NULL

  • sql server 2000数据的还原、附加和导入

    2008-04-12 13:53:21

    还原数据库 (对象是.bak)
    1、所有任务->还原数据库
    2、在“还原数据库”的框中选择一个数据库或输入一个名称
    3、单选框选择“从设备”,选择一个.BAK文件
    4、在“还原备份集”中选择一项

    附加数据库 (对象是.mdf和.ldf)
    1、所有任务->附加数据库
    2、选择一个.MDF文件


    导入数据 (对象是另一DB中的表,.mdb,.xls,.txt等)

    1、所有任务->导入数据
    2、选择数据源
    3、选择目的
    4、选择“在sql server之间复制对象和数据”

  • 查看sql server 2000的版本的三种方法

    2008-04-08 21:51:44

    方法一:

    打开企业管理器->SQL SERVRE 组->(local)window NT ->属性

    产品:有personal的是个人版的,有Enterprise的是企业版的

    产品版本:8.00.2039(sp4);8.00.760(sp3)

    方法二:

    第一步:在查询分析器
    select @@version
    print @@version

    Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
    May 3 2005 23:18:38
    Copyright (c) 1988-2003 Microsoft Corporation
    Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)

    方法三:
    C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqlservr.exe
    点击鼠标右键查看版本也能得到,不过信息比较简单而已。8.00.2039就代表安装的SQL Server的版本了。

    安装了SP4,对应号是8.00.2039
    安装了SP3,对应号是8.00.760

  • 创建存储过程请记得存在性的检查

    2008-04-08 14:46:56

    if exists(select name from sysobjects where name='test' and type='p')

    Drop procedure test

  • 一个简单的触发器例子

    2008-04-08 14:29:02

    已知两个关联表

    s表:四个字段id,s#,sname,age

    sc表:四个字段id,s#,c#,cname

    开始创建触发器

    Create Trigger editNo
     On s                        --在哪里触发
     for Update                         --为哪个事件触发
     As                                     --事件触发后所要做的事情
     if Update(s#)          
      begin
       Update sc
       Set s#=i.s#
       From sc , Deleted  d ,Inserted i     --临时表
       Where sc.s#=d.s#
      end 

    触发器是自动的,在以上的例子中,当对s表中的s#修改,sc表中的s#也会相应的做修改

Open Toolbar