mysql客户端工具
一、登录数据库
在此就不多叙述了,mysql安装教程
二、输入查询
这是一个简单的命令,要求服务器告诉它的版本号和当前日期。在mysql>提示输入如下命令并按回车键:
查询mysql版本号,当前日期 select version(),current_date;
mysql> select version(),current_date;
+------------+--------------+
| version() | current_date |
+------------+--------------+
| 5.7.17-log | 2017-06-07 |
+------------+--------------+
1 row in set (0.00 sec)
不必全在一个行内给出一个命令,较长命令可以输入到多个行中。mysql通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束。(换句话说,mysql接受自由格式的输入:它收集输入行但直到看见分号才执行。)
这里是一个简单的多行语句的例子:mysql连接方式
* mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+---------------+--------------+
| USER() | CURRENT_DATE |
+---------------+--------------+
| jon@localhost | 2005-10-11 |
+---------------+--------------+
如果你决定不想执行正在输入过程中的一个命令,输入/c取消它:
* mysql> SELECT
-> USER()
-> /c
下表显示出可以看见的各个提示符并简述它们所表示的mysql的状态:
提示符 含义
mysql> 准备好接受新命令。
-> 等待多行命令的下一行。
'> 等待下一行,等待以单引号(“'”)开始的字符串的结束。
"> 等待下一行,等待以双引号(“"”)开始的字符串的结束。
> 等待下一行,等待以反斜点(‘
’)开始的识别符的结束。
/> 等待下一行,等待以/开始的注释的结束。
查询用户 select user();
* mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
三、创建并使用数据库
使用SHOW语句找出服务器上当前存在什么数据库:
显示数据库 show databases;
* mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| test |
| world |
+--------------------+
7 rows in set (0.00 sec)
如果test数据库存在,尝试访问它:
使用数据库 use test
* mysql> use test
Database changed
创建数据库并使用 create database student; use student
* mysql> create database student;
Query OK, 1 row affected (0.01 sec)
创建数据库并不表示选定并使用它,你必须明确地操作。为了使student成为当前的数据库,使用这个命令:
* mysql> use student
Database changed
数据库只需要创建一次,但是必须在每次启动mysql会话时在使用前先选择它。你可以根据上面的例子执行一个USE语句来实现。还可以在调用mysql时,通过命令行选择数据库,只需要在提供连接参数之后指定数据库名称。例如:
* shell> mysql -h host -u user -p menagerie
Enter password: ********
四、创建表
创建数据库是很容易的部分,但是在这时它是空的,正如SHOW TABLES将告诉你的:
显示表 show tables;
* mysql> show tables;
Empty set (0.00 sec)
***
创建表
使用一个CREATE TABLE语句指定你的数据库表的布局:
* mysql> create table student(
-> name varchar(20),
-> age int,
-> sex char(1),
-> birth date,
-> death date);
Query OK, 0 rows affected (0.07 sec)
显示表结构 describe student;
为了验证你的表是按你期望的方式创建,使用一个DESCRIBE语句:
* mysql> describe student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
插入一条数据
mysql> insert into student
-> values('hsy',18,'f','1999-09-09',null);
Query OK, 1 row affected (0.01 sec)
五、从表检索信息
查询所有数据
mysql> select * from student;
+------+------+------+------------+-------+
| name | age | sex | birth | death |
+------+------+------+------------+-------+
| hsy | 18 | f | 1999-09-09 | NULL |
+------+------+------+------------+-------+
1 row in set (0.00 sec)
选择特殊行
mysql> select * from student where name='hsy';
+------+------+------+------------+-------+
| name | age | sex | birth | death |
+------+------+------+------------+-------+
| hsy | 18 | f | 1999-09-09 | NULL |
+------+------+------+------------+-------+
1 row in set (0.00 sec)
mysql> select * from student where birth>'1999-1-1'and sex='f';
+------+------+------+------------+-------+
| name | age | sex | birth | death |
+------+------+------+------------+-------+
| hsy | 18 | f | 1999-09-09 | NULL |
+------+------+------+------------+-------+
1 row in set (0.00 sec)
选择特殊列
mysql> select name from student;
+------+
| name |
+------+
| hsy |
| hsy |
| hsy |
+------+
3 rows in set (0.00 sec)
请注意该查询只是简单地检索每个记录的owner列,并且他们中的一些出现多次。为了使输出减到最少,增加关键字DISTINCT检索出每个唯一的输出记录
mysql> select distinct name from student;
+------+
| name |
+------+
| hsy |
+------+
1 row in set (0.00 sec)
分类行
mysql> select * from student order by birth;
+------+------+------+------------+------------+
| name | age | sex | birth | death |
+------+------+------+------------+------------+
| hsy | 18 | m | 1989-09-09 | NULL |
| hh | 19 | f | 1994-03-04 | 1992-02-01 |
| hh | 19 | f | 1994-03-04 | 1992-02-01 |
| hh | 29 | f | 1994-03-04 | 1992-02-01 |
| hh | 29 | f | 1994-03-04 | 1992-02-01 |
| hh | 29 | f | 1997-03-04 | 1992-02-01 |
| hh | 29 | f | 1997-03-04 | 1992-02-01 |
| hrr | 29 | f | 1997-03-04 | 1992-02-01 |
| rrrr | 29 | f | 1997-03-04 | 1992-02-01 |
| rrrr | 29 | 男 | 1997-03-04 | 1992-02-01 |
| rrrr | 29 | 女 | 1997-03-04 | 1992