当前位置:网站首页>MySQL --- 数据库的基本操作
MySQL --- 数据库的基本操作
2022-07-02 15:58:00 【小雪菜本菜】
准备测试数据
要学习SQL查询语句,首先必须解决一个问题,数据问题。
这里提供了一个test.sql文件。
登录MySQL,输入source xxx/test.sql
导入sql文件,sql文件实际上是一个脚本文件,里面有多行SQL语句,通过source命令可以批量执行。
执行完毕之后,使用show databases;
查看所有数据库,发现多了一个名为test的数据库。
使用show tables;
查看test数据库下所有的数据表,发现有四个表。
使用另一种方式导入数据库
-- 创建数据表
CREATE TABLE IF NOT EXISTS dept (
deptno SMALLINT PRIMARY KEY,
dname VARCHAR(14) ,
loc VARCHAR(13) ) ;
-- 插入测试数据 —— dept
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
test 数据库表
以后讲解SQL语句的时候,主要使用的是test数据库下的四张表作为案例,所以首先就必须对这些表的作用以及列的数据类型做一个基本的了解。
部门表:dept
相关英语翻译:
accounting 会计 new york 纽约
research 研究员 dallas 达拉斯
sales 销售 chicago 芝加哥
operarions 运营 boston 波士顿
雇员表:emp
DECLMAL(7,2) 总共有 7 位,小数点后面有两位
SMALLINT,两字节,65535
相关英语翻译:
clerk 店员
salesman 售货员
manager 经理
analyst 化验员
president 董事长
工资等级表:salgrade
工资补贴表(工资条):bonus
工资补贴表没有数据
SQL语句规范
使用SQL语句请遵循以下规范:
SQL语句不区分大小写。但字符串常量区分大小写,建议命令大写,表名、库名小写;
SQL语句可单行或多行书写,每一个语句结束之后要以分号结尾;
用空格和缩进来提高语句的可读性。
注释:有三种风格的注释
单行注释可以用“#”
单行注释第二种写法用“-- ”,“--" 与注释之间是有空格的。
多行注释可以用/* */
数据库的基本操作
在MySQL之中有许多的数据库,可以使用以下命令查看所有数据库:
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema | #主要存储了系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息和分区信息等。
| mysql | #MySQL的核心数据库,主要负责存储数据库用户、用户访问权限等 MySQL 自己需要使用的控制和管理信息。
| performance_schema | #主要用于收集数据库服务器性能参数。
| sys | #sys 数据库主要提供了一些视图,数据都来自于 performation_schema,主要是让开发者和使用者更方便地查看性能问题。
+--------------------+
这些数据库彼此之间是可以进行相互切换的,切换的基本语法如下:
USE <dbname>;
要想知道当前使用的是哪个数据库,那么可以使用select database();
命令来查看:
SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
在一个数据库下一定会存在多张数据表,那么这个时候也可以直接利用以下命令查看所有数据表:
SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| bonus |
| dept |
| emp |
| salgrade |
+----------------+
4 rows in set (0.02 sec)
查看具体某一张表的信息
SELECT * FROM emp;
+-------+--------+-----------+------+------------+------+------+--------+
| empno | ename | job | mgr | hiredate | sal | comm | deptno |
+-------+--------+-----------+------+------------+------+------+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600 | 300 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250 | 500 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250 | 1400 | 30 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450 | NULL | 10 |
| 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000 | NULL | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000 | NULL | 10 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500 | 0 | 30 |
| 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100 | NULL | 20 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950 | NULL | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300 | NULL | 10 |
+-------+--------+-----------+------+------------+------+------+--------+
14 rows in set (0.01 sec)
而如果想要知道某些数据表的表结构 / 字段类型,那么可以使用DESC命令:
DESC emp;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| empno | smallint | NO | PRI | NULL | |
| ename | varchar(10) | YES | | NULL | |
| job | varchar(9) | YES | | NULL | |
| mgr | smallint | YES | | NULL | |
| hiredate | date | YES | | NULL | |
| sal | smallint | YES | | NULL | |
| comm | smallint | YES | | NULL | |
| deptno | smallint | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.01 sec)
如果想要自己创建数据库,则需要使用以下命令:
CREATE DATABASE <dbname>;
如果数据库已经存在则会报错Can't create database '<dbname>'; database exists
,我们可以先判断数据库是否存在,不存在就创建,存在则忽略(只有警告没有报错)。
CREATE DATABASE IF NOT EXISTS <dbname>;
如果想要删除数据库,则可以使用以下命令:
DROP DATABASE <dbname>;
如果数据库不存在则会报错Can't drop database 'ss'; database doesn't exist
,在删除数据库时可以判断是否存在。
DROP DATABASE IF EXISTS <dbname>; #如果数据库存在则删除
使用 DROP DATABASE 命令时要非常谨慎,在执行该命令后,MySQL 不会给出任何提示确认信息。DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。
边栏推荐
- Making tutorial of chicken feet with pickled peppers
- 科班出身,面试小公司都进不去
- 开发一个禁止删除namespace的控制器
- USB interface powered Bluetooth color light strip controller
- 应广单片机PMS150/PMC150/PMS150C消费类单片机
- 我的创作纪念日
- 松翰SN8P2511 SOP8单片机 可代烧录 提供单片机方案开发 单片机解密
- JDBC
- Atcoder beginer contest 237 VP supplement
- Platform management background and merchant menu resource management: merchant role management design
猜你喜欢
【Zuul】com. netflix. zuul. exception. ZuulException: Hystrix Readed time out
PFC232-SOP8/14/16应广一级可带烧录程序编带
应广单片机开发 工规 PMC131 带AD芯片检测电池电压单片机SOP8/14
Alibaba cloud sub account - Permission Policy - full control permission granted to an account and an OSS bucket
每日一题——小乐乐改数字
Chrome browser quick access stackoverflow
[非线性控制理论]7_High gain and High Frequency
Mb10m-asemi rectifier bridge mb10m
wps插入图片后使图片完整显示
MB10M-ASEMI整流桥MB10M
随机推荐
应广单片机PMS150/PMC150/PMS150C消费类单片机
【網絡是怎樣連接的】第六章 請求到達服務器以及響應給客戶端(完結)
Tips for self defined packaging of Yingguang SCM 003 burner
No such file or directory: ‘/tmp/tmpxxx/tmpxxx.py‘
Taiwan Feiling fm8pb513b MCU provides MCU program development product design
【目标跟踪】|数据集汇总
蓝牙技术|物联网的可穿戴设备新工作模式,蓝牙BLE助力新工作模式
Development and application case of pms134 scheme of Yingguang single chip microcomputer with original packaging
Songhan sn8p2511 sop8 single chip microcomputer can be used for burning, providing single chip microcomputer scheme development and single chip microcomputer decryption
辉芒微IO单片机FT60F011A-RB
Atcoder beginer contest 237 VP supplement
原装应广单片机 MCU芯片PMS152 SOP8封装 单片机开发
第十五章 字符串本地化和消息字典(一)
chrome浏览器快速访问stackoverflow
[target tracking] |siamfc
easyAI笔记——深度学习
Longest non repeating subarray
Pfc232-sop8/14/16 should be wide-ranging and can be tape programmed with burning program
Laravel文档阅读笔记-Custom Authentication Login And Registration Using Laravel 8
Daily question - xiaolele changes the number