什么是MySQL
提到MySQL,首先要了解一下 什么是数据库:
什么是数据库
数据库(Database),顾名思义 :存储数据的仓库
数据库(Database)是按照数据结构来组织,存储和管理数据的仓库
常见的数据库
常见的数据库有 Oracle,DB2,SQL Server Postgre SQL MySQL
其中MySQL是一个最流行的关系型数据库管理系统之一
关系型数据库的定义:采用了关系模型来组织数据的数据库
关系模型指的就是二维表格模型,也就是表结构。如同Excel一样 有行有列
在一张表中有字段(二维表中的列),记录(二维表中的行),域(字段的取值范围)等等 构成关系模式
1:MySQL默认的端口号是()?
A: 80
B: 21
C: 22
D: 3306
答案:D.
3306是MySQL默认的端口号
端口80是Http常用端口
21端口用于FTP(File Transfer Protocol )也就是文件传输协议
22端口 是ssh 常用端口
2:下列有关数据库说法正确的是()?
A: MySQL属于关系型数据库
B: MySQL是按照数据结构来组织,存储和管理数据的仓库
C: MySQL属于网状型数据库
D: MySQL属于树状型数据库
答案:AB
数据库有关相关术语
- 数据库系统(Database System):数据库和管理软件组成的系统简称DBS
- 数据库(Database)
- 数据库管理系统(Database Management System):一种操纵和管理数据库的大型软件 简称DBMS 如: Navicat
- 数据库管理员(Database Administrator):从事管理数据库的相关人员 简称DBA
- SQL语言(Structured Query Language):结构化查询语言是一种数据库专用语言
- DDL:数据库定义语言
- DML:数据库操作语言 (数据的增删改操作)
- DQL:数据库查询语言(数据的查询操作)
- DCL:数据库控制语言 如:权限的控制
MySQL相关基础操作
MySQL的登陆和退出的及常用命令
MySQl的配置文件
在windows下 my.ini 文件 是MySQL的配置文件
MySQL的登陆
方式1:
以管理员身份运行cmd
使用net start 和 net stop 可以开启和关闭 services.msc下的任何服务
在命令行输入net start mysql57 (MySQL 5.7版本)打开mysql 服务后 输入命令 :
mysql -h localhost -P 3306 -u root -p
其中-h 代表登陆ip -P(大写) 代表端口号 -u代表用户名称 -p代表密码 点击回车 后返回password:
输入密码 即可登陆 (我的用户名称为root 密码同样设置成了root)
方式2:
mysql -u root -proot
直接输入用户名和密码登陆,这种方式同样可以登陆,其中-h 和 -P可以不写注意-p后面不能有空格要跟写密码
-
MySQL的退出
1: quit
2: exit
3: \q -
MySQL的常用基本命令
一:获取版本信息:
mysql - V 或者 mysql -- version
mysql Ver 14.14 Distrib 5.7.22, for Win64 (x86_64)
又或者 :在进入MySQL后 使用 :
select version();
+------------+
| version() |
+------------+
| 5.7.22-log |
+------------+
同样可以 获取版本的信息
二:查看所有的数据库:
在进入mysql之后 使用
show databases;
mysql -uroot -proot
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| exjrh |
| imooc |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
三:在登陆同时 打开一个数据库:
mysql -u root -proot -D db-name 或
mysql -u root -p -D db-name 返回password 再输入密码 或
mysql -u root -proot --database db-name
四:查看当前使用的数据库:
select database();
如:现在先查看我当前mysql下的数据库
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| exjrh |
| imooc |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
quit
退出后 使用命令:
mysql -u root -proot --database test
在进入的同时 使用了数据库 test 然后 我们来查看当前使用的数据库:
select database();
+------------+
| database() |
+------------+
| test |
+------------+
可以看到 我们当前使用的数据库为 test 数据库
五:获取当前用户信息
进入mysql后使用:
select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
六:获取当前时间
select now();
+---------------------+
| now() |
+---------------------+
| 2018-12-11 11:40:01 |
+---------------------+
MySQL登陆信息:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.7.22-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, 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.
其中:
-
Commands end with ; or \g.
一个默认的命令行 是由 ;或 \g 来结束的 -
Type 'help;' or '\h' for help.
可以使用 help 或 \h 或 ? 加上相关的关键字 来查看手册
如:查询 like 关键字
help like;
mysql> help like;
Name: 'LIKE'
Description:
Syntax:
expr LIKE pat [ESCAPE 'escape_char']
Pattern matching using an SQL pattern. Returns 1 (TRUE) or 0 (FALSE).
If either expr or pat is NULL, the result is NULL.
The pattern need not be a literal string. For example, it can be
specified as a string expression or table column.
URL: http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html
Examples:
mysql> SELECT 'David!' LIKE 'David_';
-> 1
mysql> SELECT 'David!' LIKE '%D%v%';
-> 1
- Type '\c' to clear the current input statement.
\c 可以取消当前命令的执行
如:
mysql> show databases \c
mysql>
在语句 show databases 后 加上 \c 取消了语句的执行 (注意 不能加 ‘ ;’ ) 直接开启新的命令行
数据库相关操作
-
注释
SQL语句的注释:
可以用 # 或者 -- 来书写注释 -
创建数据库
创建数据库使用操作:
CREATE {DATABASE|SCHEMA} [ IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET[=] charset;
其中{}内容为必写项,[] 内容为选写项
首先基本的创建方式为:
create database db_name; 或
create schema db_name;
if not exists 可选写
如果 已有数据库test 再使用命令 :
create schema test;
则会报错,可以加入 语句 if not exists 来防止重复创建带来的报错信息
create database if not exists test;
mysql> create schema if not exists test;
Query OK, 1 row affected, 1 warning (0.01 sec)
可以看到 Query Ok , 但是出现了一个 warning
使用语句 :
show warings;
可以查看上一步操作产生的警告信息;
mysql> show warnings;
+-------+------+-----------------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------------+
| Note | 1007 | Can't create database 'test'; database exists |
+-------+------+-----------------------------------------------+
而对于 [default] character set [=] charset
则是创建数据库的时候对其指定编码格式
如:
create schema if not exists test02 default character set='utf8'; 或
create database test03 character set 'gbk';
除了上述内容以外,还有应该注意的规范问题:
db_name 应为有意义的名称 不可使用MySQL中的关键字来作为数据库名称
如果名称为MySQL中的关键字 应加上 `` (反引号)
如:
mysql> create database `database`;
Query OK, 1 row affected (0.01 sec)
使用了关键字 database 作为创建的数据库名称 使用反引号 创建成功,否则将创建失败。不到万不得已 最好不要使用关键字 作为数据库,数据表,字段名等,当然上面创建的数据库的名称为database这一举动也是不可取的。
- 查看服务器下的数据库及详细信息
查看当前服务器下所有的数据库
show databases; 或
show schemas;
+--------------------+
| Database |
+--------------------+
| information_schema |
| database |
| exjrh |
| imooc |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
查看指定的数据库的详细信息
主要用于查看编码方式
show create database db_name;
例如:
首先创建数据库:
create schema if not exists test02 default character set= 'utf8'; 指定编码 为 utf8
查看test02数据库
show create database test02;
mysql> create schema if not exists test02 default character set='utf8';
Query OK, 1 row affected (0.01 sec)
mysql> show create database test02;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| test02 | CREATE DATABASE `test02` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.01 sec)
可以看到 编码方式为 utf8 其实创建的默认编码格式就是 utf8
- 修改数据库
修改数据库的编码方式
ALTER DATABASE db_name DEFAULT CHARACET SET = charset;
test02数据库编码方式为 utf8,将其修改为 gbk 编码格式
alter database test02 default character set='gbk';
再来查看 test02数据库的详细信息;
show create database test02;
mysql> alter database test02 default character set='gbk';
Query OK, 1 row affected (0.00 sec)
mysql> show create database test02;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| test02 | CREATE DATABASE `test02` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+
可以看到 test02 数据库的编码格式 被修改成了 gbk
- 打开指定的数据库
use db_name;
如:
use test02;
mysql> use test02;
Database changed
通过 use 可以进行 指定的数据库 并操作
- 得到当前正在使用的数据库
select database()|schema();
如:首先使用 数据库 test;
use test;
然后获取(得到)当前正在使用的是哪一个数据库
select database();
mysql> use test;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| test |
+------------+
可以看到 返回了 我正在使用的数据库 test;
- 删除指定的数据库
DROP DATABASE [IF EXISTS] db_name;
如:删除test02数据库
drop database test02;
再使用 :
show databases; 查看
mysql> drop database test02;
Query OK, 0 rows affected (0.02 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| database |
| exjrh |
| imooc |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
可以看到 test02 数据库已经被删除了
再次删除test02 则会报错
同理可以使用 if exists 语句 消除产生的错误
drop database if exists test02;
网友评论