您的位置:首页 > 新闻 > 热点要闻 > 北京设计院排名推荐_保定网站建设公司_爱站工具网_百度热搜榜排名

北京设计院排名推荐_保定网站建设公司_爱站工具网_百度热搜榜排名

2025/1/7 21:15:24 来源:https://blog.csdn.net/lizhiwei21/article/details/142455989  浏览:    关键词:北京设计院排名推荐_保定网站建设公司_爱站工具网_百度热搜榜排名
北京设计院排名推荐_保定网站建设公司_爱站工具网_百度热搜榜排名

1-什么是数据库

数据库就是保留数据的仓库,体现在电脑当中,是一个软件或者是文件系统。然后把这些数据都保存在特殊的文件中,然后使用固定的语言(SQL语句)去操作文件中的数据。

2-数据库的优点

数据库是按照特定的格式将数据存储在文件当中,通过SQL语句可以方便的对大量的数据进行CRUD(增删查改)。

3-常见的数据库

Oracle:它是Oracle公司的大型关系型数据库。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、安全可靠的。但是它是收费的。

MYSQL:早期由瑞典一个叫MySQL AB公司开发的,后期被sun公司收购,再后期被Oracle收购。体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。MySQL6.x版本也开始收费。

 DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.

SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。

SyBase:Sybase公司的。 已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。

4-关系型数据库

关系型数据库是一种通过表格形式存储数据的数据库系统,数据以行和列的形式组织。每个表代表一个实体,列表示属性,行则表示具体记录。关系型数据库使用结构化查询语言(SQL)进行数据操作,支持数据的增删改查和复杂的查询。

5-SQL语句的分类和语法

1-什么是SQL

Structed Query Language结构化查询语言,对于所有的数据库都是通用的,但是任何数据库,也都会有其特有的语言。

2-SQL的特点

SQL语言是一门非过程性的语言,每一条语句执行完都会有一个结果出现,多条语句之间没有影响。

3-SQL语句的分类

  1. DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create drop alter truncate(清空数据记录) show等

  2. DML(Data Manipulation Language)数据操作语言

    在数据库表中更新,增加和删除记录。如 update(更新), insert(插入), delete(删除) 不包含查询

  3. DQL(Data Query Language) 数据查询语言数据表记录的查询。关键字select。

  4. DCL(Data Control Language)数据控制语言(了解)

    是用来设置或更改数据库用户或角色权限的语句,如grant(设置权限),revoke(撤销权限),begin transaction等。这个比较少用到。

4-SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾。

  2. 可使用空格和缩进来增强语句的可读性。

  3. MySQL数据库的SQL语句不区分大小写,关键字开发中一般大写。eg:a

    SELECT * FROM student;
  4. 3种注释 单行注释: -- 注释内容 多行注释: /* 注释 */

    # 注释内容(mysql特有的单行注释)

6-DDL创建数据库

1.直接创建数据库

CREATE DATABASE 数据库名

2-判断是否存在并创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名

3-创建数据库并指定字符集

创建数据库并指定字符集是指在建立数据库时,选择一个特定的字符编码方案来存储文本数据。这确保数据库能够正确处理和显示不同语言和符号的字符。

主要点包括:

字符集:定义了可以使用哪些字符,例如UTF-8支持多种语言的字符。
数据完整性:指定字符集可以避免因字符编码不一致而导致的数据损坏。
兼容性:不同的应用程序或用户可能需要不同的字符集,选择合适的字符集可以提高系统的兼容性。
在创建数据库时,通过设置字符集,开发者确保数据的正确存储和检索。

CREATE DATABASE 数据库名 character set 字符集;

举例

CREATE DATABASE my_database CHARACTER SET utf8mb4;

4查看数据库

1-查看所有的数据库

SHOW DATABASES;

2-查看某个数据库的定义信息

SHOW CREATE DATABASE 数据库名;

7-DDL修改和删除数据库

1-修改数据库字符集

ALTER DATABASE 数据库 default character set 新的字符集;

注意:如果修改数据库指定的编码表是utf8,记住不能写utf-8.。utf-8 是错误的

(mysql不认识utf-8)。

java中的常用编码 : UTF-8; GBK;GB2312;ISO-8859-1;

对应mysql数据库中的编码: utf8; gbk;gb2312; latin1;

2-删除数据库

DROP DATABASE 数据库名;

8-DDL使用数据库

1-查看正在使用的数据库

SELECT DATABASE();

2-使用某个数据库

USE 某个数据库名

9-DDL创建表

1-创建表

CREATE TABLE 表名 (字段名1 字段类型1, 字段名2 字段类型2
);
最后一个字段不加逗号

2-MYSQL中的数据类型

3-举例 

  • 需求:设计一张学生表,请注重数据类型长度的合理性

1.编号

2.姓名,姓名最长不超过10个汉字

3.性别,因为取值只有两种可能,因此最多一个汉字

4.生日,取值为年月日

5.入学成绩,小数点后保留两位

6.邮件地址,最大长度不超过 64

7.家庭联系电话,不一定是手机号码,可能会出现 - 等字符

8.学生状态(用数字表示,正常、休学、毕业...)

-- 需求1:创建学生表
create table stu(-- 编号id int,name varchar(10), -- 10表示姓名的值最多只能是10个字符sex char(1), -- 1表示性别是1个字符birthday date,score double(5,2), -- 5 表示长度最多是5   2 表示小数点保留2位,即位数 3.14email varchar(64),tel varchar(20),-- 学生状态,tinyint 表示微整型 -- status 0 表示正常 1 休学 2 毕业status tinyint
);

 10-DDL查看表

1-查看某个数据库中的所有表格

SHOW TABLES;

2-查看表的结构

DESC 表名;

3-查看创建表的SQL语句

SHOW CREATE TABLE 表名;

11-DDL删除表

1-快速创建一个表结构相同的表格

CREATE TABLE 表名 LIKE 其他表;

2-删除表格

1-直接删除

DROP TABLE;

2-判断表是否存在并删除

DROP TABLE IF EXISTS 表名;

12-DDL修改表的结构

1-添加表列

ALTER TABLE 表名 ADD 字段名/列名 类型;

2-修改列的类型

ALTER TABLE 表名 MODIFY 字段名 新的类型;

3-修改列的名和类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型;

4-删除列的字段

ALTER TABLE 表名 DROP 字段名;

5-修改表名

RENAME TABLE 旧表名 TO 新表名;

6-修改字符集

ALTER TABLE 表名 character set 字符集;

13-DML插入记录

1-插入全部字段

也可有写出字段名,但是需要把所有字段都写出来

INSERT INTO 表名 VALUES (字段值1, 字段值2...);

2-插入部分数据

INSERT INTO 表名 (字段名1, 字段名2...) VALUES (字段值1, 字段值2...);

3-批量插入数据

INSERT INTO 表名 values(字段值1, 字段值2...),(字段值1, 字段值2...),(字段值1, 字段值2...);

4-具体说明

INSERT INTO 表名 – 表示往哪张表中添加数据
(字段名1, 字段名2, …)  --  要给哪些字段设置值
VALUES (值1, 值2, …); -- 设置具体的值
注意:使用   select * from 表名 --查看该表的所有信息。

5-注意事项

1-字段名就是列,有多少个列就要写多少个值,如果插入的值为空,可以使用null表示插入为空。

2-值的数据类型要和被定义的数据类型一直一致。

3-在mysql中使用单引号表示字符串。

4-date事件类型也是用单引号括起来。

14-DML更新表记录

1-不带条件修改数据

UPDATE 表名 SET 字段名=新的值,字段名=新的值,..;

 2-带条件的修改数据

UPDATE 表名 SET 字段名=新的值,字段名=新的值,..WHERE 条件

15-DML删除表记录

1-不带条件的删除数据

DELETE FROM 表名;
表还在,可以操作,只是删除数据。

2-带条件的删除数据

DELETE FROM 表名 WHERE 条件;

3-truncate删除表的记录,属于DDL

TRUNCATE TABLE 表名;

4-truncate和delete的区别

  • delete是将表中的数据一条一条删除

  • truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样

 16-DQL的简单查询

1-查询表中所有列的数据

#方法1
SELECT -- 表示查询
SELECT 字段名1, 字段名2, ... FROM 表名;
#方法2
SELECT * FROM 表名;

2-查询表中指定列的数据

SELECT 字段名1, 字段名2 FROM 表名;

3-别名查询

使用AS关键字

方便观看和处理查询到的数据

SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;`

4-清楚重复值

SELECT DISTINCT 字段名,字段名,.. FROM 表名;

5-查询结果参与运算

1-某列数据和固定值运算

SELECT 列名1 + 固定值 FROM 表名;

2-某列数据和其他列数据运算

SELECT 列名1 + 列名2 FROM 表名;

注意,参与运算的必须是数值类型

17-蠕虫复制

在已有的数据基础之上,将原来的数据进行复制,插入到对应的表当中

具体操作如下

创建一个list2表,结构和list一致

CREATE TABLE list2 LIKE list;

将list表中的数据复制到list2当中

INSERT INTO list2 SELECT * FROM list;

18-DQL查询语句-条件查询(重要)

通用格式

SELECT 字段名... FROM 表名 WHERE 条件;

具体操作

首先引入数据

CREATE TABLE student3 (id int,name varchar(20),age int,sex varchar(5),address varchar(100),math int,english int
);INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES 
(1,'lzw',20,'男','陕西',66,78),
(2,'fyq',18,'女','深圳',58,87),
(3,'hjx',55,'男','香港',56,55),
(4,'szl',20,'女','北京',76,65),
(5,'xcj',20,'男','北京',96,NULL),
(6,'mht',57,'男','香港',99,99),
(7,'dd',22,'女','香港',99,99),
(8,'kk',18,'男','南京',56,65);

比较运算符

>大于 <小于 <=小于等于 >=大于等于 =等于 <>!=不等于

 1-查询math分数大于80分的学生

SELECT * FROM student3 WHERE math>80;

2-查询english小于等于80分的学生

SELECT * FROM student3 WHERE english<=80;

3-查询age等于20岁的学生

SELECT * FROM student3 WHERE age=20;

4-查询成绩不等于20岁的学生

SELECT * FROM student3 WHERE age!=20;
SELECT * FROM student3 WHERE age<>20;

逻辑运算符

and(&&) 多个条件同时满足 一假即假

or(||) 多个条件其中一个满足 一真即真

not(!) 不满足 取反  

 5-in关键字

SELECT * FROM 表名 WHERE 字段 in (值1, 值2, 值3);

in里面的每个数据都会作为一次条件,只要满足条件的就会显示

6-范围

BETWEEN

BETWEEN 值1 AND 值2 -- 表示从值1到值2范围,包头又包尾

 eg:查询english成绩大于等于75,且小于等于90的学生

SELECT * FROM student3 WHERE english>=75 AND english<=90;
SELECT * FROM student3 WHERE english BETWEEN 75 AND 90;

19-DQL模糊查询like

SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';

MySQL通配符有两个:

%: 表示零个一个多个字符(任意多个字符)

_: 表示一个字符

 eg:

例如:  name like '李%' 所有姓张学员。 

name like '%李%' 只要有张就可以。

name like '李_' 所有姓张名字为两个字学员。

name like '_李_'  只有中间是张,前面一个字,后面一个字。

20-DQL查询(排序) 

SELECT 字段 FROM 表名 ORDER BY 排序的字段 [ASC|DESC];

ASC: 升序排序(默认) DESC: 降序排序  

仅仅是对查询出来的结果进行排序,并不会对原有的数据库中的数据产生影响

组合排序

组合排序就是先按第一个字段进行排序,如果第一个字段相同,才按第二个字段进行排序,依次类推。 

21-DQL查询语句(聚合函数)

5个聚合函数

count:在根据指定的列统计的时候,如果这一列中有null的行,该行 不会被统计在其中。按照列去统计有多少行数据。

sum: 计算指定列的数值和,如果不是数值类型,那么计算结果为0

max: 计算指定列的最大值

min: 计算指定列的最小值

avg: 计算指定列的平均

1-简单使用

SELECT 聚合函数(字段) FROM 表名;

 如果值为null则不会统计。

注意!在mysql中null值和任何值相加为null,如果是同一列的值相加,null值会默认为0

同一条记录,不同列的值相加就会变为null。

这个时候我们就需要使用使用ifnull函数ifnull(列名, 默认值)

22-DQL查询语句(分组)

select … from … group by 列名,列名,....

select ... from ... where 条件1 ... group by ... having 条件2 order by...

注意事项

1-sql语句中where后面不允许添加聚合函数

2-having必须和group by 一起使用,having和where的用法一模一样,where怎么使用having就怎么使用,where不能使用的,having也可以使用,比如说where后面不可以使用聚合函数,但是在having后面是可以使用聚合函数的。

3、where 是在分组之前进行过滤的。having 是在分组之后进行过滤的。

到这里,基本的一些操作就完成了,这是参考文献,然后进行总结出来的,期待下次见面!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com