MySQL-5.5之基础操作练习

Posted

tags:

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



装完了mysql,接着就得熟悉一下操作命令。



1. 数据定义语句 DDL

create (database | table | index)

drop (database | table | index)

alter (database | table)

rename (table)


1.1 create

mysql> create database school;
Query OK, 1 row affected (0.00 sec)

mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| school   | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> use school;
Database changed
mysql> 
mysql> create table student(
    -> `id` int(5) not null auto_increment,
    -> `name` char(20) not null,
    -> `sex` char(5) not null,
    -> `age` tinyint(2) not null default ‘0‘,
    -> primary key(id),
    -> key index_name(name));
Query OK, 0 rows affected (0.02 sec)

mysql> desc student;
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | int(5)     | NO   | PRI | NULL    | auto_increment |
| name  | char(20)   | NO   | MUL | NULL    |                |
| sex   | char(5)    | NO   |     | NULL    |                |
| age   | tinyint(2) | NO   |     | NULL    |                |
+-------+------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> show create table student\G
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  `sex` char(5) NOT NULL,
  `age` tinyint(2) NOT NULL DEFAULT ‘0‘,
  PRIMARY KEY (`id`),
  KEY `index_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> create index index_age on student(age);
Query OK, 0 rows affected (0.12 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;                          
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | int(5)     | NO   | PRI | NULL    | auto_increment |
| name  | char(20)   | NO   | MUL | NULL    |                |
| sex   | char(5)    | NO   |     | NULL    |                |
| age   | tinyint(2) | NO   | MUL | NULL    |                |
+-------+------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)


1.2 drop

mysql> use school;
Database changed
mysql> 
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student          |
| test01           |
| test02           |
+------------------+
3 rows in set (0.00 sec)
mysql> 
mysql> drop table test01;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;      
+------------------+
| Tables_in_school |
+------------------+
| student          |
| test02           |
+------------------+
2 rows in set (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> drop database test;
Query OK, 0 rows affected (0.12 sec)

mysql> show databases;    
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
+--------------------+
4 rows in set (0.00 sec)

mysql> use school;
Database changed
mysql> 
mysql> desc student;
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | int(5)     | NO   | PRI | NULL    | auto_increment |
| name  | char(20)   | NO   | MUL | NULL    |                |
| sex   | char(5)    | NO   |     | NULL    |                |
| age   | tinyint(2) | NO   | MUL | NULL    |                |
+-------+------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> drop index index_age on student;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;                   
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | int(5)     | NO   | PRI | NULL    | auto_increment |
| name  | char(20)   | NO   | MUL | NULL    |                |
| sex   | char(5)    | NO   |     | NULL    |                |
| age   | tinyint(2) | NO   |     | NULL    |                |
+-------+------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)


1.3 alter

mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> alter database test CHARACTER SET GBK COLLATE gbk_chinese_ci; # 改库的字符集
Query OK, 1 row affected (0.00 sec) 

mysql> show create database test;                                   
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show character set;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |


mysql> desc test01;
+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| id    | int(4) | NO   | PRI | 0       |       |
| fit   | int(5) | YES  | MUL | NULL    |       |
+-------+--------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> alter table test01 drop primary key;
Query OK, 0 rows affected (0.17 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test01;
+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| id    | int(4) | NO   |     | 0       |       |
| fit   | int(5) | YES  | MUL | NULL    |       |
+-------+--------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> alter table test01 drop index index_fit;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test01;
+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| id    | int(4) | NO   |     | 0       |       |
| fit   | int(5) | YES  |     | NULL    |       |
+-------+--------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> select * from student;
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |  13 |
|  2 | 小南   | 女  |  13 |
|  3 | 小北   | 男  |  13 |
|  4 | 小西   | 女  |  13 |
+----+--------+-----+-----+
4 rows in set (0.10 sec)

mysql> alter table student drop age;
Query OK, 4 rows affected (0.16 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> 
mysql> select * from student;                 
+----+--------+-----+
| id | name   | sex |
+----+--------+-----+
|  1 | 小东   | 男  |
|  2 | 小南   | 女  |
|  3 | 小北   | 男  |
|  4 | 小西   | 女  |
+----+--------+-----+
4 rows in set (0.00 sec)

mysql> alter table student add age tinyint(2) not null;
Query OK, 4 rows affected (0.10 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from student;                          
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  2 | 小南   | 女  |   0 |
|  3 | 小北   | 男  |   0 |
|  4 | 小西   | 女  |   0 |
+----+--------+-----+-----+
4 rows in set (0.00 sec)


1.4 rename

mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)

mysql> rename table student to boy;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;                
+------------------+
| Tables_in_school |
+------------------+
| boy              |
+------------------+
1 row in set (0.00 sec)


2. 数据操作语句 DML

insert

select

update

delete


2.1 insert

mysql> insert into student(name,sex,age) values(‘小东‘,‘男‘,‘13‘),(‘小南‘,‘女‘,‘13‘);
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> 
mysql> select * from student;
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |  13 |
|  2 | 小南   | 女  |  13 |
+----+--------+-----+-----+
2 rows in set (0.00 sec)

mysql> insert into student values(3,‘小北‘,‘男‘,‘13‘),(4,‘小西‘,‘女‘,‘13‘);      
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from student;
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |  13 |
|  2 | 小南   | 女  |  13 |
|  3 | 小北   | 男  |  13 |
|  4 | 小西   | 女  |  13 |
+----+--------+-----+-----+
4 rows in set (0.00 sec)



2.2 select

mysql> select * from student;                        
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  2 | 小南   | 女  |   0 |
|  3 | 小北   | 女  |  12 |
|  4 | 小西   | 女  |  13 |
+----+--------+-----+-----+
4 rows in set (0.00 sec)

mysql> select * from student where name=‘小北‘;
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  3 | 小北   | 女  |  12 |
+----+--------+-----+-----+
1 row in set (0.00 sec)

mysql> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

mysql> select user,host from mysql.user where user=‘root‘ and host=‘localhost‘;
+------+-----------+
| user | host      |
+------+-----------+
| root | localhost |
+------+-----------+
1 row in set (0.00 sec)


2.3 update

mysql> update student set age=13 where id=4;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  2 | 小南   | 女  |   0 |
|  3 | 小北   | 男  |   0 |
|  4 | 小西   | 女  |  13 |
+----+--------+-----+-----+
4 rows in set (0.00 sec)
mysql> update student set sex=‘女‘,age=12 where id=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;                        
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  2 | 小南   | 女  |   0 |
|  3 | 小北   | 女  |  12 |
|  4 | 小西   | 女  |  13 |
+----+--------+-----+-----+
4 rows in set (0.00 sec)


2.4 delete

mysql> select * from student;                        
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  2 | 小南   | 女  |   0 |
|  3 | 小北   | 女  |  12 |
|  4 | 小西   | 女  |  13 |
+----+--------+-----+-----+
4 rows in set (0.00 sec)

mysql> delete from student where id=4;
Query OK, 1 row affected (0.00 sec)

mysql> select * from student;                  
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  2 | 小南   | 女  |   0 |
|  3 | 小北   | 女  |  12 |
+----+--------+-----+-----+
3 rows in set (0.00 sec)

mysql> delete from student where name=‘小南‘;
Query OK, 1 row affected (0.00 sec)

mysql> select * from student;                
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  3 | 小北   | 女  |  12 |
+----+--------+-----+-----+
2 rows in set (0.00 sec)


3. 数据库管理语句

show

create user

grant

revoke


3.1 show

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
+--------------------+
4 rows in set (0.00 sec)

mysql> use school;
Database changed
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)

mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| school   | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show create table student\G
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  `sex` char(5) NOT NULL,
  `age` tinyint(2) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `index_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

mysql> show grants for [email protected];  
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘localhost‘ IDENTIFIED BY PASSWORD ‘*23AE809DDACAF96AF0FD78ED04B6A265E05AA257‘ WITH GRANT OPTION |
| GRANT PROXY ON ‘‘@‘‘ TO ‘root‘@‘localhost‘ WITH GRANT OPTION                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)


3.2 create user

mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 |                                           |
+------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

mysql> 
mysql> create user [email protected]‘192.168.0.%‘ identified by ‘123‘;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;          
+-------+-------------+-------------------------------------------+
| user  | host        | password                                  |
+-------+-------------+-------------------------------------------+
| root  | localhost   | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root  | 127.0.0.1   |                                           |
| logen | 192.168.0.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+-------+-------------+-------------------------------------------+
3 rows in set (0.00 sec)

mysql> select user,host,password from mysql.user;
+-------+-------------+-------------------------------------------+
| user  | host        | password                                  |
+-------+-------------+-------------------------------------------+
| root  | localhost   | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root  | 127.0.0.1   |                                           |
| logen | 192.168.0.% | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+-------+-------------+-------------------------------------------+
3 rows in set (0.00 sec)

mysql> drop user [email protected]‘192.168.0.%‘;            
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | 127.0.0.1 |                                           |
+------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)


3.3 grant

mysql> grant insert,delete,update,select on school.student to [email protected]‘192.168.0.%‘ identified by ‘123‘;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for [email protected]‘192.168.0.%‘;                                      +----------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘logen‘@‘192.168.0.%‘ IDENTIFIED BY PASSWORD ‘*23AE809DDACAF96AF0FD78ED04B6A265E05AA257‘ |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `school`.`student` TO ‘logen‘@‘192.168.0.%‘                            |
+----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)


[[email protected] ~]# mysql -h192.168.0.88 -ulogen -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.55-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| school             |
+--------------------+
2 rows in set (0.00 sec)

mysql> use school;
Database changed
mysql> 
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)

mysql> 
mysql> select * from student;
+----+--------+-----+-----+
| id | name   | sex | age |
+----+--------+-----+-----+
|  1 | 小东   | 男  |   0 |
|  3 | 小北   | 女  |  12 |
+----+--------+-----+-----+
2 rows in set (0.00 sec)


3.4 revoke

mysql> revoke all on school.student from [email protected]‘192.168.0.%‘;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for [email protected]‘192.168.0.%‘;                  
+----------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘logen‘@‘192.168.0.%‘ IDENTIFIED BY PASSWORD ‘*23AE809DDACAF96AF0FD78ED04B6A265E05AA257‘ |
+----------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

[[email protected] ~]# mysql -h192.168.0.88 -ulogen -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.55-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)





本文出自 “从没想过放弃!” 博客,请务必保留此出处http://yuyicong.blog.51cto.com/11274530/1918715

以上是关于MySQL-5.5之基础操作练习的主要内容,如果未能解决你的问题,请参考以下文章

mysql 5.5之参数详解

Mysql 5.5 /phpmyadmin 简单查询之谜

python 基础复习 08 之文件操作及练习

MySQL-5.5之二进制包安装

MySQL-5.5之主从复制 + 半同步

Python编程之基础知识练习_009