zoukankan      html  css  js  c++  java
  • MySQL 常用命令

    mysql -uroot -pXXXXXXXXX     //登陆mysql
    
    mysqladmin -u 用户名 -p 旧密码 password 新密码
    
    创建数据库并分配用户
    
    create database <数据库名> //创建数据库
    
    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';
    
    SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');
    
    show databases //显示数据库
    
    drop database <数据库名> //删除数据库
    
    use <数据库名> //连接数据库
    
    select database();  //当前选择的数据库
    
    select version();  //显示mysql版本
    
    select now();  //显示当前时间
    
    SELECT DAYOFMONTH(CURRENT_DATE);  //显示日
    
    SELECT MONTH(CURRENT_DATE);   //显示月
    
    SELECT YEAR(CURRENT_DATE);   //年
    
    SELECT "welecome to my blog!";   //显示字符串
    
    show create table 表名; //查看表结构
    
    select CONCAT(f_name, " ", l_name)  AS Name from employee_data where title = 'Marketing Executive'; ; //拼接字符串
    

    创建表

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

    例如,建立一张名为MyClass的表

    字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值
    id int 4 primary key auto_increment
    name char 20
    sex int 4 0
    degree double 16
    mysql> create table MyClass(
    > id int(4) not null primary key auto_increment,
    > name char(20) not null,
    > sex int(4) not null default '0',
    > degree double(16,2));
    

    删除表

    drop table <表名>  //删除表
    

    例如,删除表名为 MyClass 的表

     drop table MyClass;
    

    DROP TABLE用于取消一个或多个表。您必须有每个表的DROP权限。所有的表数据和表定义会被取消,所以使用本语句要小心!

    注意:对于一个带分区的表,DROP TABLE会永久性地取消表定义,取消各分区,并取消储存在这些分区中的所有数据。DROP TABLE还会取消与被取消的表有关联的分区定义(.par)文件。

    对与不存在的表,使用IF EXISTS用于防止错误发生。当使用IF EXISTS时,对于每个不存在的表,会生成一个NOTE。

    RESTRICT和CASCADE可以使分区更容易。目前,RESTRICT和CASCADE不起作用。

    插入数据

    insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];  //插入数据
    

    例如:往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为Tom的成绩为96.45, 编号为2 的名为Joan 的成绩为82.99, 编号为3 的名为Wang 的成绩为96.5。

    insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
    

    注意:insert into每次只能向表中插入一条记录。

    查询表中的数据

    select  × from < 表名 > where < 表达式 >  //查询表中的数据
    

    删除表中的数据

    delete from 表名 where 表达式  //删除表中的数据
    

    例如:删除表 MyClass中编号为1 的记录

    delete from MyClass where id=1;
    

    修改表中的数据

    update MyClass set name='Mary' where id=1; //修改表中的数据
    

    例子1:单表的MySQL UPDATE语句:

    UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
    

    例子2:多表的UPDATE语句:

    UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]
    

    UPDATE 语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有 的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。

    增加字段

    alter table 表名 add字段 类型 其他;  //增加字段
    

    例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0

    alter table MyClass add passtest int(4) default '0'
    

    加索引

    alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
    

    例子:

     alter table employee add index emp_name (name);
    

    加主关键字的索引

    alter table 表名 add primary key (字段名);
    

    例子:

      alter table employee add primary key(id);
    

    加唯一限制条件的索引

    alter table 表名 add unique 索引名 (字段名);
    

    例子:

     alter table employee add unique emp_name2(cardnumber);
    

    删除某个索引

    alter table 表名 drop index 索引名;
    

    例子:

    alter table employee drop index emp_name;
    

    增加字段

    ALTER TABLE table_name ADD field_name field_type;
    

    修改原字段名称及类型

    ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
    

    删除字段

    MySQL ALTER TABLE table_name DROP field_name;
    

    修改表名

    rename table 原表名 to 新表名;  //修改表名
    

    例如:在表MyClass名字更改为YouClass

     rename table MyClass to YouClass;
    

    当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
    如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。
    RENAME TABLE 在 MySQL 3.23.23 中被加入。

    备份数据库

    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
    

    例如,将aaa库备份到文件back_aaa中:

     cd /home/data/mysql
     mysqldump -u root -p --opt aaa > back_aaa
    
  • 相关阅读:
    在Docker中启动Nacos-Server
    maven配置阿里云公共仓库
    Centos7动态IP改静态后SSH很慢
    Vue+NodeJS的跨域请求Session不同
    一款非常简洁漂亮方便调用的jQuery前端分页
    springmvc后台接收List参数的几种办法
    net use命令详解(转)
    c#开发windows服务
    c# base64转字符串
    关于web api 验证
  • 原文地址:https://www.cnblogs.com/shiqing/p/6229128.html
Copyright © 2011-2022 走看看