数据库DDL.DML

本文介绍了MySQL的基础知识,包括DDL(数据库定义语言)、DML(数据操纵语言)和DCL(数据控制语言)。详细讲述了如何使用SQL语句创建、删除数据库及表,增删改查表中的数据,并对权限进行了管理。

MYSQL基础(关于基础的三种语言)

SQL:DDL,DML,DCL

  • DDL(database definition language)定义数据库,表。

具体应用:

  1. 创建数据库A:create database A;

  删除数据库A: drop database B;

 

  1. 查找系统中存在哪些数据库:show databases;

 

3.电脑里面开始的时候默认有4 个数据库,它们都是安装MySQL时系统自动创建的,其各自功能如下。

information_schema:主要存储了系统中的一些数据库对象信息。比如用户表信息、列信息、权限信息、字符集信息、分区信息等。

cluster:存储了系统的集群信息。我自己电脑里面的数据库没有找到)

mysql:存储了系统的用户权限信息。

test:系统自动创建的测试数据库,任何用户都可以使用。

 

4.查找B数据库的表有哪几个:use database B;

Show tables;

  查看具体的表例如hello表中的具体信息:desc hello;

  更加详细查看hello表信息:show create table hello \G;(会看到这个表的存储引擎和字符集)

查找表中字段的记录信息:select * from bai;

 

5.数据库C中创建一个(有诸多要求,后面会讲解的):

                    Create database C;

                       Use  C;

                    Create table hello(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));                   

hello:表的名字

表中三个字段:ename(姓名),hiredate(日期),sal(薪水)

Deptno(部门号,暂时没看到那里,后面会讲解

 

6.删除表:drop table hello;

  修改表的名字为hi:alter table hello rename hi;

  修改表中的字段类型(例如将ename的类型改为varchar(20))

Alter table hello modify ename varchar(20);

增加一个字段age(默认放在最后):alter table hello add column age int(3);

   (column:字段)

如果要放在第一个:alter table hello modify age int(3) first;

如果要放在ename的后面:alter table hello add age int(3) after ename;

 

删除字段age:alter table hello drop column age;

修改表的字段名字和类型:alter table hello change age agel int(4)(age--agel,修改表中的字段名字只可以用change,不可以用modify)

如果用change修改表的字段类型要写两次字段名字

Alter table hello change age age varchar(20);

 

  • DML

为表中字段内容进行增添,修改,删除,更新。

  1. 更新记录:根据一个表对另一个表进行更新。在二者有着共同相同的条件下,可以是ename相同或者是编号depton相同。会用其他符号来代表两个表。

 

2.增添记录:insert into bai (ename,sal) values(‘wang’,’2000’);

还可以简写:insert into bai values(‘wang’,’2000’);(但是顺序要和字段顺序是一样的才可以)

3.删除记录:

删除了两个表中编号都为1的所有相关数据。

 

4.查询记录:select * from bai;(查询表中的全部记录),select ename from bai;(只查询字段ename)

查询不重复的记录:select distinct ename from bai;(查询得名字是不重复的)

查询某些具体的记录:用where当限制条件

查询排序后的某些记录:select * from bai order by sal;(按照薪水排序,一般默认为升序),如果是降序,为select * from bai order by sal desc;

按照好多限制条件排序:select * from bai by sal ,deptno;(多加了一个部门号)

只显示排序后的前两行:select * from bai order by sal desc limit 2;(一般默认从第一行开始,第一行默认为0)

从第二行开始显示前4行:select * from bai order by sal limit 1,4;

 

  1. 查询表中薪水最大,统计总的人数,部门人数等等。

关键字:count(1),sum(),min(),max()

 

  1. 表连接:目前为止还不是很了解(表连接通常用来优化子查询);union(汇总,去掉重复的)和union all(汇总即可),一般涉及一个字段就可以了。如果要将两个表中的内容安全合成为一张表,需要用到的就是表连接了。
  2. 子查询的一些用法:关键字:in,=,.......(待研究)

 

 

三.DCL

定义访问权限和安全级别。对象权限。

 

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
数据库操作中,**DDL** 和 **DML** 是 SQL(结构化查询语言)中的两大类操作,它们分别用于定义数据库结构和操作数据库中的数据。 --- ### ✅ DDL(Data Definition Language):数据定义语言 用于**定义或修改数据库结构**,也就是创建、修改、删除数据库对象(如表、索引、视图等)。 #### 常用 DDL 命令: | 命令 | 说明 | |------|------| | `CREATE` | 创建数据库对象,如表、视图、索引等 | | `ALTER` | 修改已有数据库对象的结构 | | `DROP` | 删除数据库对象 | | `TRUNCATE` | 清空表中的所有数据(不可回滚,速度快) | | `RENAME` | 重命名数据库对象(部分数据库支持) | #### 示例: ```sql CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) ); ALTER TABLE users ADD COLUMN email VARCHAR(100); DROP TABLE users; ``` --- ### ✅ DML(Data Manipulation Language):数据操作语言 用于**操作数据库中的数据**,比如查询、插入、更新、删除数据。 #### 常用 DML 命令: | 命令 | 说明 | |------|------| | `SELECT` | 查询数据 | | `INSERT` | 插入新数据 | | `UPDATE` | 更新已有数据 | | `DELETE` | 删除数据 | | `MERGE` | 合并数据(部分数据库支持) | #### 示例: ```sql SELECT * FROM users; INSERT INTO users (id, name) VALUES (1, '张三'); UPDATE users SET name = '李四' WHERE id = 1; DELETE FROM users WHERE id = 1; ``` --- ### ✅ DDLDML 的主要区别 | 对比项 | DDL | DML | |--------|-----|-----| | 全称 | Data Definition Language | Data Manipulation Language | | 目的 | 定义/修改数据库结构 | 操作数据库中的数据 | | 是否自动提交事务 | 是(大多数数据库DDL 会自动提交) | 否(DML 通常在事务中执行,可回滚) | | 是否影响元数据 | 是 | 否 | | 常见命令 | CREATE、ALTER、DROP、TRUNCATE | SELECT、INSERT、UPDATE、DELETE | --- ### ✅ 补充说明 - **TRUNCATE** 虽然看起来像 DML 操作(清空数据),但它属于 DDL 操作,因为它会重置自增列,并且不能回滚。 - **DCL(Data Control Language)** 和 **TCL(Transaction Control Language)** 是另外两类 SQL 操作: - DCL:用于权限控制,如 `GRANT`、`REVOKE` - TCL:用于事务控制,如 `COMMIT`、`ROLLBACK`、`SAVEPOINT` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值