当前位置:Gxlcms > 数据库问题 > 2. mysql 基本命令

2. mysql 基本命令

时间:2021-07-01 10:21:17 帮助过:3人阅读

连接登录

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

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

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

[ mysql ]

prompt=\u@\h\d>                           //指定提示符

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引擎的库,可以拷贝文件夹做热备份而且修改文件夹,可以修改库名

 

技术分享

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

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

 

8.获取表结构

技术分享

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)

 

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

技术分享

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

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

两张表都要是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 数据库名 > 导出的文件名

技术分享

2.导出一个表

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

技术分享

 

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



来自为知笔记(Wiz)



2. mysql 基本命令

标签:

人气教程排行