(1)库的底蕴操作

MySQL常用命令及操作,MySQL常用命令操作

1、登陆与退出
   1)登录
       windows下直接在DOS命令窗口用root顾客登入输入mysql回车;
       linux下输入使用PUTTY连接mysql的服务器,然后输入: mysql -u 客户名
-p 密码  就能够走入mysql>分界面。
   2)退出
       执行 exit 回车 即可。
   3)改良密码
       mysql -u 用户名 -p 密码 password 新密码

2、数据库基本操作
   1)呈现数据库
       mysql>show databases;
   2)创造数据库
       mysql>create database  name;    
//这里的name是指须要创建的数据库的名字。
   3)删除数据库
       mysql>drop database name;          
//这里的name是指须要删除的数据库的名字。
   4)选择数据库
       mysql>use databasename;          
//这里的databasename是指选取的数据库的名字。
   5)查看当前应用的数据库
       mysql>select database();

3、表的基本操作
    注意:表的具备操作在此之前必得利用use
databasename;表明选用的哪位数据库。
   1)显示表
       mysql>show tables;
   2)显示具体的表结构
       mysql>describe tablename;
   3)创建表
       mysql>create table tablename(col1 type, col2 type….);  
//这里的tablename是指要成立的表名。
   4)删除表
       mysql>drop table tablename;   
//这里的tablename是指要创立的表名。
   5)插入数据
       insert into tablename values(col1 value,col2 value….);
   6)查询数据
       select * from tablename where …….;
   7)更新数据
       update tablename  set col1 = newvalue where …..;
   8)删除数据
       delete from tablename   where ……;

4、文件导入
   1)导入.sql文件命令(举个例子D:/mysql.sql)
       mysql>use databasename;
       mysql>source d:/mysql.sql;
   2)用文件方式将数据导入数据库表
       mysql>load data local infile “filename” into table tablename;

5、客商权限操作
   1)扩大新客商
       grant select on databasename.* to
[email protected]
identified by “password”
   2)扩张全体权限给客户
       grant all privileges on *.* to
[email protected]
identified by “password”;
   3)增添数据库的具体操作给顾客
       grant select ,insert,update on databasename.* to
[email protected]
identified by “password”
   4)扩展数据库的某张表的操作权限给客商
       grant update,delete on databasename.tablename to
[email protected]
identified by “password”
   5)删除权限
       revoke all privileges on *.* from
[email protected]
   6)flush privileges;

6、MySQL数据库备份迁移
   1)远程数据库备份
       mysqldump -h 10.201.10.243 -udiscuz -p discuz
>discuz_69.sql
   2)导入备份的数据库
       => mysql -ushenweiyan -p   //登录MySQL
       Enter password:
       mysql> use newucdb;
       mysql> source /home/shenweiyan/mysql-bk/discuzdb_3_2.sql;   
//将discuz数据库新闻导入成为newucdb的保存新闻

1、登入与退出 1)登入windows下直接在DOS命令窗口用root客商登陆输入mysql回车;
linux下输入使用PUTT…

MySQL的常用命令集锦,MySQL常用命令集锦

下边是大家平日会用到且十一分实用的MySQL命令。上边你看来#表示在Unix命令行下实施命令,见到mysql>表示方今早已报到MySQL服务器,是在mysql顾客端推行mysql命令。
登陆MySQL,如若总是远程数据库,必要用-h钦赐hostname。

登陆MySQL,借使总是远程数据库,需求用-h钦点hostname。

# [mysql dir]/bin/mysql -h hostname -u root -p

创建三个数据库。

mysql> create database [databasename];

列出装有数据库。

mysql> show databases;

切换来多个数据库。

mysql> use [db name];

展现二个数据库的全部表。

mysql> show tables;

查看数据表的字段格式。

mysql> describe [table name];

删去多少个数据库。

mysql> drop database [database name];

剔除二个数据表。

mysql> drop table [table name];

来得叁个数据表的全数数据。

mysql> SELECT * FROM [table name];

重回钦点数据表的各列音讯。

mysql> show columns from [table name];

使用值“whatever”过滤展现选定的一些行。

mysql> SELECT * FROM [table name] WHERE [field name] = "whatever";

来得全数包罗name为”鲍勃”和phone number为“3444444”的记录。

mysql> SELECT * FROM [table name] WHERE name = "Bob" AND phone_number = '3444444';

展示全体不含有name为”鲍勃”和phone
number为“3444444”的笔录,并以phone_number字段排序。

mysql> SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;

彰显全部的name以字母“bob”在那早先和phone number为“3444444”的笔录。

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';

显示name以字母“bob”开头和phone number为“3444444”的第1至第5条记录。

mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444' limit 1,5;

运用正则表明式查找记录。使用“正则表明式二进制”强制区分朗朗上口写。此命令查找以a开始的其余记录。

mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";

回来独一分歧的笔录。

mysql> SELECT DISTINCT [column name] FROM [table name];

以升序或降序呈现选定的记录。

mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;

回来行数。

mysql> SELECT COUNT(*) FROM [table name];

总计内定列值的总额。

mysql> SELECT SUM(*) FROM [table name];

联结表。

mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;

新建二个顾客。以root登入。切换来mysql数据库,创造客户,刷新权限。

# mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
mysql> flush privileges;

从unix命令行校勘顾客密码。

# [mysql dir]/bin/mysqladmin -u username -h hostname.blah.org -p password 'new-password'

从mysql命令行更正客商密码。以root登陆,设置密码,更新权限。

# /etc/init.d/mysql stop
# mysqld_safe --skip-grant-tables &
# mysql -u root

mysql> use mysql;
mysql> update user set password=PASSWORD("newrootpassword") where User='root';
mysql> flush privileges;
mysql> quit

# /etc/init.d/mysql stop
# /etc/init.d/mysql start

root密码为空时,设置root密码。

# mysqladmin -u root password newpassword

更新root密码。

# mysqladmin -u root -p oldpassword newpassword

同意客户“bob”从localhost以密码“passwd”连接服务器。以root登陆,切换mysql数据库。设置权限,更新权限。

# mysql -u root -p

mysql> use mysql;
mysql> grant usage on *.* to [email protected] identified by 'passwd';
mysql> flush privileges;

意气风发经不想手工业输入密码 请使用–password 参数

 mysqldump -h database_ip -u Username --password=123456 --opt databasename > backup-file.sql
 mysqldump -h database_ip -d -u Username --password=123456 databasename >database_structure.sql

为数据库db设置权限。以root登入,切换来mysql数据库,授予权限,更新权限。

# mysql -u root -p

mysql> use mysql;
mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;

或者

mysql> grant all privileges on databasename.* to [email protected];
mysql> flush privileges;

履新已存在表的多寡。

mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = 'user';

删去表中[field name] = ‘whatever’的行。

mysql> DELETE from [table name] where [field name] = 'whatever';

更新数据库的权柄/特权。

mysql> flush privileges;

删除列。

mysql> alter table [table name] drop column [column name];

新增添列到db。

mysql> alter table [table name] add column [new column name] varchar (20);

改变列名。

mysql> alter table [table name] change [old column name] [new column name] varchar (50);

追加唯大器晚成的列。

mysql> alter table [table name] add unique ([column name]);

设置列值大点。

mysql> alter table [table name] modify [column name] VARCHAR(3);

除去独一列。

mysql> alter table [table name] drop index [colmn name];

导入三个CSV文件到表。

mysql> LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);

金沙国际官网,导出全数数据库到sql文件。

# [mysql dir]/bin/mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql

导出贰个数据库。

# [mysql dir]/bin/mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql

从二个数据库导出三个表。

# [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql

从sql文件还原数据库(数据表)。

# [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql

创建数量表例1。

mysql> CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));

创造数量表例2。

mysql> create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default 'bato');

将查询结果保存到文件

 select title from book into outfile '/tmp/outfile.txt';

查找表中剩下的重复记录,重复记录是根据有个别字段(peopleId)来决断

 select * from people where peopleId in (select peopleId from people group by 
 peopleId having count(peopleId) > 1);

查询表中不重复记录(消亡重复记录)

 select * from phome_ecms_wma where title in (select distinct title from phome_ecms_wma);

剔除表中重复记录,重复记录是依赖某些字段(title)来判别

 select *,count(distinct title) INTO OUTFILE '/tmp/table.bak' from phome_ecms_wma group by title;
 delete from phome_ecms_wma;
 LOAD DATA INFILE '/tmp/table.bak' REPLACE INTO TABLE phome_ecms_wma character set utf8;

自由选用记录

 SELECT *FROM url ORDER BY RAND() LIMIT 5;

查询数据库当前编码

 mysql> show variables like "character_set%";

改进表字段类型

 mysql> alter table table_name change last_action last_action datetime NOT NULL default '0000-00-00 00:00:00';

给表增添叁个新字段

 mysql> ALTER TABLE host ADD ks_mac VARCHAR(100);

从表中删除三个字段

 mysql> ALTER TABLE table_name DROP field_name; 

重命名表

 mysql>alter table t1 rename t2;

给字段加索引

 mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
 mysql> alter table tablename add index emp_name (name);

加主关键字的目录

 mysql> alter table tablename add primary key(id);

加唯生龙活虎约束条件的目录

 mysql> alter table tablename add unique emp_name2(cardnumber);

去除有个别索引

 mysql>alter table tablename drop index emp_name;

远程访谈mysql 设置

 mysql> GRANT ALL PRIVILEGES ON database_test.* to [email protected] IDENTIFIED BY '123456';
 mysql> FLUSH PRIVILEGES;

上面是大家平日会用到且特别实惠的MySQL命令。上面你看看#表示在Unix命令行下推行命令,见到mys…


1.命令行连接数据库

  • 翻开原来就有库: show databases;
  • 创立库(制订私下认可字符集): ccreate database 库名 default
    charset=utf8;
  • 翻看创立库的讲话: show create database 库名;
  • 翻开当前所在库: select database();
  • 切换库: use 库名;
  • 查看库中原来就有表: show tables;
  • 删除库: drop database 库名;

客商管理命令

  1. 新扩展客商

    • create user 命令

       CREATE USER username IDENTIFIED BY 'password';
      
    • grant授权命令

        GRANT ALL PRIVILEGES ON *.* to mysqluser@'%' IDENTIFIED BY 'passworkd' WITH GRANT OPTION;
      
    • insert在user表中插入新顾客

        INSERT INTO user (host,user,password) VALUES ('%','test3',password('123'));
      
  2. 剔除客户

    • drop删除命令

        DROP user username;
      
    • delete删除客商

        DELETE user FROM user where user='test2';
      
  3. 顾客查看命令

         SELECT user,host,super_priv from user;
    

mysql -u -p -h -P -default-character-set [databasename]

(2)表的治本

grant语句

  1. 全局级(可认为某三个客商分配全体的权位,存款和储蓄在mysql.user中)

     grant all privileges on *.* to mysqluser@'%';
    

    注:mysqluser具有全体的管理权限,不过从未分配权限,也正是无法创制新客商

     grant all privileges on *.* to mysqluer@'%' with grant option;
    

    注:mysqluser顾客具备创立新客商的权杖

  2. 数据库级(给定一个数据库中兼有的指标操作权限,存款和储蓄在mysql.db和mysql.host中)

     grant all privileges on database.* to mysqluser@'%' identified by 'password' with grant option;
    

    注:给客户mysqluser在database上的权柄,不能功用于任何数据库

  3. 数据库表级(给客户贰个数量表中的操作权限,存款和储蓄在mysql.tabls_priv中,通常select
    insert delete update等)

     grant select on database.table1 to mysqluser@'%' indentified by 'password' with grant option;
    
  4. 字段级(客户只对某一字段具备某个权力,存储在mysql.columns_priv)

     grant insert(columnname) on database.tabel to mysqluser@'%' indentified by 'password' with grant option;
    
  5. 子程序级(客户用于存款和储蓄进度,改良过程,实践存款和储蓄进程,或函数等操作使用子程序级处理,存款和储蓄在mysql.procs_priv中)

    • 如客户mysqluser获得数据库database中的test_pro 的实施权限

         grant execute on procedure database.test_pro to mysqluser@'%';
      
    • 用户mysqluser执行database中的test_func函数、

        grant execute on funcation database.test_func to mysqlur@'%';
      
  • -u用户名 或 -user=name 用户名
  • -p密码
  • -h主机名 或 -host=主机名 MySQL服务器地址
  • -P端口号 或 -port=端口号 TCP/IP端口号
  • -default-character-set=name 通讯使用的字符集
  • databasename 命令行最后二个参数,用于钦命要使用的数据库
  • 创制表(拟定字符集)

show grants 语句

  • 翻开本人的操作权限

      mysql> show grants;
    
  • 查阅别的顾客的操作权限

    mysql> show grants for test3;
    
  1. 连天当地数据库服务

    create table tablename(

revoke语句(权限收回)

  1. 祛除字段集

     revoke insert(字段名)no database.tabel from mysqluser;
    
  2. 淹没表级某风流罗曼蒂克类权限

     revoke insert,update,delete on mysql.user form test3;
    
  3. 裁撤全局级

     revoke all privileges,grant option from test3;
    

mysql -uroot -proot

    字段名 数据类型,

导入导出命令(简要介绍)

  1. 导入命令

    • mysqlimport (要求首先成立对应的表格)

        mysqlimport [-d/f...] -u root -p table data_import.txt
      

      参数:

         -d 在新数据导入数据表之前删除表中原有数据
         -f 忽略执行中的错误,强行插入数据
         -i mysqlimport 跳过或者忽略有相同唯一关键字的记录
         -r 替换表中有相同唯一关键字的记录
         --fields-enclosed- by=char 指定文本中的数据记录是以什么括起来的,默认没有被字符括起
         --fields-terminated- by=char 指定各数据值之间的分隔符,用户可以用此选项指定,默认为Tab
         --lines-terminated- by=str 指定文本中行与行之间的的分隔符或字符串,默认为newline,用户可选择用一个字符串来替代一个单词的字符
         --lock-tables 数据被插入之前锁住数据表
      
    • source导入命令

        source data.sql
      
    • load(专职导入数据)

        load data infile 'data-import.txt' into tabel data_improt; 
      
    • restore恢复

        restore table tablename from '/home/backup';(此为路径)
      
  2. 导出命令

    • mysqldump

        mysqldump [-r/...] databasenaem > data.sql;
      

      参数:

        --add-locks 枷锁,该选项是在insert语句中加入lock table和unlock table
        --add-drop-table 在每一个表前加入DROP TABEL IF EXISTS语句
        -f 或 -force 忽略错误强行导出
        -d 或 -no-data 导出时不创建insert语句
        -t 或 -no-create-info 在数据导出前不创建create table 语句
        -F 或 -flush-logs 在执行导出前刷新服务器的log
        --delayed-insert 在insert命令中加入delay选项
        -c 或 -complete_insert 对每一个insert语句加上列(filed)的名字
        -l 或 -lock-tables 数据被导出时锁住表
      
    • 命令导出

        select * from tablename into outfile 'filename.txt';
      
    • backup语句

        backup table tablename to '/home/backup';(此为路径)
      

3.钦点端口连接本地数据库服务

    字段名 数据类型,

复制数据库

  1. 表与数据的复制

     create table tablename1 select * from tablename2;
    
  2. 表结构复制

    • 利用create&select

         create table tabelname1 select * from tablename2 where <条件>;
      
    • 利用like语句

        create tabel 目标表 like 源数据表;
      
  3. 笔录复制

    • 全表记录复制

        insert into 目标表名  select * from 源数据表名;
      
    • 局地记录复制

        insert into 目标表名 select * from 源数据表名 where <条件>;
      
    • 意气风发对字段复制(前提是先成立一张表)

        insert into 目标表名(字段) select (字段) from 源数据表名;
      

may you success !

mysql -uroot -proot -P3310

    … …

4.接连远程数据库服务

    );

mysql -h192.168.1.10 -uroot -proot

  • 查看成立表的话语(字符集)

5.退出连接

    show create table tablename;

exit
quit

  • 查看表结构

6.查看命令支持

    desc tablename;

help

  • 删除表

7.查看数据库

    drop table tablename;

show databases;
show databases like ‘u%’;

(3)表记录管理

8.查看数据库创立音信

  • 在表中插入记录

show create database `edusoho`;

    insert into tablename values(值1),(值2),…,(值N);

9.查看数据库中的表

  • 查询表记录

show tables from `edusoho`;

    select * from tablename;

10.翻看当前数据库中的表

    select 字段名1,字段名2,…,字段名N from tablename;

show tables;

(4)表字段的操作

11.查看数据表创制消息

    语法:

show create table edusoho.user;

      alter table tablename 施行动作;

12.查看数据表中的列音讯

  • 增加字段
    •   alter table tablename add 字段名 数据类型 first | after
      字段名;
  • 除去字段
    •   alter table tablename drop 字段名;
  • 改进字段数据类型
    •   alter table tablename modify 字段名 新数据类型;

show columns from edusoho.user;

      注: 改革数据类型时,会惨被表中原有数据的限量!

13.查看全部可用字符集

  • 修改字段名
    •   alter table tablename change 旧名 新名 数据类型;
  • 改革申明
    •   alter table tablename rename 新表明;

show character set;

(5)表记录的管制

14.翻看全数可用引擎

  1. 删去表记录
    1.   delete from tablename where 条件;
  2. 更新表记录
    1.   update tablename set 字段名1=值1, 字段名2=值2,… where
      条件;

show engines;

(6)一些特别的相当情势

15.查看引擎状态

  1. 指鹿为马相配
    1.   where 字段名 like 表达式;
    2.   表达式
      1.   _   :  相称单个字符
      2.   %  : 相配 0 到三个字符
  2. 正则相配 regexp
    1.   where 字段名 regexp “正则表明式”;
    2.   正则表明式符号
      1.   ^ : 以…开头
      2.   $: 以…结尾
      3.   . : 相称大肆多少个字符
      4.   []: 包含…内容
        1.         [0-9]:相配带数字的
        2.         [a-z]:相配带小写字母的
        3.         [A-Z]
      5.   * : 星号后面的字符现身 0 次也许频仍

show engine InnoDB status;

16.翻看引擎日志

show engine InnoDB logs;

17.查看错误音讯

show errors;

18.翻看内定页错误音讯

show errors limit 0,10;

19.查看错误消息数量

show count(*) errors;
select @@error_count;

20.查看警报音信

show warnings;

21.翻看钦点页警报新闻

show warnings limit 0,10;

22.翻看警报消息数量

show count(*) warnings;

23.翻看当前客商权限

show grants;

24.翻看服务器辅助的权限

show privileges;

25.翻看全部客商

select * from `mysql.user`;

26.开立贰个顾客

create user ‘liebert’@’localhost’ identified by password ‘123’;

27.查看客商权限

show grants for ‘liebert’@’localhost’;

28.为客户钦命权限

grant create,update,select,delete,insert on *.* to
‘liebert’@’localhost’;

29.撤回钦定权限

revoke delete on *.* from ‘liebert’@’localhost’;

30.去除某些客户

drop user ‘liebert’@’localhost’;

31.清空MySQL缓存

flush

31.优化表

optimize table `ems_user`;

32.检查八个表是或不是有荒唐

check table `ems_user`

33.取舍多少个数据库

use edusoho;

34.成立一张表

create table `ems_user` (`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8

35.删除表

drop table ems_user if exists `ems_user`;

36.查看表的始建新闻

show create table ems_suer\G;
show table status\G;

37.修正表备注

alter table `ems_user` comment ‘用户表’;

38.查看表字段消息

describe `ems_user`;
show columns from `ems_user`;

39.翻看钦点字段音讯

describe `ems_user` `nickname`;
desc `ems_user` `nickname`;

40.在表中插入新的字段

alter table `ems_user` add column (`nickname` varchar(255)
default null comment ‘昵称’, `email` varchar(255) default null
comment ‘邮箱’);

41.剔除表中的某部字段

alter table `ems_user` drop column `nickname`

42.改进字段名

alter table `ems_user` change column `nickname`

43.更改字段属性

alter table `ems_user` modify column `nickname` varchar(200)
comment ‘nickname’;

44.插入一条记下

insert into tables values (, ‘liebert’);

45.插入多条记下

insert into talbes (`nickname`, `email`) values (‘liebert’,
‘123@163.com’),
(‘lidelan’,
‘lidelan@163.com’);

46.更新钦赐记录

update `ems_user` set `nickname`=’lee’,
`email`=’123@163.com’
where id=3;

47.删减钦点记录

delete from `ems_user` where id=3;

48.刨除全数记下

delete from `ems_user`;

49.刨除钦定数量的笔录

delete from `ems_user` limit 10;

50锁定三个表

lock tables `ems_user`;

51.撤废表锁定

unlock tables `ems_user`;

52.起步职业

start transaction;
begin;

53.交付业务

commit;

54.回滚事务

rollback;

55.开启自动提交

set autocommit=1;

56.闭馆自动提交

set autocommit=0;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图