写在最前面:不一样的MySql的版本,相应的sql命令语句不是彻底同样的,个人数据库是版本是5.7.18.mysql
0: 数据库相关基本概念介绍sql
数据库 vs 数据库管理系统
当咱们说到数据库时,可能会讨论到MySql, Oracle, PostgreSQL. 实际上,更准确地说法是他们都是DBMS(Database Management System)。数据库的存储,检索,管理等全部的功能都是由DBMS来完成的。数据库
服务端 vs 客户端
当咱们使用数据库管理系统时,咱们同时须要服务端和客户端。下面以一个查询为例。socket
客户端:咱们想要查询数据的时候,须要在一个地方书写咱们的sql语句,这个地方就是客户端。可是这个语句的执行,并不在客户端。客户端会把这个语句发送到服务端。命令行
服务端:服务端接收到客户端发来的查询请求,执行查询,拿到结果,把结果返回给客户端。code
服务端和客户端经过socket通讯,具体是什么socket会根据不一样的状况不同,你也能够本身指定socket的类型。例如:--protocol=TCPorm
咱们以MySql为例,当咱们安装完MySql的时候,实际上安装了服务端。固然,会附赠一个服务端(MySql的命令行实用程序)。可是,有不少别的客户端供你选择,好比你能够选图形界面化的MySql客户端(MySql Workbench)。server
1: 安装MySql
能够到MySql的官网下载安装包,也能够在命令行使用homebrew安装,这里不展开。
2: 启动MySqlhomebrew
mysql.server start
在从客户端连接到服务端以前,先要启动MySql ci
3: 连接到MySql
要使用MySql,首先要连接到MySql。
连接到一个数据库服务端须要提供如下4个信息:
1: 服务端所在的主机名(host),本地为localhost 2: 端口 3: 用户名 4: 密码(若是须要密码的话)
在命令行里须要执行如下命令:
mysql -h myhost -u myname -p
由于我是在本身的电脑上安装了MySql的服务端,因此下面以连接到本地MySql为例:
mysql h localhost -u root
若是连接成功,这时候会看到mysql命令行客户端:
mysql>
我是采用homebrew安装的,安装好以后默认root用户是没有密码的,因此这里没有使用-p。可是,咱们能够本身给root这个用户名设置一个密码:
mysql> UPDATE mysql.user set authentication_string = PASSWORD('your_password') where User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES;
以上两个步骤,就成功地给root用户设置了一个密码。下次再从新使用root用户登录的时候就必须带上密码了。
4: 显示数据库
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+
使用show databases;能够显示全部的数据库,这里显示了安装MySql以后默认的2个数据库。
注意:sql语句必定要以分号来表示一个命令的结束。
5: 建立数据库
mysql> create database crashcourse;
这样咱们就成功地建立了一个名为crashcourse的数据库。如今这个数据库是空的。接下来咱们就往数据库里面建立一张表。
6: 建立表
一张表必定是从属于某个数据库的,因此,在我门建立表以前,先选定咱们即将要操做的数据库。能够经过命令:
use 数据库的名字;
其实在进行任何基于某个数据库的操做前,先选定一个数据库是很是正确和方便的事情。这里以咱们刚刚建立好的crashcourse这个数据库为例:
mysql> use crashcourse;
建立一张表的命令为:
create table 表名称(列声明);
接下来咱们以建立一张商品货物表为例:
Create table products ( product_id varchar(20) not null, product_name varchar(20) not null, product_price decimal(7, 2) not null, vendor_id varchar(20) not null, primary key(product_id) );
7: 显示表
显示一个数据库的有哪些表,使用的sql命令是:
show tables from databse_name;
若是在这以前你已经选定了一个数据库(经过use database_name命令),则只须要:
show tables;
咱们以我门刚刚建立的crashcourse数据库和products表为例:
mysql> show tables from crashcourse; +-----------------------+ | Tables_in_crashcourse | +-----------------------+ | products | +-----------------------+ 1 row in set (0.00 sec)
8: 显示列
mysql> show columns from products; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | product_id | varchar(20) | NO | PRI | NULL | | | product_name | varchar(20) | NO | | NULL | | | product_price | decimal(7,2) | NO | | NULL | | | vendor_id | varchar(20) | NO | | NULL | | +---------------+--------------+------+-----+---------+-------+ 4 rows in set (0.02 sec)
至此,咱们就建立了
一个数据库:crashcourse,
在crashcourse里面建立了一张表:products,
给products表建立了4列:product_id,product_name, product_price, vendor_id.
可是,如今我么们的表里面尚未任何的数据,在下一篇文章里,咱们来往表里面添加数据。