• 2. mysql 基本命令


    1. 连接登录

    mysql   [-h 主机地址 ]  -u用户名  -p用户密码

    mysql   -S   /var/lib/mysql/mysql.sock                //对于多个数据库时,可以指定sock文件来连接相应的数据库

    也可直接将它写入:/etc/my.cnf

    [ mysql ]

    prompt=u@hd>                           //指定提示符

    socket=/var/run/mysqld/mysql56.sock

    远程连接:

    mysql  -uroot  -p   -h172.16.0.253  -P3307

     

    退出:exit /quit

               修改密码:

     mysqladmin   -u 用户名 -p密码

            mysqladmin -u用户名 -p旧密码 password 新密码

     

    2. 操作表基本命令  (ddl    dml    dcl)

    1.创建数据库

    create   database  <数据库名>

    2.显示所有的数据库

    show datebases注意加s

    3.删除数据库

    drop  database <数据库名>

       drop  database  if exists  ds;

    4.切换数据库

    use  数据库名;

    5.查看当前信息

    status;      看通信方式

    select  current_user()      登录用户

    select  database();       当前使用的数据库

    system   df  -hT;     执行shell命令

    6.查看当前数据库包含的表信息

    show  tables;  注意加 s

    show  warnings;查看上一条警告信息

     

    7.mysqlshell下创造数据库

        mysql   ds            直接进入相应的数据库

        mysql    -e    " create   database   ds"

        mysql    ds   -e  "insert   into   stu   select  10 ,  'tom' ,  1"

     

    建表

    create table <表名> (<字段名1> <类型1> [,..<字段名n> <类型n>]);

    drop table if exists dept;

    create table dept

    (        

               deptID int primary key,h

    deptName varchar(32),

    deptLeader varchar(16)

    )engine=innodb charset=utf8;

    drop table if exists stu;

    create table stu

    (

    stuID int,

    stuName varchar(16),

    stuAge int,

    stuSex enum( 'W','M'),

    score float,

    salary dec(7,1),

    deptID int,

    primary key(stuID)

    )engine=innodb charset=utf8

    alter table stu add foreign key(deptID) references dept(deptID);      //添加外键  

    alter   table   stu   drop   foreign   key   stu2_ibfk_1                            //删除外键

    alter   table   stu  drop   primary   key;                                                        //删除主键

    添加字段:     alter table 表名 add 字段类型其他;

    在表myclass中添加一个字段passtest,类型为int4),默认值为0

    mysql>altertable myclass add passtest int(4) default'0'

          alter   table  stu   drop   deptID ;

          alter table  stu  modify stuID int auto_increment;

          alter   table   stu  change   stuName  stuN  varchar(8);

     

    修改库信息:

    alter   database    mis   charset  =  utf8;

    库信息保存在datadir下,如果只是myisam引擎的库,可以拷贝文件夹做热备份而且修改文件夹,可以修改库名

     

    计算机生成了可选文字: 补充:根据已有的表创建新表。
create七曲工e七曲一ne*王土ketab一。王d;(只有表结构)
cre。七e七ab工e七。bne*d::eiec七一万二cm;ab。工d;(既包含表结构,又包含表数据)

    第二种有数据,部分表结构丢失

    3.insert  into  stu2  select  *  from  stu;             --仅做数据的备份

     

    8.获取表结构

    计算机生成了可选文字: de:c表名:
3ho衬colu劝。3from表名:

    show   create   table   表名          //查看详细的建表过程

    9.删除表

    drop  table  <表名>

    drop   table   if exists   stu;

    10.更改表名

    rename  table  原表名  to 新表名

    alter  table  stu4   rename  stu10

     

    3.字符集

    show variables like '%char%';       //查看客户端字符集

    set  names   utf8;                    //设置客户端字符集

    utf8字符集中

    select   char_length('中国')    --->  2        select    length('中国')   ----->6     //字节数

    4. 完整性

    实体的完整性,pk  2NF

    引用的完整性,参照完整性,fk

    用户自定义的 (check)

     

          有时候导入大量数据,由于外键约束可能导不进,或者速度慢,可以暂时关闭外键约束

    计算机生成了可选文字: rootOlocalhost>setforelgn_key_checks==0
QueryOK,0rowsaffected(0.00sec)
rootQlocalhost>
rootOlocalhost>showvarlableslike"%forelgn%
Vdridblendme
forelgn_key_checks
·+……
1Value
一+----一-
}刃「
·+·---一_
·+
l+l+
…
+l+l+

    从表(外键) -> 主表(主键)

    子表(外键) -> 父表(主键)

    两张表都要是innodb

     

    5.dcl

            mysql -h -P -u p

     

            select user, host, password from mysql.user;

            show privileges;

     

            grant all on *.* to dba@'%' identified by 'aixocm';               ---给以dba用户所有的权限

            show grants for dba@'%';                                                                 ---%代表任意地址

            revoke all on *.* from dba@'%';                                                     ---收回权限

            drop user dba@'%';                                                                          ---删除用户

     

            grant select, insert on ds.* to tom@localhost identified by 'aixocm';          --给以指定库,指定权限,指定登录

            revoke insert on ds.* from tom@localhost;

     

    6.简单导入导出命令

    1.导出整个数据库

    mysqldump -u 用户名 -p 数据库名 > 导出的文件名

    计算机生成了可选文字: 〔rooteTS一D口bln】令./my,qld山甲一uroo七一pdavld>/七即/davld/davld.3ql
En七erpa33word:

    2.导出一个表

    mysqldump -u  用户名  -p  数据库名 表名> 导出的文件名

    计算机生成了可选文字: [rooteTS一DEVbin]禅./my3qldu加p一uroo七一pdavidmycla3s>/七即/david/davld-mvcla33.3ql
En七erpa33word:

     

    3.导入数据库

    a.常用source命令

        mysql> create  new

       mysql> use  new

       mysql> source  /tmp/david/david.sql

    b.使用mysql命令

        mysql> create  database  renee;

        ./mysql   -uroot  -p  -D renee  < /tmp/david/david.sql





  • 相关阅读:
    XLS导出的服务器端配置方式
    SQLSERVER2008 内存占用高的处理方式
    word定义多级列表
    SQL Server替换特殊字符
    php和mysql两种不同方式的分割字符串和类型转换
    tp杂记
    MySql数据库 主从复制/共享 报错
    the server ssl certificate failed to verify
    loaded some nib but the view outlet was not set(转载)
    xcode7 调用相册权限无提示
  • 原文地址:https://www.cnblogs.com/51runsky/p/6e66b54b9b7768e7301fd00c04f14c6b.html
Copyright © 2020-2023  润新知