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
    
  • 相关阅读:
    (Java实现) 洛谷 P1106 删数问题
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1106 删数问题
    目测ZIP的压缩率
  • 原文地址:https://www.cnblogs.com/shiqing/p/6229128.html
Copyright © 2011-2022 走看看