潍坊网站建设诸城高密,做前端项目怎么进行网站切图,做电容的网站,四川网站网页设计文章目录 数据库关系型数据库非关系型数据”数据库的概念和用途MySQL数据库服务器、数据库和表的关系数据库的创建和删除表创建表修改常见的数据类型和约束字符串类型日期和时间类型PRIMARY KEY使用AUTO_INCREMENT使用UNIQUE使用FOREIGN KEY使用 SQL语言基础SQL语言简介SQL分类… 文章目录 数据库关系型数据库非关系型数据”数据库的概念和用途MySQL数据库服务器、数据库和表的关系数据库的创建和删除表创建表修改常见的数据类型和约束字符串类型日期和时间类型PRIMARY KEY使用AUTO_INCREMENT使用UNIQUE使用FOREIGN KEY使用 SQL语言基础SQL语言简介SQL分类SELECT语句的使用INSERT语句的使用UPDATE语句的使用DELETE语句的使用 基本查询WHERE子句的使用ORDER BY使用GROUP BY和HAVING子句使用LIMIT和OFFSET子句的使用 MySQL是一种开源的关系型数据库管理系统RDBMS由瑞典MySQL AB公司开发现隶属于Oracle公司。MySQL以其高性能、可靠性、扩展性和安全性而著称广泛应用于Web开发、企业应用、数据分析等领域。 数据库
数据库是数据的仓库与普通的数据仓库不同的是,数据库依据数据结构来组织数据,因为数据结构的存在,所以看到的数据是条理化的数据库和普通文件系统的区别在与:数据库拥有数据结构,能都快速查找对应的数据常说的MySQL数据库,其实就是MySQL数据库管理系统:数据库管理系统是一个软件,是数据库服务的体现根据数据结构的不同,数据库分为关系型数据库和非关系型数据库
关系型数据库
关系型数据库是依据关系模型创建数据库关系模型就是一对一,一对多,多对多等关系模型,关系模型就是存储格式是以行列组成的二维表格,所以一个关系型数据库就是由二维表之间的联系所组成的一个数据组织关系型数据库可以很好的存储一些关系模型的数据,比如老师对应学生的数据“多对多”一本书对应多个作者“一对多”一个人对应一个身份证号码“一对一”
非关系型数据”
由于关系型太大和复杂,所以一般使用“非关系型数据”来表示其他类型的数据库 非关系型的模型比如:
列模型:存储的数据是一列一列,关系型数据库以一行作为一个记录列模型数据库以一列为一个记录键值对模型:存储的数据是一个个键值对,比如name:lisi文档类模型:以一个个文档来存储数据,类似于键值对
数据库的概念和用途
数据库是一个有组织的数据集合它们被存储在计算机上以便于管理和访问。数据库的主要目的是为了存储和管理数据同时使数据能够被高效地访问、检索和更新。 数据库的主要用途包括
数据存储和管理数据库可以帮助组织和存储大量的数据包括结构化数据如表格和非结构化数据如文本、图片和视频等。数据访问数据库可以提供高效的数据访问方式包括查询、过滤、排序等操作以便用户能够轻松地检索所需的数据。数据共享多个用户可以同时访问数据库中的数据从而实现数据的共享和协作。数据安全性数据库可以提供安全性控制包括访问控制和数据加密等以保护数据的机密性和完整性。数据备份和恢复数据库可以提供备份和恢复功能以确保数据的可靠性和完整性。数据分析和挖掘数据库可以提供高级数据分析和挖掘功能包括统计分析、数据挖掘和机器学习等以便用户可以从数据中获得更多的价值。
MySQL数据库服务器、数据库和表的关系
数据库使用步骤登录MySQL 创建数据库 切换到指定数据库 创建表 使用表。 关系数据库服务器 数据库 表从左到右为一对多的关系。
数据库的创建和删除
创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name
显示数据库语句 SHOW DATABASES
显示数据库创建语句 SHOW CREATE DATABASE db_name
数据库删除语句 DROP DATABASE [IF EXISTS] db_name
DEFAULT CHARSET 指定数据库采用的字符集
切换数据库 use db_name;
查看当前使用的数据库 select database();
表创建
要创建一个新的表需要使用SQL中的CREATE TABLE语句并指定表名、列名和数据类型等信息。以下是一个基本的创建表的语法示例
CREATE TABLE [IF NOT EXISTS] students(id VARCHAR(255) PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT,gender VARCHAR(255),clazz VARCHAR(255)
);PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键列间以逗号分隔。 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL 在操作数据表时如果输入该字段的数据为NULL 就会报错。 加载本地数据LOAD DATA local INFILE ‘students.txt’ INTO TABLE students FIELDS TERMINATED BY ‘,’ ;
表修改
使用 ALTER TABLE 语句追加, 修改, 或删除列的语法。
-- 增加列
alter table students add length float;
-- 修改列类型,属性
alter table students modify length int not null;
-- 删除列
alter table students drop length;
--修改表的名称
rename table students to student;
--修改列的名称
alter table student change id sid varchar(255);
--修改表的字符集
alter table student character set utf8;常见的数据类型和约束
数据类型 数值类型INT、BIGINT、FLOAT、DOUBLEDECIMAL等。 字符串类型CHAR、VARCHAR、TEXT等。 日期和时间类型DATE、DATETIME、TIMESTAMP等。 二进制类型BLOB、LONGBLOB、VARBINARY等。 枚举类型ENUM。 集合类型SET。
约束
主键约束PRIMARY KEY用于唯一标识表中的每一行数据通常使用整数类型的列。唯一约束UNIQUE保证列中的所有值都是唯一的可以包含空值。外键约束FOREIGN KEY用于定义列与其他表的关系保证引用完整性。非空约束NOT NULL确保列中不包含空值。默认值约束DEFAULT 在插入新行时如果没有指定列的值则使用默认值。检查约束CHECK用于确保列中的值满足特定的条件可以使用各种表达式和运算符来定义。
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。 字符串类型 主要是varchar和char, UTF8一个汉字3个字节 GBK一个汉字2个字节。
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR 示例
CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,password VARCHAR(100) NOT NULL,created_at DATETIME DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,age INT CHECK(age 18),address TEXT,role ENUM(admin, user) DEFAULT user
);这个语句将创建一个名为users的表包含多个列和约束。其中id列是主键name列是非空字符串email列是唯一的password列是非空字符串created_at列是日期时间类型updated_at列是日期时间类型但在更新时会自动更新age列使用检查约束以确保其值大于等于18address列是文本类型role列是枚举类型且默认值为’user’。
PRIMARY KEY使用
PRIMARY KEY 是一列或一组列其值唯一标识表中的每一行。一个表只能有一个PRIMARY KEY。在表创建时可以指定其中的一列为主键也可以使用多列来组合作为主键。对于多列组合主键它们的值的组合必须是唯一的。
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),age INT
);AUTO_INCREMENT使用
AUTO_INCREMENT是一种MySQL特有的属性它允许一个整数列自动增长每次插入新行时自动递增。这通常用于为表创建一个唯一的、自动生成的数字标识符。必须将AUTO_INCREMENT属性与INTEGER数据类型一起使用通常是使用INT或BIGINT数据类型。
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50)
);在上面的代码中每次插入一行时MySQL将自动为id列生成一个新的唯一值而不需要手动为该列指定一个值。这使得插入新行时更加方便同时也确保每个行都有一个唯一的标识符。
UNIQUE使用
假设有一个“学生”数据表其中包含学生ID、姓名和电子邮件地址。为了确保每个学生的电子邮件地址是唯一的可以在“电子邮件地址”列上创建UNIQUE约束。
CREATE TABLE students (student_id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE
);在上面的代码中我们创建了一个名为“students”的数据表并在“email”列上创建了一个UNIQUE约束。这将确保每个学生的电子邮件地址是唯一的。
FOREIGN KEY使用
假设有一个“订单”数据表和一个“产品”数据表其中“订单”表包含订单ID、订单日期和产品ID而“产品”表包含产品ID、产品名称和产品价格。为了确保订单中的每个产品ID都是有效的可以在“订单”表中为“产品ID”列创建FOREIGN KEY约束该约束参照“产品”表中的“产品ID”列。
CREATE TABLE products (product_id INT PRIMARY KEY,product_name VARCHAR(50) NOT NULL,price DECIMAL(8, 2) NOT NULL
);CREATE TABLE orders (order_id INT PRIMARY KEY,order_date DATE NOT NULL,product_id INT,FOREIGN KEY (product_id) REFERENCES products(product_id)
);在上面的代码中我们创建了一个名为“products”的数据表和一个名为“orders”的数据表并在“orders”表中为“product_id”列创建了一个FOREIGN KEY约束。这将确保订单中的每个产品ID都是有效的并且参照了“products”表中的产品ID列。
SQL语言基础
SQLStructured Query Language是一种标准化的关系型数据库管理系统主要用于管理和查询数据库中的数据。
SQL语言简介
Structured Query Language, 结构化查询语言 非过程性语言 为加强SQL的语言能力各厂商增强了过程性语言的特征 如Oracle的PL/SQL 过程性处理能力 SQL Server、Sybase的T-SQL SQL是用来存取关系数据库的语言具有查询、操纵、定义和控制关系型数据库的四方面功能
SQL分类
DDL
数据定义语言 - Data Definition Language用来定义数据库的对象如数据表、视图、索引等
DML
数据处理语言 - Data Manipulation Language在数据库表中更新增加和删除记录如 update insert delete
DCL
数据控制语言 – Data Control Language指用于设置用户权限和控制事务语句如grantrevokeif…elsewhilebegin transaction
DQL
数据查询语言 – Data Query Language
SELECT语句的使用
SELECT语法是一种用于查询数据库中数据的SQL语句。其基本语法如下
SELECT column1, column2, ... FROM table_name WHERE condition;其中SELECT关键字用于指定要查询的列可以使用*代表所有列FROM关键字用于指定要查询的表WHERE关键字用于指定查询的条件。
select * from student where sex’男’;INSERT语句的使用
INSERT语句用于向数据库中插入新的数据行。其基本语法如下
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);其中table_name是要插入数据的表名column1、column2等是表中的列名value1、value2等是要插入的值。
UPDATE语句的使用
UPDATE语句用于修改数据库中已有的数据行。其基本语法如下
UPDATE table_name
SET column1 value1, column2 value2, ...
WHERE some_column some_value;其中table_name是要更新数据的表名column1、column2等是要修改的列名value1、value2等是要修改的值WHERE子句是用于指定要更新的行的条件。
DELETE语句的使用
DELETE语句用于删除数据库中的数据行。其基本语法如下
DELETE FROM table_name
WHERE some_column some_value;其中table_name是要删除数据的表名WHERE子句是用于指定要删除的行的条件。 注意如果不指定条件相当于删除表中所有数据
基本查询
基本查询是SQL中最常用的操作之一它允许用户从数据库表中检索数据。这些查询通常使用SELECT语句来执行。
WHERE子句的使用
模糊搜索 WHERE子句还可以使用LIKE运算符进行模糊搜索。例如
SELECT * FROM students WHERE clazz like ‘文科%’返回名字以字母“文科”开头的所有学生。
select * from students where clazz in (文科一班,文科二班,文科三班);返回名字以字母”文科一班’,‘文科二班’,文科三班’的学生。
--BETWEEN AND
select * from students where age BETWEEN 22 AND 24;返回年龄在22到24的学生
ORDER BY使用
ORDER BY子句用于对查询结果按照一个或多个列进行排序。它接受一个或多个列名或表达式作为参数并可指定每个列的排序方式升序或降序。语法如下
--ASC:升序DESC:降序
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...GROUP BY和HAVING子句使用
GROUP BY子句用于将查询结果按照一个或多个列进行分组并对每个组进行聚合计算如COUNT、SUM、AVG等。语法如下
SELECT column1, column2, ..., aggregate_function(column_name)
FROM table_name
GROUP BY column1, column2, ...HAVING子句用于对分组后的结果进行过滤只返回符合条件的分组。它接受一个或多个聚合函数作为参数并可指定每个函数的过滤条件。语法如下
SELECT column1, column2, ..., aggregate_function(column_name)
FROM table_name
GROUP BY column1, column2, ...
HAVING condition;LIMIT和OFFSET子句的使用
LIMIT用于限制查询结果集的行数。其语法如下
SELECT column1, column2, ...
FROM table_name
LIMIT number;其中number是你想要返回的行数。
OFFSET用于指定查询结果集的偏移量。其语法如下
SELECT column1, column2, ...
FROM table_name
LIMIT number OFFSET offset;其中number是你想要返回的行数offset是从查询结果集的起始位置偏移的行数。