数据库的基本操作不难,但是一边学一边忘.
抽时间再刷刷题目吧.
下面是数据库的相关笔记,一个博客放不下,分开了.
笔记可能在排版上有点不美观,想要文档私聊.
MySQL
-
SQL, DB, DBMS分别是什么?他们之间的关系?
DB:DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)DBMS:DataBase Management System(数据库管理系统,常见的有:
Mysql, Oracle, DB2, SQLServer…)SQL:结构化查询语言,是一门标准通用的语言.标准的sql适合于所有的数据库
产品.SQL属于高级语言.
SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行sql.(Sql语句
的编译由DBMS完成.)DBMS负责执行Sql语句,通过执行sql语句来操作DB当中的数据.
-
什么是表?
表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可
读性强.一个表包括行和列:
行:被称为数据/记录(data)
列:被称为字段(column)每一个字段应该包括哪些属性?
字段名,数据类型,相关的约束 -
学习MySql主要还是学习通用Sql语句,那么SQL语句包括增删改查,SQL语句怎么
分类?
DQL(data query language,
数据查询语言):查询语句,凡是select语句都是DQL.DML(data manipulation language, 数据操作语言):insert, delete,
update, 对标当中的数据进行增删改.DDL(data defination language, 数据定义语言):create, drop, alter,
对标的结构的增删改.TCL(transaction control language,
事物控制语言):commit提交事务,rollback回滚事务.DCL(data control language, 数据控制语言):grant授权,
revoke撤销权限等. -
导入数据(后期练习的时候使用这个演示的数据)
第一步: 登录mysql数据库管理系统
dos命令窗口:
mysql -uroot -p1234
第二步: 查看有哪些数据库
show databases; (这个不是SQL语句,属于Mysql的命令.)
第三步: 创建属于我们自己的数据库
create database bjpowernode; (这个不是SQL语句,属于Mysql的命令.)
第四步: 使用bjpowernode数据库
use bjpowernode; (这个不是SQL语句,属于Mysql的命令.)
第五步: 产看当前使用的数据库中有哪些表?
show tables; (这个不是SQL语句,属于Mysql的命令.)
第六步: 初始化数据(好像是导入外部数据)
source D:\SQLsource\bjpowernode
注意:数据初始化完成后有3个表 -
bjpowernode.sql, 这个文件以sql结尾,这样的文件被称为"sql脚本", 什么是sql脚本呢?
当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句.我们称这样的文件为sql
脚本.
注意:直接使用source命令可以执行sql脚本.
sql脚本中的数据量太大的时候,无法打开,请使用source命令完成初始化. -
删除数据库:drop database bjpowernode;
-
查看表结构
±----------------------+
| Tables_in_bjpowernode |
±----------------------+
| dept | (部门表)
| emp | (员工表)
| salgrade | (工资等级表)
±----------------------+输入命令:
desc dept; (查看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 | | (部门位置)
±-------±------------±-----±----±--------±------+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 | | (部门编号)
±---------±------------±-----±----±--------±------+mysql> desc salgrade;
±------±-----±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±-----±-----±----±--------±------+
| GRADE | int | YES | | NULL | | (等级)
| LOSAL | int | YES | | NULL | | (最低工资)
| HISAL | int | YES | | NULL | | (最高工资)
±------±-----±-----±----±--------±------+
8.表格中的数据
mysql> select * from dept;
±-------±-----------±---------+
| DEPTNO | DNAME | LOC |
±-------±-----------±---------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
±-------±-----------±---------+mysql> select * from emp;
±------±-------±----------±-----±-----------±--------±--------±-------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
±------±-------±----------±-----±-----------±--------±--------±-------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 |
| 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
| 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
±------±-------±----------±-----±-----------±--------±--------±-------+mysql> select * from salgrade;
±------±------±------+
| GRADE | LOSAL | HISAL |
±------±------±------+
| 1 | 700 | 1200 |
| 2 | 1201 | 1400 |
| 3 | 1401 | 2000 |
| 4 | 2001 | 3000 |
| 5 | 3001 | 9999 |
±------±------±------+ -
常用命令? (这些应该都是mysql的命令,不是SQL语句)
查看数据库:
mysql> select database();
±------------+
| database() |
±------------+
| bjpowernode |
±------------+查看版本号:
mysql> select version();
±----------+
| version() |
±----------+
| 8.0.22 |
±----------+终止一条语句
输入/c,然后回车
mysql> slec
-> fad
->
-> afsd
-> \c退出mysql
mysql> exit; -
查看创建表的语句:(查看创建这个表的过程的Sql语句)
mysql> show create table emp;
±------±-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
±------±-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| emp | CREATE TABLEemp
(
EMPNO
int NOT NULL,
ENAME
varchar(10) DEFAULT NULL,
JOB
varchar(9) DEFAULT NULL,
MGR
int DEFAULT NULL,
HIREDATE
date DEFAULT NULL,
SAL
double(7,2) DEFAULT NULL,
COMM
double(7,2) DEFAULT NULL,
DEPTNO
int DEFAULT NULL,
PRIMARY KEY (EMPNO
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
±------±-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+