MySQL

Posted huiyichanmian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL相关的知识,希望对你有一定的参考价值。

一:命令行连接数据库  

  打开终端,运行命令mysql -uroot -p (p后面加密码,可以直接加,也可以回车在下一行输入,为了不暴露密码,回车在下行输入

  退出:exit或quit

  查看版本信息: select version();

  显示当前时间: select now();

  查看所有的数据库:show databases;

  使用数据库: use + 库名;

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

  创建数据库:create database 数据库名 charset=utf8;

        例:create database python charset=utf8;

  删除数据库:delete database 数据库名;

        例:delete database python;

  查看当前数据库中所有的表:show tables;

  查看表结构: desc 表名;

  创建表:auto_increment表示自动增长 

CREATE TABLE table_name(
column1 datatype contrai,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY(one or more columns)
);

  创建班级表:

create table classes(
id int unsigned auto_increment primary key not null,
name varchar(10)
); 

 创建学生表:
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default ‘‘,
age tinyint unsigned default 0,
height decimal(5,2),
gender enum(,,人妖,保密),
cls_id int unsigned default 0
)

 

  修改表-添加字段:  

          alter table 表名 add 列名 类型;

          例:alter table students add birthday datetime;


  修改表-修改字段:重命名版       

          alter table 表名 change 原名 新名 类型及约束;
          例:alter table students change birthday birth datetime not null;


   修改表-修改字段:不重命名版      

          alter table 表名 modify 列名 类型及约束;

          例:alter table students modify birth date not null;


  修改表-删除字段 :

          alter table 表名 drop 列名; 
          例:alter table students drop birth


  删除表:
        drop table 表名;
        例:drop table students;


  查看建表语句:

      show create table 表名;
      例: show create table classes;


二: 数据库的怎删改查(curd)  

    curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)  

  1.查询基本使用   

    (1)查询所有列  

        select * from 表名; 例: select * from classes;  

  
    (2)查询指定的列


        select 列1,列2 from 表名; 例: select id,name from classes;  

 

  2.增加

      格式:INSERT [INTO] tb_name [(col_name,...)] VALUES | VALUE (expr | DEFAULT,...),(...),...


      说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0或者 default 或者 null 来占位,插入成功后以实际数据为准

     (1)全列插入:值的顺序与表中字段的顺序对应

        insert into 表名 values(...);

        例:insert into students values(0,’郭靖‘,1,‘蒙古‘,‘2016-1-2‘);

     (2)部分列插入,值的顺序与给出的列顺序对应

       insert into 表名(列1,列2,...)values(值1,值2,..);

       例:insert into students(name,hometown,birthday) values(‘黄蓉‘,‘桃花岛‘,‘2016-3-2‘);

     (3)全列多行插入:值的顺序与给出的列顺序对应

        insert into 表名 values(...),(...)...;  

        例:insert into classes values(0,‘python1‘),(0,‘python2‘);

        nsert into 表名(列1,...) values(值1,...),(值1,...)...;

        例:insert into students(name) values(‘杨康‘),(‘杨过‘),(‘小龙女‘);   

  3.修改

     格式: UPDATE tb_name SET col1=expr1|DEFAULT [,col2=expr2|default]...[where 条件判断]  

       update 表名 set 列1=值1,列2=值2... where 条件

       例:update students set gender=0,hometown=‘北京‘ where id=5;   

 

   4.删除

      格式:DELETE FROM tbname [where 条件判断]

         TRUNCATE tbname

         delete from 表名 where 条件

         例:delete from students where id=5;


    
如果全部清空表中的数据delete from tbname;但是自增字段没有被重置
               truncate taname; 速度更快,并将自增字段重置

 

三:备份

  运行mysqldump命令

mysqldump –uroot –p 数据库名 > python.sql;

# 按提示输入mysql的密码

 

四:恢复

  1.连接mysql,创建新的数据库

  2.退出连接,执行下面的命令 

mysql -uroot –p 新数据库名 < python.sql

# 根据提示输入mysql密码

 

以上是关于MySQL的主要内容,如果未能解决你的问题,请参考以下文章

MySQLMySQL 一些 使用 案例

MySQL的常用操作更改root密码连接MySQLMySQL常用的命令

MySQLMysql必会语句

MySQLMysql必会语句

MySQLMysql必会语句

mysqlmysql优化