精华内容
下载资源
问答
  • 执行数据库操作命令对象SqlCommand

    千次阅读 热门讨论 2018-11-16 16:04:12
    数据库应用程序的开发流程一般主要分为以下几个步骤: ... 使用Connection对象成功创建数据库连接后,接下来就可以使用Command对象对数据源执行查询、添加、删除和修改等各种SQL命令了。 SqlComma...

    数据库应用程序的开发流程一般主要分为以下几个步骤:

    1. 创建数据库
    2. 使用Connection对象连接数据库
    3. 使用Command对象对数据源执行SQL命令并返回数据源的数据
    4. 使用DataReader和DataSet对象读取和处理数据源的数据

    使用Connection对象成功创建数据库连接后,接下来就可以使用Command对象对数据源执行查询、添加、删除和修改等各种SQL命令了。

    SqlCommand对象用来对SQL Server数据库执行操作命令
    属性 说明
    CommandText 获取或设置要执行的SQL语句或存储过程
    Connection 获取或设置Command对象所要连接的Connection对象
    CommandTimeout 获取或设置命令等待执行的超时时间,默认值为30秒
    Parameters 获取与该命令关联的参数集合
    CommandType 获取或设置命令的种类,默认值为Text
    SqlCommand对象的主要方法
    方法 说明
    Cancel 结束执行SQL语句
    Dispose 关闭Command对象,并释放所占用的系统资源
    ExecuteScalar 用于执行查询语句,并返回单一值或者结果集中的第一条记录的第一个字段的值。该方法适合只要一个结果的查询,例如使用Sum、Avg、Max、Min等函数的SQL语句
    ExecuteNonQuery 用于执行SQL语句,并返回SQL语句所影响的行数。该方法一般用于执行insert、delete、update等语句
    ExecuteReader 用于执行查询语句,并返回一个DataReader类型的行集合

    1. ExecuteNonQuery方法,执行更新操作,如与 insert、delete 和 update 语句有关的操作

    SqlConnection con = new SqlConnection();
    con.ConnectionString ="连接字符串";
    SqlCommand com = new SqlCommand();
    com.Connection = con;
    com.CommandText = "数据更新命令";
    con.Open();
    com.ExecuteNonQuery();  //执行Command命令
    con.Close();
    

    2. ExecuteReader方法,通常与查询命令 select 一起使用,并返回一个数据读取器对象 SqlDataReader 类的一个实例。

    SqlConnection con = new SqlConnection();
    con.ConnectionString = "连接字符串";
    SqlCommand com = new SqlCommand();
    com.Connection = con;
    com.CommandText = "查询语句";
    con.Open();
    SqlDataReader sdr = com.ExecuteReader();
    while(sdr.Read()){
       Response.Write(sdr[0]);  //输出第一个字段的内容
    }
    con.Close();
    

    3. ExecuteScalar方法,如果只想检索数据库信息中的一个值,而不需要返回表或数据流形式的数据,即可使用此方法。例如只需要返回count(*)、avg(价格)、sum(数量)等函数的结果就可以使用此方法。

    SqlConnection con = new SqlConnection();
    con.ConnectionString = "连接字符串";
    SqlCommand com = new SqlCommand();
    com.Connection = con;
    com.CommandText = "select avg(价格) from 你的表";
    con.Open();
    Response.Write(com.ExecuteScalar());  //输出第一个字段的内容
    con.Close();
    

    【例】使用SqlComman对象增加数据库数据,将注册信息插入数据库中

    protected void btnRegister_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\ASUS\Desktop\案例\EBookShop\App_Data\ShopBookDB.mdf;Integrated Security=True;User Instance=True";
            SqlCommand com = new SqlCommand();
            com.Connection = con;
            com.CommandText = string.Format("insert into users(user_name,password,sex,age,email,createDate) values('{0}','{1}','{2}','{3}','{4}','{5}')",txtName.Text.Trim(),txtPwd.Text.Trim(),rbFemale.Checked?"男":"女",txtAge.Text.Trim(),txtEmail.Text.Trim(),DateTime.Now.ToShortDateString());
            con.Open();
            com.ExecuteNonQuery();
            try {
                Response.Write("<script>alert('注册成功')</script>");
                con.Close();
            }
            catch(Exception){
                Response.Write("<script>alert('数据库无法连接')</script>");
                con.Close();
            }
            
        }
        来自大神博客:https://www.cnblogs.com/yankyblogs/p/6870138.html
    

    展开全文
  • DM达梦数据库常用命令整理

    千次阅读 2020-09-10 17:05:12
    DM达梦数据库常用命令整理 说明: 主要对DM V8数据库,常用SQL命令进行整理,方便日后进行查找,以及对状态结果是否正确的确认。命令设计的均为简单的命令,即查询,创建,定义等方式成功即可,不涉及复杂的限制参数...

    DM达梦数据库常用命令整理

    说明: 主要对DM V8数据库,常用SQL命令进行整理,方便日后进行查找,以及对状态结果是否正确的确认。命令设计的均为简单的命令,即查询,创建,定义等方式成功即可,不涉及复杂的限制参数,参考条件等。此次使用的为DM V8单实例数据库,不涉及特殊模式下,个别特殊命令的查询。

    1.数据库自身信息

    1.1 查询实例信息

    SQL> select name inst_name from v$instance;
    
    行号     INST_NAME
    ---------- ---------
    1          DMSERVER
    
    已用时间: 11.211(毫秒). 执行号:15.
    

    1.2 查询数据库当前状态

    SQL> select status$ from v$instance;
    
    行号     STATUS$
    ---------- -------
    1          OPEN
    

    1.3 查询DB_MAGIC

    SQL> select db_magic from v$rlog;
    
    行号     DB_MAGIC            
    ---------- --------------------
    1          1040931148
    
    

    1.4 查询是否归档

    SQL> select arch_mode from v$database;
    
    行号     ARCH_MODE
    ---------- ---------
    1          N
    

    1.5 查询授权截止有效期

    SQL> select EXPIRED_DATE  from v$license;
    
    行号     EXPIRED_DATE                                                                                        
    ---------- ------------------
    1          2021-06-01
    

    1.6 查看等待情况

    SQL> select class_name,total_waits count from v$wait_class;
    未选定行
    
    已用时间: 116.087(毫秒). 执行号:27.
    

    1.7 查看数据库配置端口

    SQL> select para_name,para_value from v$dm_ini where para_name like '%PORT%';
    
    行号     PARA_NAME            PARA_VALUE
    ---------- -------------------- ----------
    1          PORT_NUM             5236
    2          ELOG_REPORT_LINK_SQL 0
    3          DFS_HUGE_SUPPORT     1
    4          EXTERNAL_JFUN_PORT   6363
    5          EXTERNAL_AP_PORT     4236
    6          DCRS_PORT_NUM        6236
    7          AP_PORT_NUM          0
    8          DW_PORT              0
    9          DCP_PORT_NUM         5237
    10         HA_OTHER_INST_PORT   65534
    11         HA_INST_CHECK_PORT   65534
    
    11 rows got
    
    已用时间: 96.994(毫秒). 执行号:8.
    

    1.8 查询数据库最大连接数

    SQL> select SF_GET_PARA_VALUE(2,'MAX_SESSIONS');
    
    行号     SF_GET_PARA_VALUE(2,'MAX_SESSIONS')
    ---------- -----------------------------------
    1          100
    
    已用时间: 1.961(毫秒). 执行号:5.
    

    1.9 查询命令执行计划

    SQL>  explain select * from test_table;
    
    1   #NSET2: [0, 1, 56] 
    2     #PRJT2: [0, 1, 56]; exp_num(2), is_atom(FALSE) 
    3       #CSCN2: [0, 1, 56]; INDEX33555607(TEST_TABLE)
    
    已用时间: 3.655(毫秒). 执行号:0.
    

    1.10 查询用户密码限制登录次数和密码过期天数

    SQL> select u.username,p.FAILED_NUM,p.life_time from SYSUSERS p,dba_users u where  p.FAILED_NUM not in ('0') order by 1,2 ;
    
    行号     USERNAME   FAILED_NUM  LIFE_TIME  
    ---------- ---------- ----------- -----------
    1          SYS        3           0
    2          SYSAUDITOR 3           0
    3          SYSDBA     3           0
    4          SYSSSO     3           0
    5          TEST       3           0
    
    已用时间: 12.079(毫秒). 执行号:66.
    

    注释:life_time为0,表示不限制密码过期天数

    1.11 查询数据库字符集

    SQL> select SF_GET_UNICODE_FLAG();
    
    行号     SF_GET_UNICODE_FLAG()
    ---------- ---------------------
    1          0
    
    已用时间: 0.321(毫秒). 执行号:38.
    SQL> select  UNICODE ();
    
    行号     UNICODE()  
    ---------- -----------
    1          0
    
    已用时间: 0.288(毫秒). 执行号:39.
    

    注释:0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR

    1.12 修改密码策略

    SQL> SP_SET_PARA_VALUE(1,'PWD_POLICY',3);
    DMSQL 过程已成功完成
    已用时间: 10.188(毫秒). 执行号:7.
    

    系统支持的口令策略有:
    0无策略
    1禁止与用户名相同
    2口令长度不小于9
    4至少包含一个大写字母(A-Z)
    8至少包含一个数字(0-9)
    16至少包含一个标点符号(英文输入法状态下,除”和空格外的所有符号)

    口令策略可单独应用,也可组合应用。比如我们即要求禁止用户名与密码相同,又要求口令至少包含一个大写字母,则设置口令策略为1+4=5即可。

    1.13 查看密码策略

    SQL> select * from v$dm_ini a where a.PARA_NAME = 'PWD_POLICY';
    
    行号     PARA_NAME  PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE
    ---------- ---------- ---------- --------- --------- ------- ---------- ----------
               DESCRIPTION             PARA_TYPE
               ----------------------- ---------
    1          PWD_POLICY 2          0         31        N       2          2
               Flag of password policy SYS
    
    
    已用时间: 16.146(毫秒). 执行号:4.
    

    1.14 查看每个用户的密码策略

    SQL> select username,password_versions,account_status from dba_users;
    
    行号     USERNAME   PASSWORD_VERSIONS ACCOUNT_STATUS
    ---------- ---------- ----------------- --------------
    1          SYSDBA     0                 OPEN
    2          SYS        0                 OPEN
    3          TEST12345  3                 OPEN
    4          TEST       2                 OPEN
    5          SYSSSO     0                 OPEN
    6          SYSAUDITOR 0                 OPEN
    
    6 rows got
    
    已用时间: 185.814(毫秒). 执行号:11.
    

    2.数据库文件/空间信息

    2.1 查询归档信息

    SQL> select * from v$dm_arch_ini;
    
    行号     ARCH_NAME      ARCH_TYPE ARCH_DEST                               ARCH_FILE_SIZE
    ---------- -------------- --------- --------------------------------------- --------------
               ARCH_SPACE_LIMIT ARCH_HANG_FLAG ARCH_TIMER_NAME ARCH_IS_VALID ARCH_WAIT_APPLY
               ---------------- -------------- --------------- ------------- ---------------
               ARCH_INCOMING_PATH ARCH_CURR_DEST                         
               ------------------ ---------------------------------------
    1          ARCHIVE_LOCAL1 LOCAL     /home/dmdba/opt/dmdbms/data/DAMENG/arch 128
               5000             1              NULL            Y             NULL
               NULL               /home/dmdba/opt/dmdbms/data/DAMENG/arch
    
    
    已用时间: 0.565(毫秒). 执行号:12.
    

    2.2 查看控制文件

    SQL> select para_value name from v$dm_ini where para_name='CTL_PATH';
    
    行号     NAME                      
    ---------- --------------------------
    1          /dmdbms/data/DAMENG/dm.ctl
    
    已用时间: 31.907(毫秒). 执行号:11.
    

    2.3 查询日志文件

    SQL> select GROUP_ID ,FILE_ID,PATH,CLIENT_PATH from v$rlogfile;
    
    行号     GROUP_ID    FILE_ID     PATH                                            CLIENT_PATH 
    ---------- ----------- ----------- ----------------------------------------------- ------------
    1          2           0           /home/dmdba/opt/dmdbms/data/DAMENG/DAMENG01.log DAMENG01.log
    2          2           1           /home/dmdba/opt/dmdbms/data/DAMENG/DAMENG02.log DAMENG02.log
    

    2.4 查询数据库占用空间

    注释:默认为M为单位

    SQL> select sum(bytes/1024/1024)|| 'M' from dba_data_files;
    
    行号     SUM(BYTES/1024/1024)||'M'
    ---------- -------------------------
    1          289M
    

    2.5 查询数据文件位置

    SQL> select GROUP_ID , ID ,path,STATUS$ from v$datafile;
    
    行号     GROUP_ID    ID          PATH                                          STATUS$    
    ---------- ----------- ----------- --------------------------------------------- -----------
    1          0           0           /home/dmdba/opt/dmdbms/data/DAMENG/SYSTEM.DBF 1
    2          1           0           /home/dmdba/opt/dmdbms/data/DAMENG/ROLL.DBF   1
    3          3           0           /home/dmdba/opt/dmdbms/data/DAMENG/TEMP.DBF   1
    4          4           0           /home/dmdba/opt/dmdbms/data/DAMENG/MAIN.DBF   1
    

    2.6 查询表空间大小

    SQL> select FILE_NAME,FILE_ID,TABLESPACE_NAME,BYTES/1024/1024||'M'  from dba_data_files;
    
    行号     FILE_NAME                                     FILE_ID     TABLESPACE_NAME BYTES/1024/1024||'M'
    ---------- --------------------------------------------- ----------- --------------- --------------------
    1          /home/dmdba/opt/dmdbms/data/DAMENG/SYSTEM.DBF 0           SYSTEM          23M
    2          /home/dmdba/opt/dmdbms/data/DAMENG/TEST.DBF   0           TEST            50M
    3          /home/dmdba/opt/dmdbms/data/DAMENG/MAIN.DBF   0           MAIN            128M
    4          /home/dmdba/opt/dmdbms/data/DAMENG/TEMP.DBF   0           TEMP            10M
    5          /home/dmdba/opt/dmdbms/data/DAMENG/ROLL.DBF   0           ROLL            128M
    

    2.7 查看表空间使用情况

    SQL>  select t1.NAME tablespace_name,
        t2.FREE_SIZE*SF_GET_PAGE_SIZE()/1024/1024 ||'M' free_space,
        t2.TOTAL_SIZE*SF_GET_PAGE_SIZE()/1024/1024 ||'M' total_space,
        t2.FREE_SIZE*100/t2.total_size "% FREE" 
        from V$TABLESPACE t1, V$DATAFILE t2 where t1.ID=t2.GROUP_ID;
    
    行号     TABLESPACE_NAME FREE_SPACE TOTAL_SPACE % FREE              
    ---------- --------------- ---------- ----------- --------------------
    1          SYSTEM          17M        24M         74
    2          MAIN            120M       128M        94
    3          TEMP            9M         10M         99
    4          ROLL            119M       128M        93
    

    2.8 查询当前用户模式

    SQL> SELECT SYS_CONTEXT ('userenv', 'current_schema') FROM DUAL;
    
    行号     SYS_CONTEXT('userenv','current_schema')
    ---------- ---------------------------------------
    1          SYSDBA
    
    已用时间: 79.134(毫秒). 执行号:6.
    

    3.数据库用户/角色信息

    3.1 查询数据库有哪些用户

    SQL> select username from dba_users;
    
    行号     USERNAME  
    ---------- ----------
    1          SYSDBA
    2          SYS
    3          SYSSSO
    4          SYSAUDITOR
    
    已用时间: 9.740(毫秒). 执行号:6.
    

    3.2 查询数据库用户信息

    SQL> select username,user_id,default_tablespace,profile from dba_users;
    
    行号     USERNAME   USER_ID     DEFAULT_TABLESPACE PROFILE                                      
    ---------- ---------- ----------- ------------------ ---------------------------------------------
    1          SYSDBA     50331649    MAIN               /home/dmdba/opt/dmdbms/data/DAMENG/MAIN.DBF
    2          SYS        50331648    SYSTEM             /home/dmdba/opt/dmdbms/data/DAMENG/SYSTEM.DBF
    3          SYSSSO     50331651    SYSTEM             /home/dmdba/opt/dmdbms/data/DAMENG/SYSTEM.DBF
    4          SYSAUDITOR 50331650    SYSTEM             /home/dmdba/opt/dmdbms/data/DAMENG/SYSTEM.DBF
    

    3.3 查看数据库对象

    SQL>  select t2.name owner,t1.subtype$ object_type,t1.valid status,count(1) count# from sysobjects t1,sysobjects t2 where t1.schid=t2.id and t1.schid!=0 group by t2.name,t1.subtype$,t1.valid;
    
    行号     OWNER      OBJECT_TYPE STATUS COUNT#              
    ---------- ---------- ----------- ------ --------------------
    1          SYS        INDEX       Y      287
    2          DEM        INDEX       Y      149
    3          CTISYS     STAB        Y      1
    4          CTISYS     CONS        Y      1
    5          CTISYS     INDEX       Y      1
    6          SYSSSO     STAB        Y      8
    7          SYSSSO     CONS        Y      9
    8          SYSSSO     INDEX       Y      9
    9          SYSAUDITOR STAB        Y      4
    10         SYSAUDITOR CONS        Y      2
    11         SYSAUDITOR INDEX       Y      5
    

    3.4 查询用户对象

    select * from user_objects;
    
    行号     OBJECT_NAME      SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
    ---------- ---------------- -------------- --------- -------------- -----------
               CREATED                                                                                             
               ----------------------------------------------------------------------------------------------------
               LAST_DDL_TIME                                                                                       
               ----------------------------------------------------------------------------------------------------
               TIMESTAMP                                                                                           
               ----------------------------------------------------------------------------------------------------
               STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME
               ------ --------- --------- --------- --------- ------------
    312        ADMIN_AUDIT_SQL  NULL           1287      NULL           TABLE
               2020-08-20 18:07:18.521000
               2020-08-20 18:07:18.000000
               2020-08-20 18:07:18.521000
               VALID  N         N         NULL      NULL      NULL
    
    
    312 rows got
    
    已用时间: 793.928(毫秒). 执行号:55.
    

    3.5 查看角色类型

    SQL> select * from dba_roles;
    
    行号     ROLE             PASSWORD_REQUIRED AUTHENTICATION_TYPE
    ---------- ---------------- ----------------- -------------------
    1          DBA              NULL              NULL
    2          DB_AUDIT_ADMIN   NULL              NULL
    3          DB_AUDIT_OPER    NULL              NULL
    4          DB_AUDIT_PUBLIC  NULL              NULL
    5          DB_AUDIT_SOI     NULL              NULL
    6          DB_AUDIT_VTI     NULL              NULL
    7          DB_POLICY_ADMIN  NULL              NULL
    
    7 rows got
    
    已用时间: 5.827(毫秒). 执行号:9.
    

    3.6 查看用户的角色和权限

    SQL> select * from SYS.DBA_ROLE_PRIVS ;
    
    行号     GRANTEE         GRANTED_ROLE     ADMIN_OPTION DEFAULT_ROLE
    ---------- --------------- ---------------- ------------ ------------
    1          SYSDBA          DBA              Y            NULL
    2          DBA             VTI              Y            NULL
    3          SYSDBA          SYS_ADMIN        N            NULL
    4          SYSDBA          SOI              Y            NULL
    5          TEST            SOI              N            NULL
    6          SYSDBA          RESOURCE         Y            NULL
    7          SYSDBA          PUBLIC           Y            NULL
    8          TEST            PUBLIC           N            NULL
    9          DB_POLICY_ADMIN DB_POLICY_VTI    Y            NULL
    10         SYSSSO          DB_POLICY_SOI    Y            NULL
    11         SYSSSO          DB_POLICY_PUBLIC Y            NULL
    
    行号     GRANTEE        GRANTED_ROLE    ADMIN_OPTION DEFAULT_ROLE
    ---------- -------------- --------------- ------------ ------------
    12         SYSSSO         DB_POLICY_OPER  Y            NULL
    13         SYSSSO         DB_POLICY_ADMIN Y            NULL
    14         DB_AUDIT_ADMIN DB_AUDIT_VTI    Y            NULL
    15         SYSAUDITOR     DB_AUDIT_SOI    Y            NULL
    16         SYSAUDITOR     DB_AUDIT_PUBLIC Y            NULL
    17         SYSAUDITOR     DB_AUDIT_OPER   Y            NULL
    18         SYSAUDITOR     DB_AUDIT_ADMIN  Y            NULL
    
    18 rows got
    
    已用时间: 4.989(毫秒). 执行号:48.
    

    3.7 表空间脱机/在线

    SQL> alter tablespace "TEST" offline; 
    操作已执行
    已用时间: 280.323(毫秒). 执行号:4.
    SQL> alter tablespace "TEST" online; 
    操作已执行
    已用时间: 121.133(毫秒). 执行号:5.
    

    4.数据库运维信息

    4.1 创建表空间

    注释:默认大小为M

    SQL> create tablespace TEST datafile '/home/dmdba/opt/dmdbms/data/DAMENG/TEST.DBF' size 50;
    操作已执行
    已用时间: 15.041(毫秒). 执行号:28.
    

    4.2 查询总表数量

    SQL> select count(*) from dba_tables;
    
    行号     COUNT(*)            
    ---------- --------------------
    1          363
    

    4.3 关闭数据库

    SQL> shutdown normal;  关闭数据库
    SQL> shutdown immediate;  正常方式关闭数据库
    SQL> shutdown abort;  立即方式关闭数据库。数据库并不立即关闭,而是在执行某些清除工作后才关闭(终止会话、释放会话资源),需要10到20S。
    

    4.4 创建用户

    SQL> create user test1 identified by 123456789 default tablespace test;
    操作已执行
    已用时间: 13.383(毫秒). 执行号:36.
    

    5.数据库表/列/视图信息

    5.1 查询当前用户所有表

    SQL> select table_name,tablespace_name from user_tables;
    
    行号     TABLE_NAME                           TABLESPACE_NAME
    ---------- ------------------------------------ ---------------
    1          ##PLAN_TABLE                         TEMP
    2          ##HISTOGRAMS_TABLE                   TEMP
    3          ADMIN_ROLE                           MAIN
    4          ADMIN_SYS_CONFIG                     MAIN
    5          ADMIN_USER                           MAIN
    6          ADMIN_AUDIT                          MAIN
    7          ADMIN_AUDIT_SQL                      MAIN
    8          DBTOOL_DTS_TRANSFORM                 MAIN
    9          DBTOOL_DTS_TRANSFORM_EXECUTE         MAIN
    

    5.2 查询表的大小

    注释:页数,默认8KB大小

    SQL> SELECT TABLE_USED_SPACE ('SYS','SYSOBJECTS') ;
    
    行号     TABLE_USED_SPACE('SYS','SYSOBJECTS')
    ---------- ------------------------------------
    1          160
    

    5.3 创建新表

    SQL> create table tests ( id char not null) ;
    操作已执行
    已用时间: 97.526(毫秒). 执行号:16.
    

    5.4 增加表的列

    SQL> alter table test_rename add ids int;
    操作已执行
    已用时间: 76.447(毫秒). 执行号:8.
    

    5.5 删除表的列

    SQL> alter table test_table drop ids;
    操作已执行
    已用时间: 107.795(毫秒). 执行号:10.
    

    5.6 重命名表名

    SQL> alter table tests rename to test_rename;
    操作已执行
    已用时间: 128.985(毫秒). 执行号:26.
    

    5.7 增加表注释

    SQL> comment on table test_rename is 'AAAAAAA';
    操作已执行
    已用时间: 52.596(毫秒). 执行号:37.
    

    5.8 查询表注释

    SQL> select comments from user_tab_comments where table_name = 'TEST_RENAME';
    
    行号     COMMENTS
    ---------- --------
    1          AAAAAAA
    
    已用时间: 2.094(毫秒). 执行号:39.
    

    5.8 增加列注释

    SQL> comment on column test_rename.id is 'Primary'; 
    操作已执行
    已用时间: 5.780(毫秒). 执行号:40.
    

    5.9 查询列注释

    SQL> select * from user_col_comments where owner = 'SYSDBA' and table_name = 'TEST_RENAME' and column_name = 'ID';
    
    行号     OWNER  TABLE_NAME  COLUMN_NAME COMMENTS
    ---------- ------ ----------- ----------- --------
    1          SYSDBA TEST_RENAME ID          Primary
    
    已用时间: 66.837(毫秒). 执行号:48.
    

    5.10 创建视图

    SQL> create view v_test as select C1,C2 from T1 where C3='r';
    操作已执行
    已用时间: 123.383(毫秒). 执行号:12.
    
    展开全文
  • DB2数据库常用命令

    千次阅读 2020-05-12 11:08:47
    查看DB2数据库:db2 list db directory 查看DB2数据库应用:db2 list applications 查看DB2数据库应用与进程号:db2 list applications show detail 杀掉进程: db2 force application (id) 查看DB2数据库配置:...
    • 查看DB2数据库:db2 list db directory
    • 查看DB2数据库应用:db2 list applications
    • 查看DB2数据库应用与进程号:db2 list applications show detail
    • 杀掉进程: db2 force application (id)
    • 查看DB2数据库配置:db2 get db cfg for DB_NAME
    • 查看DB2归档日志路径:db2 get db cfg for DB_NAME|grep "LOGARCHMETH1"
    • 查看首活动日志:db2 get db cfg for DB_NAME|grep -i "First active log file"
    • 清理日志:db2 prune logfile prior to S0009392.LOG ##其中S0009392.LOG是首活动日志,此命令可以将当前首活动日志文件之前的归档日志文件全部删除
    • 手工归档产生日志命令:db2 archive log for db DB_NAME
    • 创建数据库:db2 create db DB_NAME
    • 删除数据库:db2 drop database DB_NAME(如果不能删除,尝试断开激活的连接或重启db2)
    • 断开数据库连接:db2 connect reset 或者 db2 terminate
    • 连接数据库:db2 connect to DB_NAME 或 db2 connect to DB_NAME user USER_NAME using PASSWORD
    • 列出系统表:db2 list tables for system
    • 查询列出所有表:db2 list tables for all
    • 查看特定用户表:db2 list tables for schema user
    • 查看表结构:db2 describe table TB_NAME或者describe select * from schema.TB_NAME
    • 生成所有对象的DDL:db2look -d DB_NAME -a -e -m -l -f -o bak.sql
    • 复制一张表:db2 create table TB1 like TB2
    • 查询表:db2 "select * from table tablename where ..."
    • 查看正在执行的sql:db2 list application show detail |grep -i exe
    • 看数据库表空间:db2pd -db DB_NAME -tablespace
    • 查看死锁:db2 get snapshot for locks on DB_NAME 或者db2 "select agent_id,tabname,lock_mode from table(snap_get_lock('DB_NAME')) as ll"
    • 查看错误代码信息:db2 ? 08003(SQLSTATE值) 可以获取sql错误含义
    • 查看当前DB2的版本:db2 "select * from sysibm.sysversions"
    • 查看DB2的TABLESPACE的状况:db2 "select * from sysibm.SYSTABLESPACES"
    • 启动DB2数据库服务:db2start
    • 激活数据库实例:db2 activate database DB_NAME
    • 查看激活状态的数据库:db2 list active databases
    • 查看失效数据库实例:db2 deactivate database DB_NAME
    • 关闭DB2数据库服务:db2stop
    • 查看DB2消耗资源多的SQL:db2top -d DB_NAME 其中db2top是连在一起的,查看消耗资源 按照提示按 l ,出现Application Handle,记录下资源消耗大的Application Handle(stat) 按 q 退出
    • 测试SQL的执行性能:db2batch -d DB_NAME -f select_sql -r benchmark.txt -o p3其中select_sql 是要测试的语句
    • 或者用DBvisualizer工具直接远程连接DB2数据库,通过SQL获取一些信息
    • 查看INDEX:select * from sysibm.sysindexes where TB_NAME=’XXXX’; 或者 describe indexes for table TB_NAME show detail;
    • 查看表字段信息:select * from sysibm.syscolumns where TB_NAME=’XXXX’
    • 快速清除一个大表:alter table TB_NAME activate not logged initally with empty table; 或者import from null_file of del replace into TB_NAME或者直接 truncate table TB_NAME;
    • 查询字符串中包含‘%’或‘_’ ,要使用转义字符,例如SELECT * FROM TEST_INFO WHERE NAME like '%88!%%' escape '!'; 语句后面的escape '!'是定义一个转义字符, 紧跟着转义字符’!'后的%不再是统配符而是百分号。
    • 重命名数据库名: Rename old_tablename to new_tablename;
    • 创建索引:CREATE INDEX index_name ON tb_name(DT_DAY_ID, ...);
    • 对已删除表的恢复:

    1.首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开);
    2.对要实施Drop Table Recovery的表空间(限regular tablespace),执行:alter tablespace 表空间名 dropped table recovery on;
    3.用 list history dropped table all for DB_NAME 得到删除表的tableid和表结构的生成语句DDL,记录tableid和DDL。之后用drop命令删除的表中的数据可以在前滚恢复时导出。

    • 查看表空间使用情况:
    SELECT A.SNAPSHOT_TIMESTAMP,
    A.TBSP_NAME,
    B.TBSP_TYPE,
    A.TBSP_STATE,
    1.00 * A.TBSP_USABLE_PAGES * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024  AS TOTAL,
    1.00 * A.TBSP_USED_PAGES * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024  AS USED,
    1.00 * (A.TBSP_USABLE_PAGES - TBSP_USED_PAGES) * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024  AS FREE
    FROM SYSIBMADM.SNAPTBSP_PART A
    INNER JOIN SYSIBMADM.SNAPTBSP B
    ON A.TBSP_ID = B.TBSP_ID;
    

     

    展开全文
  • MySQL 数据库常用命令小结

    万次阅读 多人点赞 2010-01-04 21:52:00
    MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 ...

    MySQL 数据库常用命令

     

    1、MySQL常用命令

    create database name; 创建数据库

    use databasename; 选择数据库

    drop database name 直接删除数据库,不提醒

    show tables; 显示表

    describe tablename; 表的详细描述

    select 中加上distinct去除重复字段

    mysqladmin drop databasename 删除数据库前,有提示。

    显示当前mysql版本和当前日期

    select version(),current_date;

     

    2、修改mysql中root的密码:

    shell>mysql -u root -p

    mysql> update user set password=password(”xueok654123″) where user=’root’;

    mysql> flush privileges //刷新数据库

    mysql>use dbname; 打开数据库:

    mysql>show databases; 显示所有数据库

    mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后

    mysql>describe user; 显示表mysql数据库中user表的列信息);

     

    3、grant

    创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个

    mysql> grant all privileges on *.* to user@localhost identified by ’something’ with

    增加新用户

    格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

    GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;

    GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;

    删除授权:

    mysql> revoke all privileges on *.* from root@”%”;

    mysql> delete from user where user=”root” and host=”%”;

    mysql> flush privileges;

    创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb

    mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’

    重命名表:

    mysql > alter table t1 rename t2;

     

    4、mysqldump

    备份数据库

    shell> mysqldump -h host -u root -p dbname >dbname_backup.sql

    恢复数据库

    shell> mysqladmin -h myhost -u root -p create dbname

    shell> mysqldump -h host -u root -p dbname < dbname_backup.sql

    如果只想卸出建表指令,则命令如下:

    shell> mysqladmin -u root -p -d databasename > a.sql

    如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:

    shell> mysqladmin -u root -p -t databasename > a.sql

    那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?

       mysqldump -T./ phptest driver

    其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。

     

    5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。

    例如,如果在文件my_file.sql 中存放有查

    询,可如下执行这些查询:

    例如,如果您想将建表语句提前写在sql.txt中:

    mysql > mysql -h myhost -u root -p database < sql.txt

     

    转载声明:本文转自http://news.newhua.com/news1/program_database/2009/217/0921715343537K7H7IDI2CCI09JCI1DK8FJ4B07B3A04219G561C3JAB.html

    ================================================================================

      

     转 mysql命令

     

           一 . 安装与配置MYSQL
      二 . 常用mysql命令行命令

      1 .mysql的启动与停止
      启动MYSQL服务 net start mysql
      停止MYSQL服务 net stop mysql


      2 . netstat –na | findstr 3306 查看被监听的端口 , findstr用于查找后面的端口是否存在


      3 . 在命令行中登陆MYSQL控制台 , 即使用 MYSQL COMMEND LINE TOOL
       语法格式 mysql –user=root –password=123456 db_name
       或 mysql –u root –p123456 db_name


      4 . 进入MYSQL命令行工具后 , 使用status; 或/s 查看运行环境信息


      5 . 切换连接数据库的语法 : use new_dbname;
        
      6 . 显示所有数据库 : show databases;
      
      7 . 显示数据库中的所有表 : show tables;
      
      8 . 显示某个表创建时的全部信息 : show create table table_name;
      
      9 . 查看表的具体属性信息及表中各字段的描述
       Describe table_name; 缩写形式 : desc table_name;


      三 。 MySql中的SQL语句
      1 . 数据库创建 : Create database db_name;
      数据库删除 : Drop database db_name; 删除时可先判断是否存在,写成 : drop database if exits db_name
      
      2 . 建表 : 创建数据表的语法 : create table table_name (字段1 数据类型 , 字段2 数据类型);
       例 : create table mytable (id int , username char(20));
       删表 : drop table table_name; 例 : drop table mytable;
      
      8 . 添加数据 : Insert into 表名 [(字段1 , 字段2 , ….)] values (值1 , 值2 , …..);
      如果向表中的每个字段都插入一个值,那么前面 [ ] 括号内字段名可写也可不写
       例 : insert into mytable (id,username) values (1,’zhangsan’);
      
      9 . 查询 : 查询所有数据 : select * from table_name;
      查询指定字段的数据 : select 字段1 , 字段2 from table_name;
      例 : select id,username from mytable where id=1 order by desc;多表查询语句------------参照第17条实例
      
      10 . 更新指定数据 , 更新某一个字段的数据(注意,不是更新字段的名字)
      Update table_name set 字段名=’新值’ [, 字段2 =’新值’ , …..][where id=id_num] [order by 字段 顺序]
      例 : update mytable set username=’lisi’ where id=1;
      Order语句是查询的顺序 , 如 : order by id desc(或asc) , 顺序有两种 : desc倒序(100—1,即从最新数据往后查询),asc(从1-100),Where和order语句也可用于查询select 与删除delete
      
      11 . 删除表中的信息 :
       删除整个表中的信息 : delete from table_name;
       删除表中指定条件的语句 : delete from table_name where 条件语句 ; 条件语句如 : id=3;
      
      12 . 创建数据库用户
      一次可以创建多个数据库用户如:
      CREATE USER username1 identified BY ‘password’ , username2 IDENTIFIED BY ‘password’….
      
      13 . 用户的权限控制:grant
       库,表级的权限控制 : 将某个库中的某个表的控制权赋予某个用户
       Grant all ON db_name.table_name TO user_name [ indentified by ‘password’ ];
      
      14 . 表结构的修改
      (1)增加一个字段格式:
      alter table table_name add column (字段名 字段类型); ----此方法带括号
      (2)指定字段插入的位置:
      alter table table_name add column 字段名 字段类型 after 某字段;
      删除一个字段:
      alter table table_name drop字段名;
      (3)修改字段名称/类型
      alter table table_name change 旧字段名 新字段名 新字段的类型;
      (4)改表的名字
      alter table table_name rename to new_table_name;
      (5)一次性清空表中的所有数据
      truncate table table_name; 此方法也会使表中的取号器(ID)从1开始
      
      15 . 增加主键,外键,约束,索引。。。。(使用方法见17实例)
      ① 约束(主键Primary key、唯一性Unique、非空Not Null)
      ② 自动增张 auto_increment
      ③外键Foreign key-----与reference table_name(col_name列名)配合使用,建表时单独使用
      ④ 删除多个表中有关联的数据----设置foreign key 为set null ---具体设置参考帮助文档
      
      16 . 查看数据库当前引擎
       SHOW CREATE TABLE table_name;
       修改数据库引擎
       ALTER TABLE table_name ENGINE=MyISAM | InnoDB;
      
      17 . SQL语句运用实例:
      --1 建users表
      create table users (id int primary key auto_increment,nikename varchar(20) not null unique,password varchar(100) not null,address varchar(200), reg_date timestamp not null default CURRENT_TIMESTAMP);
      
      --2 建articles表,在建表时设置外键
      create table articles (id int primary key auto_increment,content longtext not null,userid int,constraint foreign key (userid) references users(id) on delete set null);
      
      -----------------------------------------------------------------------
      --2.1 建articles表,建表时不设置外键
       create table articles (id int primary key auto_increment,content longtext not null,userid int);
      --2.2 给articles表设置外键
       alter table articles add constraint foreign key (userid) references users(id) on delete set null;
      ------------------------------------------------------------------------
      
      --3. 向users表中插入数据,同时插入多条
      insert into users (id,nikename,password,address) values (1,'lyh1','1234',null),(10,'lyh22','4321','湖北武汉'),(null,'lyh333','5678', '北京海淀');
      
      --4. 向article中插入三条数据
      insert into articles (id,content,userid) values (2,'hahahahahaha',11),(null,'xixixixixix',10),(13,'aiaiaiaiaiaiaiaiaiaiaiaia',1),(14,'hohoahaoaoooooooooo',10);
      
      --5. 进行多表查询,选择users表中ID=10的用户发布的所有留言及该用户的所有信息
      select articles.id,articles.content,users.* from users,articles where users.id=10 and articles.userid=users.id order by articles.id desc;
      
      --6. 查看数据库引擎类型
      show create table users;
      
      --7. 修改数据库引擎类型
      alter table users engine=MyISAM; ---因为users表中ID被设置成外键,执行此句会出错
      
      --8. 同表查询,已知一个条件的情况下.查询ID号大于用户lyh1的ID号的所有用户
      select a.id,a.nikename,a.address from users a,users b where b.nikename='lyh1' and a.id>b.id;
      ------也可写成
      select id,nikename,address from users where id>(select id from users where nikename='lyh1');
      
      9. 显示年龄比领导还大的员工:
      select a.name from users a,users b where a.managerid=b.id and a.age>b.age;
      
      查询编号为2的发帖人: 先查articles表,得到发帖人的编号,再根据编号查users得到的用户名。
      接着用关联查询.
      select * from articles,users得到笛卡儿积,再加order by articles.id以便观察
      
      使用select * from articles,users where articles.id=2 筛选出2号帖子与每个用户的组合记录
      
      再使用select * from articles,users where articles.id=2 and articles.userid=users.id选出users.id等于2号帖的发帖人id的记录.
      
      只取用户名:select user where user.id=(select userid from articles where article.id =2)
      
      找出年龄比小王还大的人:假设小王是28岁,先想找出年龄大于28的人
      select * from users where age>(select age from users where name='xiaowang');
      *****要查询的记录需要参照表里面的其他记录:
      select a.name from users a,users b where b.name='xiaowang' and a.age>b.age
      
      表里的每个用户都想pk一下.select a.nickname,b.nickname from users a,users b where a.id>b.id ;
      
      更保险的语句:select a.nickname,b.nickname from (select * from users order by id) a,(se
      lect * from users order by id) b where a.id>b.id ;
      
      再查询某个人发的所有帖子.
      select b.* from articles a , articles b where a.id=2 and a.userid=b.userid
      
      说明: 表之间存在着关系,ER概念的解释,用access中的示例数据库演示表之间的关系.只有innodb引擎才支持foreign key,mysql的任何引擎目前都不支持check约束。
      四、字符集出现错误解决办法
      出现的问题:
      mysql> update users
      -> set username='关羽'
      -> where userid=2;
      ERROR 1366 (HY000): Incorrect string value: '/xB9/xD8/xD3/xF0' for column 'usern
      ame' at row 1
      向表中插入中文字符时,出现错误。
      
      mysql> select * from users;
      +--------+----------+
      | userid | username |
      +--------+----------+
      | 2 | ???? |
      | 3 | ???? |
      | 4 | ?í?ù |
      +--------+----------+
      3 rows in set (0.00 sec)
      表中的中文字符位乱码。
      解决办法:
      使用命令:
      mysql> status;
      --------------
      mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
      
      Connection id: 8
      Current database: test
      Current user: root@localhost
      SSL: Not in use
      Using delimiter: ;
      Server version: 5.0.45-community-nt MySQL Community Edition (GPL)
      Protocol version: 10
      Connection: localhost via TCP/IP
      Server characterset: latin1
      Db characterset: latin1
      Client characterset: gbk
      Conn. characterset: gbk
      TCP port: 3306
      Uptime: 7 hours 39 min 19 sec
      Threads: 2 Questions: 174 Slow queries: 0 Opens: 57 Flush tables: 1 Open ta
      bles: 1 Queries per second avg: 0.006
      --------------
      查看mysql发现Server characterset,Db characterset的字符集设成了latin1,所以出现中文乱码。
      
      mysql> show tables;
      +----------------+
      | Tables_in_test |
      +----------------+
      | users |
      +----------------+
      1 row in set (0.00 sec)
      
      更改表的字符集。
      mysql> alter table users character set GBK;
      Query OK, 3 rows affected (0.08 sec)
      Records: 3 Duplicates: 0 Warnings: 0
      
      查看表的结构:
      mysql> show create users;
      ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
      corresponds to your MySQL server version for the right syntax to use near 'users
      ' at line 1
      mysql> show create table users;
      +-------+-----------------------------------------------------------------------
      ------------------------------------------------------------------------------+
      | Table | Create Table
      |
      +-------+-----------------------------------------------------------------------
      ------------------------------------------------------------------------------+
      | users | CREATE TABLE `users` (
      `userid` int(11) default NULL,
      `username` char(20) character set latin1 default NULL
      ) ENGINE=InnoDB DEFAULT CHARSET=gbk |
      +-------+-----------------------------------------------------------------------
      ------------------------------------------------------------------------------+
      1 row in set (0.00 sec)
      
      mysql> desc users;
      +----------+----------+------+-----+---------+-------+
      | Field | Type | Null | Key | Default | Extra |
      +----------+----------+------+-----+---------+-------+
      | userid | int(11) | YES | | NULL | |
      | username | char(20) | YES | | NULL | |
      +----------+----------+------+-----+---------+-------+
      2 rows in set (0.02 sec)
      
      这时向表中插入中文然后有错误。
      mysql> insert into users values(88,'中文');
      ERROR 1366 (HY000): Incorrect string value: '/xD6/xD0/xCE/xC4' for column 'usern
      ame' at row 1
      mysql> insert into users values(88,'中文');
      ERROR 1366 (HY000): Incorrect string value: '/xD6/xD0/xCE/xC4' for column 'usern
      ame' at row 1
      
      还要更改users表的username的字符集。
      mysql> alter table users modify username char(20) character set gbk;
      ERROR 1366 (HY000): Incorrect string value: '/xC0/xEE/xCB/xC4' for column 'usern
      ame' at row 1
      mysql> alter table users modify username char(20) character set gbk;
      ERROR 1366 (HY000): Incorrect string value: '/xC0/xEE/xCB/xC4' for column 'usern
      ame' at row 1
      
      因为表中已经有数据,所以更改username字符集的操作没有成***
      清空users表中的数据
      mysql> truncate table users;
      Query OK, 3 rows affected (0.01 sec)
      
      从新更改user表中username的字符集
      mysql> alter table users modify username char(20) character set gbk;
      Query OK, 0 rows affected (0.06 sec)
      Records: 0 Duplicates: 0 Warnings: 0
      
      这时再插入中文字符,插入成***。
      mysql> insert into users values(88,'中文');
      Query OK, 1 row affected (0.01 sec)
      
      mysql> select * from users;
      +--------+----------+
      | userid | username |
      +--------+----------+
      | 88 | 中文 |
      +--------+----------+
      1 row in set (0.00 sec)
      mysql>

    转载声明:本文转自http://hi.baidu.com/zhjlabm/blog/item/b939fc3307a1d445ad4b5fbd.html

    ================================================================================

     

    学习MySQL常用操作命令

     

    1、启动MySQL服务器

    实际上上篇已讲到如何启动MySQL。两种方法: 一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。 二是在DOS方式下运行 d:mysqlbinmysqld

     

    2、进入mysql交互操作界面

    在DOS方式下,运行: d:mysqlbinmysql

    出现: mysql 的提示符,此时已进入mysql的交互操作方式。

    如果出现 "ERROR 2003: Can′t connect to MySQL server on ′localhost′ (10061)“,

    说明你的MySQL还没有启动。

     

    3、退出MySQL操作界面

    在mysql>提示符下输入quit可以随时退出交互操作界面:
    mysql> quit
    Bye
    你也可以用control-D退出。

     

    4、第一条命令

    mysql> select version(),current_date();
    +----------------+-----------------+
    | version() | current_date() |
    +----------------+-----------------+
    | 3.23.25a-debug | 2001-05-17 |
    +----------------+-----------------+
    1 row in set (0.01 sec)
    mysql>


    此命令要求mysql服务器告诉你它的版本号和当前日期。尝试用不同大小写操作上述命令,看结果如何。结果说明mysql命令的大小写结果是一致的。

    练习如下操作:

    mysql>Select (20+5)*4;
    mysql>Select (20+5)*4,sin(pi()/3);
    mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result) 

     

    5、多行语句
        一条命令可以分成多行输入,直到出现分号“;”为止:
    <ccid_nobr>
    <table width="400" border="1" cellspacing="0" cellpadding="2"
    bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
    <tr>
    <td bgcolor="e6e6e6" class="code" style="font-size:9pt">
    <pre><ccid_code> mysql> select
    -> USER()
    -> ,
    -> now()
    ->;
    +--------------------+---------------------+
    | USER() | now() |
    +--------------------+---------------------+
    | ODBC@localhost | 2001-05-17 22:59:15 |
    +--------------------+---------------------+
    1 row in set (0.06 sec)
    mysql>


    注意中间的逗号和最后的分号的使用方法。

     

    6、一行多命令

    输入如下命令:

    mysql> SELECT USER(); SELECT NOW();
    +------------------+
    | USER() |
    +------------------+
    | ODBC@localhost |
    +------------------+
    1 row in set (0.00 sec)

    +---------------------+
    | NOW() |
    +---------------------+
    | 2001-05-17 23:06:15 |
    +---------------------+
    1 row in set (0.00 sec)
    mysql>


    注意中间的分号,命令之间用分号隔开。

     

    7、显示当前存在的数据库

    mysql> show databases;
    +----------+
    | Database |
    +----------+
    | mysql |
    | test |
    +----------+
    2 row in set (0.06 sec)
    mysql>


    8、选择数据库并显示当前选择的数据库

    mysql> USE mysql
    Database changed
    mysql>
    (USE 和 QUIT 命令不需要分号结束。)
    mysql> select database();
    +---------------+
    | database() |
    +---------------+
    | mysql |
    +---------------+
    1 row in set (0.00 sec)

    9、显示当前数据库中存在的表
    mysql> SHOW TABLES;

     

    10、显示表(db)的内容
    mysql>select * from db;

     

    11、命令的取消

    当命令输入错误而又无法改变(多行语句情形)时,只要在分号出现前就可以用 c来取消该条命令

    mysql> select
    -> user()
    -> c
    mysql>

    这是一些最常用的最基本的操作命令,通过多次练习就可以牢牢掌捂了

     

    ==========================================================================

     

    mysql命令

     

    测试环境:mysql 5.0.45
    【注:可以在mysql中通过mysql> SELECT VERSION();来查看数据库版本】
    整理:leo


    一、连接MYSQL。
    格式: mysql -h主机地址 -u用户名 -p用户密码


    1、连接到本机上的MYSQL。
    首先打开DOS窗口,然后进入目录mysql/bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码.
    如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
    2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
    mysql -h110.110.110.110 -u root -p 123; (注:u与root之间可以不用加空格,其它也一样)
    3、退出MYSQL命令: exit (回车)


    二、修改密码。
    格式:mysqladmin -u用户名 -p旧密码 password 新密码
    1、给root加个密码ab12。首先在DOS下进入目录mysql/bin,然后键入以下命令
    mysqladmin -u root -password ab12
    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
    2、再将root的密码改为djg345。
    mysqladmin -u root -p ab12 password djg345

    三、增加新用户。
    (注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
    格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
    1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;
    但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。


    2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),
    这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;
    如果你不想test2有密码,可以再打一个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;
    下篇我是MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。

    一、操作技巧
    1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
    也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
    2、你可以使用光标上下键调出以前的命令。

    二、显示命令
    1、显示当前数据库服务器中的数据库列表:
    mysql> SHOW DATABASES;
    注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。


    2、显示数据库中的数据表:
    mysql> USE 库名;
    mysql> SHOW TABLES;


    3、显示数据表的结构:
    mysql> DESCRIBE 表名;


    4、建立数据库:
    mysql> CREATE DATABASE 库名;


    5、建立数据表:
    mysql> USE 库名;
    mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));


    6、删除数据库:
    mysql> DROP DATABASE 库名;


    7、删除数据表:
    mysql> DROP TABLE 表名;


    8、将表中记录清空:
    mysql> DELETE FROM 表名;


    9、显示表中的记录:
    mysql> SELECT * FROM 表名;


    10、往表中插入记录:
    mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);


    11、更新表中数据:
    mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';


    12、用文本方式将数据装入数据表中:
    mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;


    13、导入.sql文件命令:
    mysql> USE 数据库名;
    mysql> SOURCE d:/mysql.sql;


    14、命令行修改root密码:
    mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’;
    mysql> FLUSH PRIVILEGES;


    15、显示use的数据库名:
    mysql> SELECT DATABASE();


    16、显示当前的user:
    mysql> SELECT USER();

    三、一个建库和建表以及插入数据的实例
    drop database if exists school; //如果存在SCHOOL则删除
    create database school;           //建立库SCHOOL
    use school;   //打开库SCHOOL
    create table teacher //建立表TEACHER
    (
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ‘深圳’,
    year date
    );
    //建表结束

    //以下为插入字段
    insert into teacher values(”,’allen’,'大连一中’,'1976-10-10′);
    insert into teacher values(”,’jack’,'大连二中’,'1975-12-23′);


    如果你在mysql提示符键入上面的命令也可以,但不方便调试。
    (1)你可以将以上命令原样写入一个文本文件中,假设为school.sql,然后复制到c://下,并在DOS状态进入目录[url=file:mysql//bin]//mysql//bin[/url],然后键入以下命令:
    mysql -uroot -p密码 < c://school.sql
    如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
    (2)或者进入命令行后使用 mysql> source c://school.sql; 也可以将school.sql文件导入数据库中。

    四、将文本数据转到数据库中
    1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用[url=file:n]//n[/url]来代替.例:
    3 rose 大连二中 1976-10-10
    4 mike 大连一中 1975-12-23
    假设你把这两组数据存为school.txt文件,放在c盘根目录下。
    2、数据传入命令 load data local infile “c://school.txt” into table 表名;
    注意:你最好将文件复制到[url=file:mysql//bin]//mysql//bin[/url]目录下,并且要先用use命令打表所在的库。

    五、备份数据库
    1.导出整个数据库
    导出文件默认是存在mysql/bin目录下
    mysqldump -u 用户名 -p 数据库名 > 导出的文件名
    mysqldump -u user_name -p123456 database_name > outfile_name.sql

    2.导出一个表
    mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
    mysqldump -u user_name -p database_name table_name > outfile_name.sql

    3.导出一个数据库结构
    mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

    4.带语言参数导出
    mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

    六、导入数据库

    例如:数据库名为 dbTest

    首先,进入mysql

    mysql -uroot -p123456

    然后,创建数据库

    create dbTest

    exit

    最后,导入数据库

    mysql -uroot -p123456 dbTest < dbTest_bk.sql


    数据库及表导出导入示例:

    导出数据库
    mysqldump -u root -p123456 gameTop > gameTop_db.sql

    导出数据库的表
    mysqldump -u -p123456 root gameTop gametop800 > gameTop_table.sql

    导出数据库的特定表
    mysqldump -u root -p123456  gameTop --table gametop800  > gameTop_table.sql



    导出数据库(只导结构,不要数据)
    mysqldump -u root -p123456 --opt -d gameTop > gameTop_db.sql

    或者

    mysqldump -u root -p123456  -d gameTop > gameTop_db.sql

    导出数据库(只导数据,不要结构
    mysqldump -u root -p123456  -t gameTop > gameTop_db.sql

    注:不加 -d 和 -t 则既导出结构,也导出数据


    mysqldump导出抛出异常:

    mysqldump: Got error: 1044: Access denied for user 'username'@'%' to database 'dbname' when using LOCK TABLES

    解决办法,添加参数 --skip-lock-tables

    mysqldump --skip-lock-tables -h172.88.12.102 -username-pAnJnVs3C2tYXyTwV dbname> dbname_bk.sql


    --------------------------
    导入数据库:

    登录MySQL:      mysql -uroot -p123456
    创建数据库:    create database gameTop;


    导入数据库:    

    mysql -uroot -p123456 gameTop < gameTop_db.sql


    导入数据库表:

    mysql -uroot -p123456 gameTop  gametop800 <  gameTop_table.sql


    导入数据库表:
    mysql -uroot -p123456 gameTop  < gameTop_table.sql   (不指定表名

     

    转载声明:本文转自http://blog.csdn.net/networld2002/archive/2009/04/23/4103407.aspx

    ==================================================================================

     

     

    1:使用SHOW语句找出在服务器上当前存在什么数据库:
    mysql> SHOW DATABASES;


    2:创建一个数据库MYSQLDATA
    mysql> CREATE DATABASE MYSQLDATA;

    3:选择你所创建的数据库
    mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)


    4:查看现在的数据库中存在什么表
    mysql> SHOW TABLES;


    5:创建一个数据库表
    mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

    6:显示表的结构:
    mysql> DESCRIBE MYTABLE;


    7:往表中加入记录
    mysql> insert into MYTABLE values (”hyq”,”M”);

    8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
    mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

    9:导入.sql文件命令(例如D:/mysql.sql)
    mysql>use database;
    mysql>source d:/mysql.sql;


    10:删除表
    mysql>drop TABLE MYTABLE;

    11:清空表
    mysql>delete from MYTABLE;


    12:更新表中数据
    mysql>update MYTABLE set sex=”f” where name=’hyq’;

     

    以下是无意中在网络看到的使用MySql的管理心得,
    在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqld start”命令,注意启动者应具有管理员权限。
    刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行:
    use mysql;
    delete from User where User=”";
    update User set Password=PASSWORD(’newpassword’) where User=’root’;

    如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令:
    mysql -uroot -p;
    mysql -uroot -pnewpassword;
    mysql mydb -uroot -p;
    mysql mydb -uroot -pnewpassword;

    上面命令参数是常用参数的一部分,详细情况可参考文档。此处的mydb是要登录的数据库的名称。
    在 进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技 术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。

    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用 户。其中GRANT的常用用法如下:
    grant all on mydb.* to NewUserName@HostName identified by “password” ;
    grant usage on *.* to NewUserName@HostName identified by “password”;
    grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”;
    grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;


    若 要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITH GRANT OPTION选项。而对于用插入User表添加的用户,Password字段应用PASSWORD 函数进行更新加密,以防不轨之人窃看密码。对于那些已经不用的用户应给予清除,权限过界的用户应及时回收权限,回收权限可以通过更新User表相应字段, 也可以使用REVOKE操作。
    下面给出本人从其它资料(www.cn-java.com)获得的对常用权限的解释:
    全局管理权限:
    FILE: 在MySQL服务器上读写文件。
    PROCESS: 显示或杀死属于其它用户的服务线程。
    RELOAD: 重载访问控制表,刷新日志等。
    SHUTDOWN: 关闭MySQL服务。
    数据库/数据表/数据列权限:
    ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
    CREATE: 建立新的数据库或数据表。
    DELETE: 删除表的记录。
    DROP: 删除数据表或数据库。
    INDEX: 建立或删除索引。
    INSERT: 增加表的记录。
    SELECT: 显示/搜索表的记录。
    UPDATE: 修改表中已存在的记录。
    特别的权限:
    ALL: 允许做任何事(和root一样)。
    USAGE: 只允许登录–其它什么也不允许做。

     


    知识拓展:

    Ubuntu下远程访问MySQL数据库


    mysql -uroot -p123456 gameTop  gametop800 < gameTop_db.sql
    展开全文
  • 对于数据库而言实际上每一张表都表示是一个数据库的对象,而数据库对象指的就是DDL定义的所有操作,例如:表,视图,索引,序列,约束等等,都属于对象的操作,所以表的建立就是对象的建立,而对象的操作主要分为...
  • POSTGRESQL 数据库 客户端命令

    千次阅读 2014-12-10 11:48:46
     零、口令文件:  在给出其它PostgreSQL客户端命令之前,我们...换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。  在当前用户的HOME目录下,我们需要
  • Sybase数据库常用命令

    万次阅读 2010-04-29 16:55:00
    一、Sybase数据库简介1.版本 1984年,Mark B. Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。SYBASE主要有三种版本,一是UNIX操作系统下运行的版本,二是Novell Netware环境下运行...
  • Oracle数据库对象简介

    万次阅读 2013-01-15 10:20:36
    对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。    表和视图    Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使...
  • 数据库连接对象:connection 数据库交互对象:cursor 数据库异常类:exceptions 开发数据库程序流程: 1.创建connection对象,获取cursor 2.使用cursor执行SQL 3.使用cursor获取数据、判断执行状态 4....
  • PostgreSQL数据库导出命令pg_dump详解

    万次阅读 2017-05-11 19:11:10
    这个脚本文件的格式是纯文本,它包含许多 SQL 命令, 这些 SQL 命令可以用于重建该数据库并将之恢复到保存成脚本的时候的状态.要恢复这些脚本,使用 psql。 它们甚至可以用于在其它机器甚至是其它硬件体系的...
  • postgresql数据库常用命令

    千次阅读 2010-04-22 11:12:00
    psqlNamepsql -- PostgreSQL 交互终端Synopsispsql [option...] [dbname [username]]描述psql 是一个以终端为基础的 PostgreSQL 前端。它允许你交互地键入查询,把它们发出...还有, 它提供了一些元命令和多种类 shell
  • tt数据库常用命令

    千次阅读 2014-11-19 09:00:00
    5 cache/ replication agent 的打开与关闭 命令行 ttAdmin -cacheStart ttdb ttAdmin -cacheStop ttdb ttAdmin -repStart ttdb ttAdmin -repStop ttdb command 命令调用存储过程 call ...
  • DOS操作数据库简单命令

    千次阅读 2009-11-16 16:21:00
    1:连接数据库 sqlplus dm/dm@hollycrm; dm用户名,dm密码,hollycrm本地数据库名 2:执行SQL语句 start e:/TEMP/1.sql; 3:向同样的表结构中插入的数据 insert into tbl_PROVINCEREVISIT select * from ...
  • DB2数据库命令

    千次阅读 2011-03-23 17:47:00
    DB2数据库命令简介1.启动数据库db2start2.停止数据库db2stop3.连接数据库db2 connect to o_yd user db2 using pwd4.读数据库管理程序配置db2 get dbm cfg5.写数据库管理程序配置db2 update dbm cfg using 参数...
  • oracle数据库对象导出脚本

    千次阅读 2014-12-01 18:39:17
    ORACLE数据库是常用的企业级数据库类型,在windows操作系统下有很好的数据库管理工具,但在ubuntu(linux、aix、unix)环境下,最好的管理方式就是脚本化管理,下面是oracle数据库用户对象导出脚本,在此留印,以备...
  • IBM的DB2数据库常用命令及查询

    千次阅读 2018-05-10 13:01:00
    IBM的DB2数据库常用命令及查询 2017年04月16日 11:57:31 阅读数:3343 1、 打开命令行窗口 #db2cmd 2、 打开控制中心 #db2cmd db2cc 3、 打开命令编辑器 #db2cmd db2ce =====操作数据库命令===== 4、 启动数据库实例...
  • 创建数据库命令

    千次阅读 2009-03-10 23:34:00
    创建数据库命令为了指定需从数据库取回的记录,我们将创建一个 dbcomm 变量,并为其赋值一个新的 OleDbCommand。这个 OleDbCommand 类用于发出针对数据库表的 SQL 查询:sub Page_Loaddim dbconn,sql,dbcommdbconn=...
  • SqlCommand 特别提供了以下对 SQL Server 数据库执行命令的方法:ExecuteReader 执行返回行的命令。为了提高性能,ExecuteReader 使用 Transact-SQL sp_executesql 系统存储过程调用命令。因此,如果用于执行像 ...
  • 首先mysql数据库对象包括哪些? 数据库(database) 表(table)  和我们日常使用的表格类似,由行和列组成,一行数据成为一个记录,它表达具有一定意义的组合。一个数据表是由一个或者多条记录组成,没有任何记录...
  • 走进数据库导语数据库驱动驱动数据库步骤加载驱动获取连接获取处理sql语句命令对象执行处理结果关闭资源JDBCJDBC常用接口与类ConnectionStatementResultSetDriverManagerSQLExceptionmysql常用命令 导语 首先我想对...
  • sqlite3 数据库命令操作

    千次阅读 2013-12-01 09:35:47
    Android学习之旅--sqlite3 数据库命令操作   SQLite简介 Android系统集成了一个轻量级的数据库SQLite,SQLite只是一个嵌入式的数据库引擎,专门适用于支援有限的设备上(如手机、pda等)适量数据存储。 SQLite并不同于...
  • Oracle数据库日常维护命令

    千次阅读 2014-01-22 14:46:53
    一、启动、关闭数据库 1、启动实例的各种模式 1)启动实例,装载并打开数据库 这是最普通的数据库操作,意味着某个实例已经启动并且数据库也已经装载并打开。这种模式允许任何一个有效的用户连接到数据库,并执行...
  • 在用户建立数据库对象时,数据库系统会把该对象的名称记录   在与用户同名的模式中。   例如:通过 < 模式名 >.< 对象名 > 的方式访问 dept 表   select * from scott.dept;   6.1 创建用户 ...
  • 视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询结果来定义。 同真实的表一样,视图包含一系列带有名称的行和列数据 视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所...
  • 数据提供程序的Command类是IDBCommand接口的实现,通过Command来执行数据库命令数据库数据的查询、更新、插入都通过Command来实现。Command的构造函数通常都有下面三种形式:1, public xxxCommand();2, public...
  • 2、Command对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。数据提供程序的Command类是继承System.Data.IDbCommand接口的实现。 3、DataReader 从数据源中提供高性能的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 171,022
精华内容 68,408
关键字:

关闭数据库对象的命令