您的位置:首页 > 新闻 > 会展 > 邯郸市天气预报_购买淘宝店铺在哪个平台_网络媒体软文案例_百度竞价什么时候开始的

邯郸市天气预报_购买淘宝店铺在哪个平台_网络媒体软文案例_百度竞价什么时候开始的

2024/12/23 8:19:43 来源:https://blog.csdn.net/qingzhumuqingfeng/article/details/144517157  浏览:    关键词:邯郸市天气预报_购买淘宝店铺在哪个平台_网络媒体软文案例_百度竞价什么时候开始的
邯郸市天气预报_购买淘宝店铺在哪个平台_网络媒体软文案例_百度竞价什么时候开始的

1、引言

        MySQL 是一个广泛使用的关系型数据库管理系统(RDBMS),以下是对 MySQL 的详细描述:

1.1、基本概述

        开源软件:MySQL 是开源的,遵循 GNU 通用公共许可证(GPL),用户可以免费使用、修改和分发。
        跨平台:MySQL 可以在多种操作系统上运行,包括 Windows、Linux、macOS 等。
        灵活性:MySQL 支持多种存储引擎,例如 InnoDB、MyISAM、Memory 等,用户可以根据应用需求选择合适的存储引擎。

1.2、主要特性        

        关系型数据库:MySQL 使用表(table)来存储数据,表之间通过关系(通常是外键)进行关联。
        SQL 支持:MySQL 使用结构化查询语言(SQL)进行数据查询、插入、更新和删除等操作。
        事务处理:MySQL 支持 ACID(原子性、一致性、隔离性、持久性)事务特性,尤其是 InnoDB 存储引擎,提供了完整的事务支持。
        安全性:MySQL 提供了多种安全特性,如用户权限管理、数据加密、SSL/TLS 连接等。
        高性能:MySQL 具有良好的性能表现,尤其是在高并发和大数据量环境下,通过索引、查询优化等手段,可以显著提高查询速度。
        可扩展性:MySQL 支持读写分离、分库分表等扩展策略,可以应对大规模数据存储和访问需求。

2、操作数据库

2.1、create命令创建库

使用 create 命令创建数据库,基础语法:CREATE DATABASE 数据库名;

示例如下:

mysql>create database ods;

2.1.1、进阶语法1:判断创建库是否存在,不存在则创建

如果数据库已经存在,执行 CREATE DATABASE 将导致错误。
为了避免这种情况,你可以在 CREATE DATABASE 语句中添加 IF NOT EXISTS 子句:
CREATE DATABASE [IF NOT EXISTS] database_name;

参数说明:

IF EXISTS 是一个可选的子句,表示如果数据库存在才执行删除操作,避免因为数据库不存在而引发错误。
database_name 是你要删除的数据库的名称。

示例如下:

create database if not exists ods;

2.1.2、进阶语法2:判断创建库是否存在,不存在则创建,并指定字符集和排序规则

 CREATE DATABASE [IF NOT EXISTS] database_name
  [CHARACTER SET charset_name]
  [COLLATE collation_name];

示例如下:

create database ods
character set utf8mb4
collate utf8mb4_general_ci;

2.2、drop 命令删除数据库

drop 命令格式:
1、直接删除数据库,不检查是否存在
DROP DATABASE <database_name>;  
2、判断数据库是否存在,存在则删除
DROP DATABASE [IF EXISTS] <database_name>;
例如删除名为 ods 的数据库:
直接删除数据库,不检查是否存在

mysql> drop database ods;

删除数据库,如果存在的话

mysql>drop database if exists ods;

特别注意: 在执行删除数据库操作前,请确保你确实想要删除数据库及其所有数据,因为该操作是不可逆的。为了避免误操作,通常建议在执行删除之前备份数据库。

2.3、show命令查看所有数据库

 1、 在MySQL中,查看所有可用的数据库:      

 mysql>show databases;

         执行这个命令将列出MySQL服务器中所有的数据库名称。这是最简单直接的方法来获取数据库列表。
        请注意,根据您的权限,您可能看不到所有数据库。只有具有足够权限的用户才能看到所有数据库的列表。

2、查看某个数据库的定义信息
        在MySQL中,您可以使用SHOW CREATE DATABASE语句来查看特定数据库的定义信息。这将返回创建该数据库的SQL语句,包括字符集和校对规则。
        以下是查看数据库定义信息的SQL命令:
        SHOW CREATE DATABASE database_name;

mysql> show create database ods;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| ods      | CREATE DATABASE `ods` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.04 sec)

2.4、alter命令修改数据库字符信息

        如果你想要修改数据库的默认字符集和排序规则,你可以使用alter database语句。
        例如,将数据库ods的字符集改为utf8mb4,排序规则改为utf8mb4_unicode_ci:

mysql> alter database ods character set utf8mb4 collate utf8mb4_unicode_ci;
Query OK, 1 row affected (0.02 sec)

注意:请确保在执行这些操作之前备份你的数据,因为字符集的变更可能会影响文本数据的存储。

mysql> alter database ods character set utf8;
Query OK, 1 row affected (0.00 sec)

注意:MySQL 命令终止符为分号 ;

3、操作数据库表

3.1、create命令创建表

  创建 MySQL 数据表需要以下信息:

  • 表名
  • 表字段名
  • 定义每个表字段的数据类型

创建一个学生表,示例如下:

mysql> use ods;
Database changed
mysql> create table students (student_id  int  auto_increment comment '学生id',student_name varchar(50) not null comment '姓名',birth_date datetime comment '出生日期',gender int  not null comment '性别',enrollment_date datetime not null comment '入学日期',email varchar(100) unique not null comment '电子邮件',phone_number varchar(20) comment '电话号码',address varchar(255) comment '地址',primary key (student_id)
) comment='学生信息表';
Query OK, 0 rows affected (0.15 sec)

上述 sql 语句做了以下几件事:

  1. 创建了一个名为 students 的表。
  2. 添加了表注释 存储学生信息的表。
  3. 为每个字段添加了适当的类型和约束。
  4. 为每个字段添加了注释,描述了该字段的用途。

字段解释:

  1. student_id: 学生的唯一标识符,自动递增,作为主键。
  2. student_name: 学生的姓名,不能为空。
  3. birth_date: 学生的出生日期。
  4. gender: 学生的性别,可选值为 '1'(男)、'0'(女)或 '2'(其他)。
  5. enrollment_date: 学生的入学日期,不能为空。
  6. email: 学生的电子邮件地址,唯一且不能为空。
  7. phone_number: 学生的电话号码,可以为空。
  8. address: 学生的地址,可以为空。

注意事项:

  1. varchar 类型用于字符串字段,并指定了最大长度。
  2. datetime 类型用于日期字段。
  3. primary key 定义了主键约束,确保 student_id 的唯一性。
  4. unique 约束确保 email 字段的唯一性。
  5. 执行这些 sql 语句后,您将在 school_db 数据库中创建一个名为 students 的表,并包含表注释和字段注释。

        以上只是一个简单的实例,用到了一些常见的数据类型包括 int, varchar, datetime, 你可以根据实际需要选择不同的数据类型。auto_increment 关键字用于创建一个自增长的列,primary key 用于定义主键。

如果你希望在创建表时指定数据引擎,字符集和排序规则等,可以使用 character set 和 collate 子句:

create table mytable (id int primary key,name varchar(50)
) character set utf8mb4 collate utf8mb4_general_ci;

以上代码创建一个使用 utf8mb4 字符集和 utf8mb4_general_ci 排序规则的表。

注意:MySQL 命令终止符为分号 ;

3.2、删除数据表

3.2.1、删除数据库表语法:

        以下为删除 mysql 数据表的通用语法:
        直接删除表,不检查是否存在
        drop table table_name;  
        检查表是否存在,如果存在则删除
        drop table [if exists] table_name;  

        示例如下:

        删除表,如果存在的话
        drop table if exists students ;
        直接删除表,不检查是否存在
        drop table students ;

3.2.2、删除表数据但保留表结构

        如果你只是想删除表中的所有数据,但保留表的结构,可以使用 truncate table 语句:
        truncate table table_name;

        这会清空表中的所有数据,但不会删除表本身。

         truncate table students ;

注意事项:
● 备份数据:在删除表之前,确保已经备份了数据,如果你需要的话。
● 外键约束:如果该表与其他表有外键约束,可能需要先删除外键约束,或者确保依赖关系被处理好。

3.3、查看表结构

        desc 表名;

mysql> desc students;
+-----------------+--------------+------+-----+---------+----------------+
| Field           | Type         | Null | Key | Default | Extra          |
+-----------------+--------------+------+-----+---------+----------------+
| student_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| student_name    | varchar(50)  | NO   |     | NULL    |                |
| birth_date      | datetime     | YES  |     | NULL    |                |
| gender          | int(11)      | NO   |     | NULL    |                |
| enrollment_date | datetime     | NO   |     | NULL    |                |
| email           | varchar(100) | NO   | UNI | NULL    |                |
| phone_number    | varchar(20)  | YES  |     | NULL    |                |
| address         | varchar(255) | YES  |     | NULL    |                |
+-----------------+--------------+------+-----+---------+----------------+
8 rows in set (0.06 sec)

        show create table 表名;

mysql> show create table students;
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (`student_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学生id',`student_name` varchar(50) NOT NULL COMMENT '姓名',`birth_date` datetime DEFAULT NULL COMMENT '出生日期',`gender` int(11) NOT NULL COMMENT '性别',`enrollment_date` datetime NOT NULL COMMENT '入学日期',`email` varchar(100) NOT NULL COMMENT '电子邮件',`phone_number` varchar(20) DEFAULT NULL COMMENT '电话号码',`address` varchar(255) DEFAULT NULL COMMENT '地址',PRIMARY KEY (`student_id`),UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生信息表' |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.09 sec)

3.4、修改表

3.4.1、修改表名

        alter table 表名 rename to 新的表名;

把表名为students  修改为 ods_stl_students 。如下:

mysql> alter table students  rename to ods_stl_students ;
Query OK, 0 rows affected (0.04 sec)

3.4.2、添加一列

        alter table 表名 add 列名 数据类型;

        为表ods_stl_students新增一列学生年龄,并注释,如下:

mysql> alter table ods_stl_students add age int  COMMENT '年龄';
Query OK, 0 rows affected (0.12 sec)
Records: 0  Duplicates: 0  Warnings: 0

3.4.3、删除列

        alter table 表名 drop 列名;

        把新增学生年龄删除,如下:

mysql> alter table ods_stl_students drop age;
Query OK, 0 rows affected (0.12 sec)
Records: 0  Duplicates: 0  Warnings: 0

3.5、insert into插入数据

        insert into 插入数据有三种方式: 

1、写全所有列名

        insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);

以学生表为例,如下:

mysql> insert into ods_stl_students (student_name, birth_date, gender, enrollment_date, email, phone_number, address)
values
('john', '2000-05-15', '1', '2020-09-01', 'john.doe@example.com', '123-456-7890', '123 main st, anytown, usa'),
('孙悟空',  '1999-11-22', '1', '2020-09-01', 'jane.smith@example.com', '098-765-4321', '傲来国花果山水帘洞'),
('alice',  '2002-03-30', '0', '2021-01-15', 'alice.johnson@example.com', '555-123-4567', '789 oak st, anytown, usa'),
('唐三',  '2001-07-07', '1', '2020-09-15', 'bob.brown@example.com', '555-987-6543', '法斯诺行省诺丁城南圣魂村'),
('emily',  '2003-02-14', '1', '2022-02-28', 'emily.davis@example.com', '555-432-1234', '654 maple st, anytown, usa'),
('宁姚', '1998-10-10', '0', '2019-08-30', 'michael.wilson@example.com', '555-765-4321', '剑气长城'),
('sarah', '2001-04-23', '1', '2020-10-01', 'sarah.taylor@example.com', '555-321-6549', '234 cedar st, anytown, usa'),
('miss李', '2002-11-11', '1', '2021-03-15', 'david.lee@example.com', '555-654-3210', '567 ash st, anytown, usa'),
('laura', '2000-06-20', '2', '2020-09-10', 'laura.clark@example.com', '555-876-5432', '876 willow st, anytown, usa'),
('christopher', '1997-12-25', '1', '2018-09-01', 'christopher.anderson@example.com', '555-234-6789', '147 hickory st, anytown, usa');
Query OK, 10 rows affected (0.02 sec)
Records: 10  Duplicates: 0  Warnings: 0

2、不写列名(所有列全部添加)

        insert into 表名 values(值1,值2,...值n);

mysql> insert into ods_stl_students values
(1,'john', '2000-05-15', '1', '2020-09-01', 'john.doe@example.com', '123-456-7890', '123 main st, anytown, usa');
Query OK, 1 row affected (0.03 sec)

注意:不写列名时,需要把所有列加上,包括自增id。

3、插入部分数据

        insert into 表名(列名1,列名2) values(值1,值2);

mysql> insert into ods_stl_students (student_name,  gender, enrollment_date, email,address) values
('孙悟空',  '1', '2020-09-01', 'jane.smith@example.com',  '傲来国花果山水帘洞');
Query OK, 1 row affected (0.03 sec)

注意:插入部分数据时,首先要确保必填项不可缺失。

3.6、delete删除数据

3.6.1、根据条件删除数据

        删除符合条件的行

未完待续

版权声明:

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

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