前提:假设我们的电脑或服务器已经正确安装了mysql服务器
一:连接和断开mysql服务器
1.1连接数据库服务器
shell> mysql -u user -p (user用户名通常为root,-u -p 两个mysql的参数名。然后按enter健会提示我们输入密码,如下) Enter password: ********
如果数据库在其它电脑上,我们必要加入IP地址如下
shell> mysql -h host -u user -p (host 即远程服务器地址 -h参数 host参数值),如果密码和用户名全部正确则进入mysql服务器,界面如下
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g. //欢迎你
Your MySQL connection id is 25338 to server version: 5.7.26-standard // 告诉你连接的ID 和数据库版本好
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. //一些提示信息 你可以尝试在mysql(提示符)输入help看看😄
mysql>
1.2与服务器断开
mysql> QUIT Bye //断开成功
备注:在Unix上,您也可以通过按Control + D断开连接。
二:输入查询(select作为调用函数的命令)
select 你可以理解为调用mysql的一个指令,该指令不仅可以查询表中的数据,同时可以调用mysql服务器定义的函数和运行一些简单的数学计算。本小结仅展示select调用函数的例子
2.1查询当前版本和日期
mysql> SELECT VERSION(), CURRENT_DATE(); //查询的结果会以表格的形式显现 +-----------+--------------+ | VERSION() | CURRENT_DATE()| // 查询的列 +-----------+--------------+ | 5.7.23 | 2019-02-06 | //查询出来的数据 +-----------+--------------+ 1 row in set (0.03 sec) //返回 执行的时间(性能)和查询出的数据和 mysql> //准备下次输入
2.2 将 mysql 用作简单的计算器
mysql> SELECT SIN(PI()/4), (4+1)*5; +--------------------+---------+ | SIN(PI()/4) | (4+1)*5 | +--------------------+---------+ | 0.7071067811865475 | 25 | +--------------------+---------+ 1 row in set (0.03 sec)
三:创建和使用数据库
3.1.1创建数据库(CREATE DATABASE 数据库名)
CREATE DATABASE mydatabase; //创建数据库mydatabase Query OK, 1 row affected (0.01 sec) //创建成功(如果库名已经存在 ERROR 1007*** 就是告诉你数据库名已经存在)
#出现以上结果则说明创建成功。虽然我们创建了一个数据库,但服务器并不能确定我们就开始使用这个数据库,如果我们想使用我们创建的这个数据库我们必须告诉它
3.1.2 使用数据库(use 数据库名)
mysql> use mydatabase; Database changed //告诉我们当前数据库已经改变了
备注:
查看服务器所有数据库: SHOW DATABASES
参看数据库创建信息:show create database 库名
show create database mydatabase; +------------+-----------------------------------------------------------------------+ | Database | Create Database | +------------+-----------------------------------------------------------------------+ | mydatabase | CREATE DATABASE `mydatabase` /*!40100 DEFAULT CHARACTER SET latin1 */ | //使用了默认的字符集和相关参数 +------------+-----------------------------------------------------------------------+ 1 row in set (0.00 sec)
参看数据库中信息(表):SHOW TABLES;
参看当前使用的数据库 : SELECT DATABASE();
3.2.1 创建表
例如我们现在需要创建一个关于宠物的表,该表包含宠物的名字,主人,种类....
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); Query OK, 0 rows affected (0.05 sec)
3.2.1 查看创建时的表述信息 DESCRIBE 表名
mysql> DESCRIBE pet; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | | species | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | death | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 6 rows in set (0.01 sec)
备注:
3.3 将数据加载到表中
创建表后,您需要填充它。该 LOAD DATA
和 INSERT
语句是这个有用的。
3.3.1 使用:LOAD DATA LOCAL INFILE '文件路径' INTO TABLE 表名 fields terminated by '列分割符' LINES TERMINATED BY '行分割符';加载数据。
如果需要从一个文件中加载数据到我们的数据库中,我们就可以使用load data语法。例如我们有个pet.txt文件,该文件的数据如下表
Whistler|Gwen|bird|\N|1997-12-09|\N
Whistler2|Gwen2|bird2|\N|1997-12-01|\N
Whistler3|Gwen3|bird3|\N|1997-12-10|\N
加载数据:load data local infile '/mysqldata/pet.txt' into table pet fields terminated by '|';
Query OK, 3 row affected (0.00 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
备注:load data 的默认列分割符是制表符,默认的行分割符是换行符,但我们可以手动指定如上案例,指定列分割符是‘|’
Windows上使用编辑器创建该文件 \r\n
作为行分割符
3.3.2 使用 INSERT INTO table_name() VALUES();添加一条数据到表中
INSERT INTO pet -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); Query OK, 1 row affected (0.01 sec)
备注:我们可以指定插入表中的列的部分数据,其它可以不插入(其它作为默认值)
例如SQL:我们仅仅指定了名字和生日,其它都会以NULL插入
INSERT INTO pet(name,birth)VALUES ('Purr','1999-03-30'); Query OK, 1 row affected (0.00 sec)
3.4 从表中查询信息SELECT
[ALL | DISTINCT | DISTINCTROW ] //可选参数 All就是查询所有。DISTINCT 不重复的项,DISTINCTROW = DISTINVCT(的同义词) select_expr [, select_expr ...] // *是查询所有列,也可以指定查询的列 [FROM table_references //需要查询的表 [WHERE where_condition] //查询条件 [GROUP BY {col_name | position} //对查询的结果进行分类 [ASC | DESC]] [HAVING where_condition] //对分类的结果再进行条件筛选 [ORDER BY {col_name | position} //对结果进行排序 [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] //分页输出
分解:
select_expr:可以使用别名,也可以是个聚合函数
例 select sex as '性别',concat(first_name,second_name) from 表名;//不解释
备注: