MySQL系列:(2)MySQL基础

1、数据库引入

1.1、引入

数据保存到【内存】:

优点:读写非常快

缺点:程序关闭导致数据丢失

数据保存到【文件】:

优点:数据可以永久保存

缺点:1)频繁地IO操作,效率不高!2)数据管理不方便。例如查询某个数据需要全部读取出来,再匹配。

数据保存到【数据库软件】:

优点:1)数据永久保存下来。2)数据管理非常方便。(例如查询非常快速和方便)

数据可以说是企业的灵魂!!

1.2、什么是数据库软件

数据库,俗称数据的仓库。方便管理数据的软件(或程序)。

1.3、市面上数据库软件

Oracle,甲骨文公司的产品。 当前最流行应用最广泛的数据库软件。和java语言兼容非常好。适合中大型,中大应用。

SQL Server: 是微软公司的产品。window平台应用非常广泛。和c#,net平台兼容非常好。

DB2: IBM公司的产品。IBM服务器--> UNIX -> DB2- > Websphere

MySQL: 开源组织的产品。甲骨文公司的产品。免费!!!和java语言兼容非常好!适合中小企业,中小应用

以上都是关系型数据库。

MongoDB:非关系型数据库。

1.4、MySQL入门

1)到mysql官网下载。

2)安装mysql软件

3)使用

验证是否成功:打开cmd  -> 输入 mysql -u root -p  回车   -> 输入密码   回车

1.5、MySQL的数据库存储结构

先【数据库】,再【表】,再有【数据】

2、数据库管理

查询所有数据库:show databases;

创建数据库:create database 数据库名 default character set utf8;

create database testdb default character set utf8;

查看数据库的默认字符集: show create database 数据库名;

create database testdb default character set utf8;

修改数据库: alter database 数据库名 default character set 字符编码;

alter database testdb default character set gbk;

删除数据库:drop database 数据库名;

drop database testdb;

使用数据库:use 数据库名;

use testdb;

3、表管理

在进行表管理之前,一定要使用某一个数据库:use 数据库名;

查看所有表:show tables;

创建表:

CREATE TABLE T_Students(

Id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(20) NOT NULL,

gender BIT NOT NULL

)

查看表结构:desc 表名;

查看创建表的SQL语句:show create table 表名;

删除表:drop table 表名;

修改表:

添加字段:alter table 表名 add column 字段名 字段类型;

删除字段:alter table 表名 drop column 字段名;

修改字段类型:alter table 表名 modify column 字段名 字段类型;

修改字段名称:alter table 表名 change column 旧字段名 新字段名 字段类型;

修改表名称:alter table 表名 rename to 新表名;

4、增删改数据

增加数据

插入所有字段。一定依次按顺序插入。注意不能少或多字段值

INSERT INTO student VALUES(1,‘张三‘,‘男‘,20);

插入部分字段

INSERT INTO student(id,NAME) VALUES(2,‘李四‘);

修改数据

修改所有数据(建议少用)

UPDATE student SET gender=‘女‘;

带条件的修改(推荐使用)

UPDATE student SET gender=‘男‘ WHERE id=1;

修改多个字段,注意: SET 字段名=值,字段名=值,....

UPDATE student SET gender=‘男‘,age=30 WHERE id=2;

删除数据

删除所有数据(建议少用)

DELETE FROM student;

带条件的删除(推荐使用)

DELETE FROM student WHERE id=2;

另一种方式

TRUNCATE TABLE student;

delete from和truncate table的对比

delete from: 可以全表删除,1)可以带条件删除;2)只能删除表的数据,不能删除表的约束;3)使用delete from删除的数据可以回滚(事务)

truncate table: 可以全表删除   1)不能带条件删除 2)即可以删除表的数据,也可以删除表的约束 3)使用truncate table删除的数据不能回滚

5、查询数据(重点)

5.1、查询所有列

SELECT * FROM student;

5.2、查询指定列

SELECT id,name,gender FROM student;

5.3、查询时添加常量列

SELECT id,name,gender,age,‘hello world‘ AS ‘msg‘  FROM student;

5.4、查询时合并列

SELECT id,(math+english) FROM scores;-- 注意:合并列只能合并数值类型的字段

5.5、查询时去除重复记录

SELECT DISTINCT gender FROM student;

5.6、条件查询

逻辑条件: and(与) or(或)

SELECT * FROM student WHERE id=2 AND NAME=‘李四‘; -- 交集

SELECT * FROM student WHERE id=2 OR NAME=‘张三‘; -- 并集

比较条件: >   <   >=  <=  =  <>(不等于)     between and (等价于>= 且 <=)

SELECT * FROM scores WHERE math>70;

判空条件(null 空字符串):  is null / is not null / =''  / <>''

SELECT * FROM student WHERE address IS NULL OR address=''; -- (包括null和空字符串)

模糊条件: like

-- 通常使用以下替换标记:% 表示任意个字符,_ 表示一个字符。

SELECT * FROM student WHERE name LIKE '李%';

SELECT * FROM student WHERE name LIKE '李_';

5.7、聚合查询

SELECT SUM(math) AS 'math的总成绩' FROM scores;

SELECT AVG(math) AS 'math的平均分' FROM scores;

SELECT MAX(math) AS '最高分' FROM scores;

SELECT MIN(math) AS '最低分' FROM scores;

SELECT COUNT(*) FROM student;

SELECT COUNT(id) FROM student;

-- 注意:count()函数统计的数量不包含null的数据。因此,使用count统计表的记录数,要使用不包含null值的字段。

5.8、分页查询

limit 起始行,查询几行

起始行从0开始

分页:当前页  每页显示多少条

分页查询当前页的数据的sql:

SELECT * FROM student LIMIT (当前页-1)*每页显示多少条,每页显示多少条;

5.9、查询排序

语法 :order by 字段 asc/desc

asc: 顺序,正序。数值:递增,字母:自然顺序(a-z)

desc: 倒序,反序。数值:递减,字母:自然反序(z-a)

5.10、分组查询

SELECT gender,COUNT(*) FROM student GROUP BY gender;

5.11、分组查询后筛选

注意: 分组之前条件使用where关键字,分组之前条件使用having关键字

SELECT gender,COUNT(*) FROM student WHERE GROUP BY gender HAVING COUNT(*)>2;

时间: 2024-10-12 21:35:00

MySQL系列:(2)MySQL基础的相关文章

【MYSQL系列】【基础版】第一章 MYSQL的安装以及测试

1. MYSQL的安装以及测试     1.1 什么是数据库,有什么作用,以及有哪些特点         1.1.1 Database,DB,是一个数据的仓库:         1.1.2 用于保存.管理数据         1.1.3 特点:             1.1.3.1 一致性.完整性             1.1.3.2 降低冗余(重复)             1.1.3.3 应用的共享,以及有组织         1.1.4 数据仓库: 偏向于数据分析,是数据挖掘的一种  

mysql系列之三MySQL编译安装

mysql 安装: 专用软件包管理器包 deb,rpm rpm: RHEL(Oracle Linux),CentOS SUSE 通用二进制格式包 gcc:x86,x64 源代码 5.5,5.6 cmake编译 选择GA版本 mysql-client提供客户端 mysql-devel开发组建 mysql-server服务器端 mysql-shared共享库 mysql-shared-compat兼容库 mysql-test 测试组件 最后一次读取的配置优先级最高 /etc/my.cnf /etc/

Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用

MySQL 存储引擎,也被称为表类型:    MyISAM表:无事务处理功能,支持表锁 .frm:表结构定义文件 .MYD:表数据文件 .MYI:表索引文件 InnoDB表:支持事务处理功能,支持行锁 .frm:表结构定义文件 .ibd:表空间(包含数据和索引文件) MySQL常用的查询命令: SHOW ENGINES;  #查看数据库支持的引擎及状态. SHOW TABLE STATUS LIKE 'user' \G  #查看表user的属性信息,\G竖排显示 mysqld --help --

[mysql系列02]mysql常用语法

本文结合具体的实例讲解mysql基础常用语法 CREATE DATABASE CREATE DATABASE db_name CREATE DATABASE用给定的名字创建一个数据库,创建数据库mysqllearn. create database mysqllearn; CREATE TABLE CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_

Linux命令:MySQL系列之四--MySQL管理表和索引

SQL语句: 数据库 表 索引 视图 DML语句 单字段:    PRIMARY KEY 主键 UNIQUE KEY 唯一键 单或者多字段:    PRIMARY KEY(col,...) UNIQUE KEY(col,...) INDEX(col,...) 数据类型: data_type: BIT[(length)] 比特 | TINYINT[(length)] [UNSIGNED] [ZEROFILL] 非常小的整数(1字节) | SMALLINT[(length)] [UNSIGNED]

[mysql系列03]mysql常用函数

一.数学函数 ABS(x)   返回x的绝对值 BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x)  返回大于x的最小整数值EXP(x)   返回值e(自然对数的底)的x次方 FLOOR(x)   返回小于x的最大整数值 GREATEST(x1,x2,...,xn)返回集合中最大的值 LEAST(x1,x2,...,xn)      返回集合中最小的值 LN(x)                    返回x的自然对数 LOG(x,y)返回x的以y为底

Linux命令:MySQL系列之八--MySQL事务相关内容

MySQL,ODBC    数据库事务 多事务同时执行:彼此之间互不影响的方式进行并行:事务之间交互,通过数据集. START TRANSACTION;  启动事务命令   数据库只有启动了事务才允许回滚撤销等操作. 且数据的engine引擎必须是innodb,才支持事务 ROLLBACK 回滚事务,mysql只要没有提交开启了事务都可以进行回滚操作. COMMIT:事务提交,事务提交后无法进行回滚操作. 如果没有明确启动事务:  autocommit能实现自动提交,每一个操作都直接提交: 所以

[mysql系列01]mysql数据类型

1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) 3个字节  范围(-8388608~8388607) int(m) 4个字节  范围(-2147483648~2147483647) bigint(m) 8个字节  范围(+-9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为

MySQL系列(三) MySQL的约束

约束 数据完整性 constraint 实体完整性保证表中有一个主键,还可以编写触发器保证数据完整性 域完整性保证数据每列的值满足特定条件,可以通过一下途径来保证: 选择适合的数据类型,外键,编写触发器,还可以用default 约束作为强制域完整性的一个方面 参照完整性保证两张表之间的关系 约束的创建和查找: 创建有两种方式: 表建立时就定义约束条件 利用 alter table 来进行约束的更新 唯一索引的默认约束名与列名相同. 约束和索引的区别: 约束是一个逻辑上的概念,用来保证数据的完整性

MySQL系列(四) MySQL的索引和算法

11 表结构 表是关于特定实体的数据集合,这也是关系型数据库的核心. 在InnoDB中,表都是根据主键顺序组织存放的,这种存储方式的表成为索引组织表. 所有数据都被逻辑的存放在一个空间中,称之为表空间 tablespace. 表空间又由段 segment, 区 extent, 页page 组成. 页在一些文档中有时也称之为块 block. 一个区一般为1M,一个页总是16KB,即一个区一共有64个连续的页. InnoDB中数据是按行进行存放的.每个页存放的行是有硬性规定规定的,最多运行存放16