MySQL --- 数据库的基本操作

准备测试数据

要学习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语句可单行或多行书写,每一个语句结束之后要以分号结尾;

  • 用空格和缩进来提高语句的可读性。

  • 注释:有三种风格的注释

    1. 单行注释可以用“#”

    2. 单行注释第二种写法用“-- ”,“--" 与注释之间是有空格的。

    3. 多行注释可以用/* */

数据库的基本操作

在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 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiuqiuyaq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值