青胜软件测试 | 常用的MySQL命令与常见的数据库管理系统介绍
mhr18 2024-10-17 10:25 19 浏览 0 评论
什么是数据库?
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
什么是数据库管理系统?
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
常见的数据库管理系统
- MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
- Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
- DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.
- SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用
- SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
- SQLite : 嵌入式的小型数据库,应用在手机端。
- Java相关的数据库:MYSQL,Oracle.
这里使用MySQL数据库。MySQL中可以有多个数据库,数据库是真正存储数据的地方。
数据库与数据库管理系统的关系
一、连接MySQL
格式: mysql -h主机地址 -u用户名 -p用户密码
1.连接到本机上的MYSQL
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -u root -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的。这里密码输入即可进入MySQL:
- G:\>cd G:\mysql_log\bin --进入目录 mysqlbin
- G:\mysql_log\bin>mysql -u root -p --键入命令mysql -u root -p
- Enter password: ****** --输入密码即可
- Welcome to the MySQL monitor. Commands end with ; or \g.
2.连接到远程主机上的MYSQL
假设远程主机的IP为:110.110.110.110,用户名为root,密码为123456。则键入以下命令:mysql -h 110.110.110.110 -u root -p 123456,这里不做演示了。
二、修改密码
格式:mysql admin -u 用户名 -p 旧密码 password 新密码
1.给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令:
- mysqladmin -u root -password ab12;//注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2.再将root的密码改为20220317。
- `mysqladmin -u root -p ab12 password 20220317;
三、 创建数据库
- create database 数据库名;//如create database studentDB;
四、删除数据库
- drop database <数据库名>;//如 drop database studentDB;
五、选择数据库
- use studentDB;
六、数据类型
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(integer、smallint、decimal和numeric),以及近似数值数据类型(float、real和double precision)。
1.数值类型
2.日期和时间类型
3.字符串类型
注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
七、创建数据表
- create table IF NOT EXISTS `runoob_tbl`(
- `runoob_id` INT unsigned auto_increment,--unsigned表示无符号数,即值大于等于0
- `runoob_title` VARCHAR(100) NOT NULL,
- `runoob_author` VARCHAR(40) NOT NULL,
- `submission_date` DATE,
- PRIMARY KEY ( `runoob_id` )//完整性约束
- );
完整性约束包括:not null、auto_increment、primary key、foreign key(外码)referrences 参照表(主码)、unique、check() 等;
八、删除MySQL数据表
- drop table 表名;//如 drop table course;
九、插入数据
- insert into 表名 ( field1, field2,...fieldN )
- values
- ( value1, value2,...valueN );
十、查询数据
- select [all|distinct]<目标列1> 别名[,<目标列2> 别名.....]from <表名1/视图名1>[,<表名2/视图名2>...]|<select 语句> as 别名 [where <条件表达式>][group by <列名>][having <条件表达式>][order by <列名>[desc|asc]];//查询语句的一般格式;
- --如:select all name 姓名,sno 学号 from student where sex='男' order by class desc;
1.WHERE 子句
我们知道从 MySQL 表中使用 select语句来查询数据。如需有条件地从表中选取数据,可将 where子句添加到 select语句中,相当于做选择操作。where 子句也可以运用于 SQL 的 delete或者 update命令。
- select field1, field2,...fieldN from table_name1, table_name2...
- [where condition1 [and|or] condition2.....
- --如:select * from student where sdept='计算机系' and sex='男' and sage>=20;
- --又如 delete from student where sno='23131423';
- --再如 update student set sname='张三' where sno='23403432';
2.like子句
我们知道在 MySQL 中使用 SQL select命令来读取数据, 同时我们可以在 SELECT 语句中使用 where 子句来获取指定的记录。where子句中可以使用= > <等操作符来设定条件,当时有时候我们需要一些模糊的条件查询,例如,查找学生表中学生姓名姓刘的所有学生,这时就需要用SQL like子句中使用百分号 **%**字符来表示任意长度的字符串,_字符代表任意单个字符,通过这两个字符可以达到模糊查询的效果。
- select * from student where sname like '刘_' and sno like '2000%';
- --上述语句查询学生表中姓名为刘X开头且学号为'2000'开头的学生信息;
3.order by子句排序
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
- select field1, field2,...fieldN from table_name1, table_name2...
- order by field1 [ASC|DESC], [field2...] [ASC|DESC];
- --如:select * from student order by sage desc;//查询学生并按年龄降序排序,注意系统默认是asc排序
4.group by 子句分组
group by 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 count, sum, avg等函数。
- 例如: select class 班级,count(*) 人数 from student group by class;
5.join 和left join多表查询
我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用MySQL 的 join在两个或多个表中查询数据。你可以在select, update和 delete语句中使用Mysql 的 join 来联合多表查询。left join 与 join 有所不同。 MySQL left join 会读取左边数据表的全部数据,即便右边表无对应数据
- select s.sno,s.sname,c.cno,s.score from student s,course c where s.sno =s.cno;//join方式相当于等值连接
- select a.tutorial_id, a.tutorial_author, b.tutorial_count from tutorials_tbl a left join tcount_tbl b on a.tutorial_author = b.tutorial_author;//左连接方式,即保留左边悬浮元组
十一、更新数据
如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL update命令来操作。
- update 表名 set field1=new-value1, field2=new-value2...[where 子句];
- --例如:update student set sname='张三' where sno='23403432';
十二、删除数据
你可以使用 SQL 的 delete from 命令来删除 MySQL 数据表中的记录。
- delete FROM 表名 [where 条件子句];
- --例如;delete from student where sname='张三';
相关推荐
- 【预警通报】关于WebLogic存在远程代码执行高危漏洞的预警通报
-
近日,Oracle官方发布了2021年1月关键补丁更新公告CPU(CriticalPatchUpdate),共修复了包括CVE-2021-2109(WeblogicServer远程代码执行漏洞)...
- 医院信息系统突发应急演练记录(医院信息化应急演练)
-
信息系统突发事件应急预案演练记录演练内容信息系统突发事件应急预案演练参与人员信息科参与科室:全院各部门日期xxxx-xx-xx时间20:00至24:00地点信息科记录:xxx1、...
- 一文掌握怎么利用Shell+Python实现完美版的多数据源备份程序
-
简介:在当今数字化时代,无论是企业还是个人,数据的安全性和业务的连续性都是至关重要的。数据一旦丢失,可能会造成无法估量的损失。因此,如何有效地对分布在不同位置的数据进行备份,尤其是异地备份,成为了一个...
- docker搭建系统环境(docker搭建centos)
-
Docker安装(CentOS7)1.卸载旧版Docker#检查已安装版本yumlistinstalled|grepdocker#卸载旧版本yumremove-ydocker.x...
- 基础篇:数据库 SQL 入门教程(sql数据库入门书籍推荐)
-
SQL介绍什么是SQLSQL指结构化查询语言,是用于访问和处理数据库的标准的计算机语言。它使我们有能力访问数据库,可与多种数据库程序协同工作,如MSAccess、DB2、Informix、M...
- Java21杀手级新特性!3行代码性能翻倍
-
导语某券商系统用这招,交易延迟从12ms降到0.8ms!本文揭秘Oracle官方未公开的Record模式匹配+虚拟线程深度优化+向量API神操作,代码量直降70%!一、Record模式匹配(代码量↓8...
- 一文读懂JDK21的虚拟线程(java虚拟线程)
-
概述JDK21已于2023年9月19日发布,作为Oracle标准Java实现的一个LTS版本发布,发布了15想新特性,其中虚拟线程呼声较高。虚拟线程是JDK21中引入的一项重要特性,它是一种轻量级的...
- 效率!MacOS下超级好用的Linux虚拟工具:Lima
-
对于MacOS用户来说,搭建Linux虚拟环境一直是件让人头疼的事。无论是VirtualBox还是商业的VMware,都显得过于笨重且配置复杂。今天,我们要介绍一个轻巧方便的纯命令行Linux虚拟工具...
- 所谓SaaS(所谓三维目标一般都应包括)
-
2010年前后,一个科技媒体的主编写一些关于云计算的概念性问题,就可以作为头版头条了。那时候的云计算,更多的还停留在一些概念性的问题上。而基于云计算而生的SaaS更是“养在深闺人未识”,一度成为被IT...
- ORA-00600 「25027」 「x」报错(报错0xc0000001)
-
问题现象:在用到LOB大对象的业务中,进行数据的插入,失败了,在报警文件中报错:ORA-00600:内部错误代码,参数:[25027],[10],[0],[],[],[],[],[...
- 安卓7源码编译(安卓源码编译环境lunch失败,uname命令找不到)
-
前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...
- 编译安卓源码(编译安卓源码 电脑配置)
-
前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...
- 360 Vulcan Team首战告捷 以17.5万美金强势领跑2019“天府杯“
-
2019年11月16日,由360集团、百度、腾讯、阿里巴巴、清华大学与中科院等多家企业和研究机构在成都联合主办了2019“天府杯”国际网络安全大赛暨2019天府国际网络安全高峰论坛。而开幕当日最激荡人...
- Syslog 日志分析与异常检测技巧(syslog发送日志配置)
-
系统日志包含有助于分析网络设备整体运行状况的重要信息。然而,理解并从中提取有效数据往往颇具挑战。本文将详解从基础命令行工具到专业日志管理软件的全流程分析技巧,助你高效挖掘Syslog日志价值。Gr...
- 从Oracle演进看数据库技术的发展(从oracle演进看数据库技术的发展的过程)
-
数据库技术发展本质上是应用需求驱动与基础架构演进的双向奔赴,如何分析其技术发展的脉络和方向?考虑到oracle数据库仍然是这个领域的王者,以其为例,管中窥豹,对其从Oracle8i到23ai版本的核...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle基目录 (50)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (53)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)