一些数据库基础操作

一些数据库基础操作

创建数据库(数据库名:CDTEST)

create DATABASE CDTEST;

删除数据库

drop database CDTEST;

选择数据库

use CDTEST;

创建数据表
 CREATE TABLE USER(
   macAddr  CHAR(50)  NOT NULL  PRIMARY KEY ,
   firstTime  CHAR(50) NOT NULL ,
   updateTime CHAR(50) NOT NULL,
   ipAddr	 CHAR(50) NOT NULL ,
   openedNum  CHAR(50)  NOT NULL,
   currentBoard  CHAR(50) NOT NULL,
   version  CHAR(50) NOT NULL
);

MySQL命令终止符为分号 ; 。

显示数据表

show tables;

删除数据表

DROP TABLE runoob_tbl;

插入数据

INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。

  1. INSERT…VALUES
INSERT INTO USER
	(macAddr, firstTime, updateTime, ipAddr, openedNum, currentBoard, version)
 VALUES 
	(值1,值2,...值n),
	....
	(值1,值2,...值n);
  • 使用 INSERT…VALUES 语句可以向表中插入一行数据,也可以插入多行数据;
  • 若向表中的所有列插入数据,则全部的列名均可以省略,直接采用 INSERT<表名>VALUES(…) 即可。
  • VALUES包含要插入的数据清单。数据清单中数据的顺序要和列的顺序相对应。
  1. INSERT…SET
INSERT INTO USER 
	SET	macAddr   = "04d49bea",
		firstTime   =  "2021-05-21 15:52:51",
        …
  • 使用 INSERT…SET 每次只能插入一条数据。
  • 使用 INSERT…SET 语句可以指定插入行中每列的值,也可以指定部分列的值;
  • 采用 INSERT…SET 语句可以向表中插入部分列的值,这种方式更为灵活;
查询数据
SELECT *
FROM USER 
WHERE macAddr='837jckb90';
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • 可以使用 WHERE 语句来包含任何条件,可以使用 AND 或者 OR 指定一个或多个条件。
  • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
  • 可以使用 LIMIT 属性来设定返回的记录数。
更新 (UPDATE)

以下实例将更新USER表中 macAddr为 ‘837jckb90’ 的字段值:

UPDATE USER
SET macAddr='234abe4m' 
WHERE macAddr='837jckb90' ;
  • 可以同时更新一个或多个字段。
  • 可以在 WHERE 子句中指定任何条件。
删除 (DELETE)

以下实例将删除 USER 表中 macAddr为 ‘234abe4m’ 的记录:

DELETE FROM USER 
WHERE macAddr='234abe4m' ;
  • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
排序 (ORDER BY)

如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

SELECT * 
FROM USER 
ORDER BY firstTime  ASC;
  • 可以设定多个字段来排序。
  • 可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
  • 可以添加 WHERE…LIKE 子句来设置条件。
分组 (GROUP BY )
  • GROUP BY 语句根据一个或多个列对结果集进行分组。
  • 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

有一个学生选课表,表结构如下:

Table: Subject_Selection

Subject   Semester   Attendee
---------------------------------
ITB001    1          John
ITB001    1          Bob
ITB001    1          Mickey
ITB001    2          Jenny
ITB001    2          James
MKB114    1          John
MKB114    1          Erica

统计每门课程有多少个学生报名:

SELECT Subject, Count(*)
FROM Subject_Selection
GROUP BY Subject

结果如下:

Subject    Count
----------------
ITB001     5
MKB114     2

产生这个结果的原因是:
GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里。
那么GROUP BY X, Y呢?
GROUP BY X, Y意思是将所有具有相同X字段值和Y字段值的记录放到一个分组里。

统计出每门学科每个学期有多少人选择:

SELECT Subject, Semester, Count(*)
FROM Subject_Selection
GROUP BY Subject, Semester

上面SQL的意思是,对Subject_Selection表中的数据进行分组,将具有相同Subject和Semester字段值的记录放到同一个分组里去, 然后对每个分组中的数据应用聚合函数(COUNT,SUM, AVG,etc)。
得到的结果是:

Subject    Semester   Count
------------------------------
ITB001     1          3
ITB001     2          2
MKB114     1          2

从表中的记录我们可以看出这个分组结果是正确的。有3个学生在第一学期选择了ITB001, 2个学生在第二学期选择了ITB001,还有两个学生在第一学期选择了MKB114, 没人在第二学期选择MKB114。

导出数据

使用SELECT…INTO OUTFILE语句来简单的导出数据到文本文件上。

mysql> SELECT * FROM runoob_tbl 
    -> INTO OUTFILE '/tmp/runoob.txt';
  • SELECT…INTO OUTFILE 'file_name’形式的SELECT可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此您必须拥有FILE权限,才能使用此语法。
  • 输出不能是一个已存在的文件。防止文件数据被篡改。
  • 你需要有一个登陆服务器的账号来检索文件。否则 SELECT … INTO OUTFILE 不会起任何作用。
  • 在UNIX中,该文件被创建后是可读的,权限由MySQL服务器所拥有。这意味着,虽然你就可以读取该文件,但可能无法将其删除。
导入数据

1、mysql 命令导入
mysql -u用户名 -p密码 < 要导入的数据库数据(test.sql)

2、source 命令导入
source 命令导入数据库需要先登录到数库终端:

mysql -u root -p
mysql> create database user;      # 创建数据库
mysql> use user;                  # 使用已创建的数据库 
mysql> set names utf8;           # 设置编码
mysql> source  d:/home/user/user.sql  # 导入备份数据库

参考链接:
https://www.runoob.com/mysql/mysql-tutorial.html
https://segmentfault.com/a/1190000006821331

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值