mysql基础命令讲解

mysql基础命令讲解
1、启动与关闭mysql
方法一:
启动 : /etc/init.d/mysqld start
关闭:/etc/init.d/mysqld stop
提示:/etc/init.d/mysqld 由/home/zhangjie/tool/mysql-5.1.62/support-files/mysql-server复制而来。
方法二:
启动:/usr/local/mysql/bin/mysqld_safe --user=mysql &
关闭:killall mysqld

2、mysql登录
无密码登录:mysql直接回车进入
有密码登录:mysql -u root -p回车。输入正确的密码登录或 mysql -uroot -p'123456'回车。
提示:这里的123456是mysql的密码,有一个弊端就是是明文,很容易让人通过history查到

3、退出mysql
方法一:exit
方法二:quit

4、设置修改mysql  root 用户密码
由于安装mysql后,默认管理员root密码为空,这很不安全,因此需要修改
mysqladmin -u root password '123456'

修改root密码
方法一:
mysqladmin -u root -p'123456'  password  '654321'

注:-p'123456'中间无空格    password '654321'中间是有空格的
方法二:
>mysql UPDATE mysql.user SET password=PASSWORD("123456") WHERE user='root'
>mysql flush privileges

5、如何找回丢失的mysql  root用户登录密码
单实例:
killall mysqld
mysqld_safe --skip-grant-tables &
mysql -u root -p直接回车不要密码
修改密码:
>mysql UPDATE mysql.user SET password=PASSWORD("zhangjie") WHERE user='root'
>mysql flush privileges;
注:这里不能使用mysqladmin修改,只能无密码进入mysql后再通过 UPDATE更改密码
多实例:



6、创建一个数据库
创建一个默认的数据库: >mysql create database zhangjie_default;
创建一个字符级为gbk的数据库:>mysql create database zhangjie_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
创建一个字符级为utf8的数据库: >mysql create database zhangjie_utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;



7、查看数据库
>mysql show create database zhangjie_default;

8、显示所有的数据库
>mysql show databases;
查看单个数据库
>mysql show databases like 'blog_utf8';

9、连接数据库
>mysql use blog_gbk;
查看我当前的数据库
>mysql select database();
查看mysql的版本
>mysql select version();
查看我当前所使用的用户
>mysql select user();
查看当前数据库包含的表信息
>mysql show tables;

10、  查看当前数据库中所有的用户有哪些
>mysql select user,host from mysql.user;

11、查看用户的权限
>mysql show grants for root@localhost;

12、删除系统多余帐号
>mysql drop user  'root'@'localhost'

13、创建用户并授予权限
>mysql   GRANT ALL on *.*  TO 'blog'@'10.0.0.%' identified by '123456'

生产环境下主库用户的授权
>mysql  GRANT SELECT,INSERT,UPDATE,DELETE on blog.* TO 'blog'@'10.0.0.%' identified by '123456'
生立环境下从库用户的授权
>mysql GRANT SELECT ON blog.* TO 'blog'@'10.0.0.%' identified by '123456'

14、建表操作
mysql> create table test(id int(4) not null primary key auto_increment,name char(20)not null);
Query OK, 0 rows affected (0.04 sec)

查看表
mysql> show tables;
+---------------------+
| Tables_in_blog_utf8 |
+---------------------+
| test                |
+---------------------+
1 row in set (0.00 sec)

查看表结构
mysql> desc test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql> show columns from test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

查建表语句
mysql> show create table test \G;
*************************** 1. row ***************************
       Table: test
Create Table: CREATE TABLE `test` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR: 
No query specified

注:mysql默认的引擎是MyISAM引擎

15、插入数据
mysql> insert into test(id,name) values(1,'zhangjie'); 
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangjie |
+----+----------+
1 row in set (0.00 sec)

mysql> insert into test(name) values('botian');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangjie |
|  2 | botian   |
+----+----------+
2 rows in set (0.00 sec)

mysql> insert into test(name) values('lubeijian');
Query OK, 1 row affected (0.01 sec)

mysql> select * from test;                        
+----+-----------+
| id | name      |
+----+-----------+
|  1 | zhangjie  |
|  2 | botian    |
|  3 | lubeijian |
+----+-----------+
3 rows in set (0.01 sec)

mysql> insert into test values(4,'elain'),(5,'wodi');     
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from test;                           
+----+-----------+
| id | name      |
+----+-----------+
|  1 | zhangjie  |
|  2 | botian    |
|  3 | lubeijian |
|  4 | elain     |
|  5 | wodi      |
+----+-----------+
5 rows in set (0.00 sec)

mysql> insert into test(name) values('A'),('B'),('C');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from test;                            
+----+-----------+
| id | name      |
+----+-----------+
|  1 | zhangjie  |
|  2 | botian    |
|  3 | lubeijian |
|  4 | elain     |
|  5 | wodi      |
|  6 | A         |
|  7 | B         |
|  8 | C         |
+----+-----------+
8 rows in set (0.00 sec)

16、备份数据库
mysql> system mysqldump -u root -p'123456' -A -B >/tmp/zhangjiebak.sq

17、查看表中的内容

mysql> select * from test limit 2;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangjie |
|  2 | botian   |
+----+----------+
2 rows in set (0.00 sec)

mysql> select * from test limit 3;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | zhangjie  |
|  2 | botian    |
|  3 | lubeijian |
+----+-----------+
3 rows in set (0.00 sec)

mysql> select * from test limit 0,4;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | zhangjie  |
|  2 | botian    |
|  3 | lubeijian |
|  4 | elain     |
+----+-----------+
4 rows in set (0.00 sec)

mysql> select * from test where id > 6;
+----+------+
| id | name |
+----+------+
|  7 | B    |
|  8 | C    |
+----+------+
2 rows in set (0.00 sec)

mysql> select * from test where id < 4;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | zhangjie  |
|  2 | botian    |
|  3 | lubeijian |
+----+-----------+
3 rows in set (0.00 sec)

mysql> select * from test where name='zhangjie';
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangjie |
+----+----------+
1 row in set (0.00 sec)

18、修改表中的数据
先查一下表中的内容
mysql> select * from test;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | zhangjie  |
|  2 | botian    |
|  3 | lubeijian |
|  4 | elain     |
|  5 | wodi      |
|  6 | A         |
|  7 | B         |
|  8 | C         |
+----+-----------+
8 rows in set (0.00 sec)

将id=1的这一行中name改为oldboy,原来为zhangjie
mysql> update test set name='oldboy'where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

再查一下表中的内容,发现已经改过来了
mysql> select * from test;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | oldboy    |
|  2 | botian    |
|  3 | lubeijian |
|  4 | elain     |
|  5 | wodi      |
|  6 | A         |
|  7 | B         |
|  8 | C         |
+----+-----------+
8 rows in set (0.00 sec)

19、删除表中的数据
先查看一下表中的内容
mysql> select * from test;         
+----+-----------+
| id | name      |
+----+-----------+
|  2 | botian    |
|  3 | lubeijian |
|  4 | elain     |
|  5 | wodi      |
|  6 | A         |
|  7 | B         |
|  8 | C         |
+----+-----------+
7 rows in set (0.01 sec)

删除id < 5的内容
mysql> delete from test where id < 5;
Query OK, 3 rows affected (0.01 sec)

再量一下表中id < 5的都已经没有了
mysql> select * from test;           
+----+------+
| id | name |
+----+------+
|  5 | wodi |
|  6 | A    |
|  7 | B    |
|  8 | C    |
+----+------+
4 rows in set (0.00 sec)
删除整个test表
mysql> truncate table test;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test; 
Empty set (0.00 sec)

19、在表中增加字段(dba操作)
mysql> alter table test add sex char(4);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
查看表中内容
mysql> desc test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
| sex   | char(4)  | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
在name之后添加一个age字段
mysql> alter table test add age int(4) after name;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
查看表中内容
mysql> desc test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
| age   | int(4)   | YES  |     | NULL    |                |
| sex   | char(4)  | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

20、删除表中的内容
删除前查看表中内容
mysql> desc test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
| age   | int(4)   | YES  |     | NULL    |                |
| sex   | char(4)  | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
删除表中sex 这一列内容
mysql> alter table test drop sex;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0
再次查看验证
mysql> desc test;                
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
| age   | int(4)   | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

21、更改表名
先查看表名
mysql> show tables;                      
+---------------------+
| Tables_in_blog_utf8 |
+---------------------+
| test                |
+---------------------+
1 row in set (0.00 sec)
使用rename修改表名
mysql> rename table test to zhangjietest;
Query OK, 0 rows affected (0.00 sec)
再次查看修改后的表名
mysql> show tables;                      
+---------------------+
| Tables_in_blog_utf8 |
+---------------------+
| zhangjietest        |
+---------------------+
1 row in set (0.00 sec)
使用 alter  修改表名
mysql> alter table zhangjietest rename to zhangjie;
Query OK, 0 rows affected (0.01 sec)
查看是否修改成功
mysql> show tables;
+---------------------+
| Tables_in_blog_utf8 |
+---------------------+
| zhangjie            |
+---------------------+
1 row in set (0.00 sec)

22、删除整张表
先查看都有哪些表
mysql> show tables;
+---------------------+
| Tables_in_blog_utf8 |
+---------------------+
| zhangjie            |
+---------------------+
1 row in set (0.00 sec)
删除名为zhangjie的表
mysql> drop table zhangjie;
Query OK, 0 rows affected (0.01 sec)

再次查看都有哪些表,这里显示这个库里面已经没有表了,空了
mysql> show tables;        
Empty set (0.00 sec)


 

你可能感兴趣的:(mysql基础命令)