MySQL 数据库学习笔记(一)——MySQL基础知识及常用命令
基础概念
DB、DBMS、SQL
DB
:DataBase,数据库DBMS
:数据库管理系统,常见的有:
– Oracle
– MySQL
– DB2
– Sybase
– MS SqlServerSQL
:结构化查询语言
DBMS
通过执行SQL
语句,来操作DataBase
中的数据
表(table)
表(table):是数据库的的基本组成单元,所有的数据都以表格的形式组织
一个表包括行和列:
- 行:数据 / 记录(
data
)
– 包含字段名、数据类型、相关约束 - 列:字段(
column
)
学号(int) 姓名(varchar) 年龄(int)
--------------------------------------
210001 张三 19
210002 李四 18
SQL语句分类
- DQL(数据查询语言):查询语句,select
- DML(数据操作语言):对表中的数据进行增、删、改
- DDL(数据定义语言):对表本身结构进行增、删、改
- TCL(事务控制语言):commit提交事务,rollback回滚事务
- DCL(数据控制语言):grant授权,revoke撤销权限
MySQL命令(DOS窗口)
登录
// 显式登录
mysql -uroot -p123456
// 隐式登录,-p后换行输入密码
mysql -uroot -p
******
查看数据库
// 语句
show databases;
// 演示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.11 sec)
创建数据库
// 语句
create database plumpdudu;
// 演示
mysql> create database plumpdudu;
Query OK, 1 row affected (0.23 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| plumpdudu |
| sys |
+--------------------+
5 rows in set (0.00 sec)
使用自己创建的数据库
// 语句
use plumpdudu;
// 演示
mysql> use plumpdudu;
Database changed
查看当前使用数据库中的表
// 语句
show tables;
// 演示
mysql> show tables;
Empty set (0.35 sec)
查看其他数据库中的表
// 语句
show tables from mysql;
// 演示
mysql> show tables from mysql;
+------------------------------------------------------+
| Tables_in_mysql |
+------------------------------------------------------+
| columns_priv |
| component |
| db |
// 省略...
+------------------------------------------------------+
35 rows in set (0.09 sec)
查询当前使用的数据库
// 语句
select database();
// 演示
mysql> use plumpdudu;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| plumpdudu |
+------------+
1 row in set (0.00 sec)
导入已有数据
// 语句,此句没有分号
source 本地路径\plumpdudu.sql
// 演示,路径懒得写可以将文件直接拖进来
mysql> source 本地路径\plumpdudu.sql
// 很尴尬,导不进去
mysql: Character set 'SMySQLsqlDataBaseplumpdudu.sql' is not a compiled character set and is not specified in the 'C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\Index.xml' file
Charset is not found
折腾半天才知道,原来必须要先
use plumpdudu
使用这个数据库,然后再导入才能成功,我是直接在databases
里导入的。嗯,我是伞兵。
// 重新演示
mysql> source E:\MySQL\sqlDataBase\plumpdudu.sql
Query OK, 0 rows affected, 1 warning (0.10 sec)
Query OK, 0 rows affected, 1 warning (0.02 sec)
Query OK, 0 rows affected, 1 warning (0.02 sec)
Query OK, 0 rows affected, 1 warning (0.76 sec)
Query OK, 0 rows affected, 5 warnings (0.48 sec)
// 省略......
mysql> show tables;
+---------------------+
| Tables_in_plumpdudu |
+---------------------+
| dept | // 部门
| emp | // 员工
| salgrade | // 工资等级
+---------------------+
3 rows in set (0.00 sec)
查看表结构
// 语句
desc dept;
// 部门表
mysql> desc dept;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| DEPTNO | int | NO | PRI | NULL | |
| DNAME | varchar(14) | YES | | NULL | |
| LOC | varchar(13) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.15 sec)
// 员工表
mysql> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| EMPNO | int | NO | PRI | NULL | |
| ENAME | varchar(10) | YES | | NULL | |
| JOB | varchar(9) | YES | | NULL | |
| MGR | int | YES | | NULL | |
| HIREDATE | date | YES | | NULL | |
| SAL | double(7,2) | YES | | NULL | |
| COMM | double(7,2) | YES | | NULL | |
| DEPTNO | int | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.00 sec)
// 工资等级表
mysql> desc salgrade;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| GRADE | int | YES | | NULL | |
| LOSAL | int | YES | | NULL | |
| HISAL | int | YES | | NULL | |
+-------+------+------+-----+---------+-------+
3 rows in set (0.00 sec)
查看表的创建语句
// 语句
show create table dept;
// 演示
mysql> show create table dept;
+-------+---------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------+
| dept | CREATE TABLE `dept` (
`DEPTNO` int NOT NULL,
`DNAME` varchar(14) DEFAULT NULL,
`LOC` varchar(13) DEFAULT NULL,
PRIMARY KEY (`DEPTNO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 |
+-------+---------------------------------------------------+
1 row in set (0.15 sec)
冷静删库
// 语句
drop database plumpdudu;
// 演示
mysql> drop database plumpdudu;
Query OK, 0 rows affected (0.28 sec)
mysql> show tables;
ERROR 1046 (3D000): No database selected
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
优雅跑路
// 语句
exit
// 演示
mysql> exit
Bye