mosh数据库——第四章

1.列属性|Column Attributes

打开设计模式

Column:列名称                                     
Datatype:数据类型
  1. INT:整数型(没有小数点)
  2. VARCHAR:可变字符variable                                                                                         [VARCHAR(50)就是说这列最多有50个字符(即使这列字符最长可以有50,也不会因为顾客名没到50字符浪费空间)]
  3. CHAR:character                                                                                                                      [CHAR(50)  如果顾客名只有5个字符,MySQL会再插入45个空格符填满这列,这样就很浪费空间],所以最好使用VARCHAR来储存字符串或值文本值
PK:主键 会有黄钥匙标识
NN: NOT NULL非空值(决定了该列是否可以写空值)
AI: 自动递增

(通常被用于主键列:每次在表中加入一条新数据,我们让MySQL或者数据库引擎在列中插入一个值,其实就是在最后一行加入一个顾客id {就会在加入新记录的同时,让顾客id加1})

Default/Expression:标注了每列的默认值

2.插入单行|Inserting a Single Row

会使用到INSERT INTO 语句

默认值:default

INSERT INTO customers
VALUES(
DEFAULT,
'John',
'Smith',
'1990-01-01',
NULL,
'address',
'city',
'CA',
DEFAULT)
INSERT INTO customers(
last_name,
first_name,
birth_date,
address,
city,
state) -- 可以选择必须要添加值的列,其他的默认
VALUES (
'Smith',
'John',
'1990-01-01',
'address',
'city',
'CA'
)

3.插入多行

INSERT INTO shippers (name)
VALUES ('Shipper1'),
       ('Shipper2'),
       ('Shipper3')

使用(),来连接

注意MySQL会自动为发货人id列生成值

INSERT INTO products (name, quantity_in_stock, unit_price)
VALUES ('Product1', 10, 1.95),
	   ('Product2', 11, 1.95),
	   ('Product3', 12, 1.95)

4.插入分层行

怎么往多张表中插入数据

 LAST_INSERT_ID()   最近生成插入的id

INSERT INTO orders (customer_id, order_date, status)
VALUES (1, '2019-01-02', 1);-- y要使用;终止第一句
-- SELECT LAST_INSERT_ID()
INSERT INTO order_items
VALUE (LAST_INSERT_ID(),1,1,2.95),
	(LAST_INSERT_ID(),2,1,3.95)

在这串代码中都是order_id

5.创建表复制

从一张表复制数据到另一张表

CREATE TABLE orders_archived AS
SELECT * FROM orders  -- 子查询

首先要创造这张新表|CREATE TABLE .... AS(创建表时,MySQL会忽略一些属性[主键,递增,等])

我们把选择语句称为子查询,子查询是部分属于另外一段SQL语句的选择语句

Truncate Table:清空表中的内容

INSERT INTO orders_archived
SELECT *
FROM orders
WHERE order_date < '2019-01-01'

复制表的内容: 可以把选择语句作为INSERT语句的子语句

CREATE TABLE invoices_archive AS -- 最后再写这一句
select invoice_id, 
number,
name as client,
invoice_total,
payment_total,
invoice_date,
due_date,
payment_date

from invoices i
join clients c
on i.client_id = c.client_id  -- USING(client_id)
where payment_date IS NOT NULL

6.更新单行

UPDATE invoices
SET payment_total = 10, payment_date = '2019-03-01'  -- DEFAULT填充默认值
WHERE invoice_id = 1
UPDATE invoices
SET
payment_total = invoice_total * 0.5,
payment_date = due_date
WHERE invoice_id = 3

 set后面更新的数据可以是具体的值或者是别的数据的值

UPDATE + 表名

SET +列名和值 (DEFAULT是默认值,外面可不加引号)

WHERE + 条件

7.更新多行

UPDATE invoices
SET
payment_total = invoice_total * 0.5,
payment_date = due_date
WHERE client_id = 3 -- client_id有多条时

只更新第一个client_id值为3的数据,如何全部更新:

去到上面的MySQL Workbentch菜单 然后 ..

点击Preferences(偏好)

在这个对话框的左侧,点击SqL Editor

然后在底部,取消勾选 Safe Update(安全更新【来防止意外更新和删除一些表记录】)

然后重新连接 My Sql instance

  • 复制所有的代码 关掉这个Local Instance窗口
  • 在主页面 双击这个Connection来重新连接
  • 贴贴代码,运行
UPDATE invoices
SET

payment_total = invoice_total * 0.5,
payment_date = due_date
WHERE client_id IN (3, 4) --3和4
-- 所以你们学过的所有可以用在WHERE子句中的运算符 也可以用在这里
USE sql_store;
UPDATE customers
SET points = points + 50
WHERE birth_date < '1990-01-01'

 8.在UpDate中用子查询

一个时,

UPDATE invoices
SET
payment_total = invoice_total * 0.5,
payment_date = due_date
WHERE client_id =
        (SELECT client_id
        FROM clients
        WHERE name = 'Myworks')

多于一个时,用IN

UPDATE invoices
SET
payment_total = invoice_total * 0.5,
payment_date = due_date
WHERE client_id IN
				(SELECT client_id
				FROM clients
				WHERE state IN ('CA', 'NY'))

有空值时

UPDATE invoices
SET
payment_total = invoice_total * 0.5,
payment_date = due_date
WHERE payment_date IS NULL

9.删除行

我们用DELETE FROM语句 用来删除表记录

用WHERE来筛查条件(不用WHERE的话,会被全部删除)

DELETE FROM invoices
WHERE client_id = (
					SELECT client_id
					FROM clients
					WHERE name = 'Myworks'
					)

10.恢复数据库

找到file

打开sql脚本

删除之前的,重新运行SQL文件

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MOS管H桥电路是一种常用于电机驱动的电路,由四个MOS管组成。其中两个MOS管(一般记作Q1和Q2)被称为上半桥,另外两个MOS管(一般记作Q3和Q4)被称为下半桥。这四个MOS管通过适当的PWM控制信号由一个控制器驱动。 原理图中上半桥和下半桥的MOS管分别串联在一个电机的两个端,并通过共享的正负电源线路供电。上半桥的Q1管和Q2管是互补开关,用于控制电机的正向和反向转动。当Q1导通时,电流通过电机的正向分支;当Q2导通时,电流通过电机的反向分支。这样通过两个管子的导通,就可以实现电机正向和反向的转动。 下半桥的Q3管和Q4管也是互补开关,用于控制电机的制动和惯性刹车。当Q3导通时,电流通过电机,产生制动力矩;当Q4导通时,对电机施加反向电压,使电机停止转动。这样通过下半桥开关的控制,可以对电机进行制动和停止。 控制器通过PWM信号控制MOS管的导通和关断时间,从而可以调节电机的转动速度和转向。PWM信号的占空比决定了每个开关周期中导通和关断时间的比例,从而控制电机的平均电压和电流。这样可以实现对电机的精确控制,使其具有更好的动态性能和效率。 MOS管H桥电路广泛应用于各种电机驱动中,如电动车、机器人、工业自动化等。它的原理简单、可靠性高,可以提供高功率输出,并且具有较低的功率损耗和噪音。因此,MOS管H桥电路在现代电力电子技术中有着重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值