mySQL3——行列表属性(code with mosh)

列属性|column attribute

在这里插入图片描述INT : integer value 整数值
VARCHAR(50):variable character ,可变字符,最多50个字符
CHAR(50):固定50个字符
PK:primary key ,标记了每一个顾客
NN:not null,是否可以排除空值,如果选中则该列必须有数值
AI:auto increment,pk会有AI,插入新值后会自动增长
Default/Expression:如果不提供值,默认值为0

插入单行|inserting a single row

INSERT INTO customers
VALUES ( DEFAULT, 'a', 'b', DEFAULT, DEFAULT, 'a', 'b','c',  DEFAULT)

INSERT INTO : 插入一行至xx表
VALUES:输入该表的数值,字符和日期要用引号标记,属性为NN的列可以使用DEFAULT,输入默认值或不输入为null。

INSERT INTO customers (first_name, last_name, address, city, state)
VALUES ( 'a', 'b', 'a', 'c', 'a')

在INSERT INTO 表( ),括号中输入列名,VALUES( ),括号中输入上面列的值,效果相同,列名顺序可更改,只要和值一一对应即可。
输入值时务必关注列属性。

插入多行|inserting multiple rows

INSERT INTO shippers (name)
VALUES ('1'),
       ('2'),
       ('3')

语句与插入单行相同,VALUES后用括号隔开插入的值即可。
输入值时务必关注列属性。

插入分层行|inserting hierarchial

INSERT INTO orders (customer_id, order_date, status)
VALUES (1, '2019-01-01', 1);

INSERT INTO order_items 
VALUES (LAST_INSERT_ID(), 1, 1, 2.95),
	   (LAST_INSERT_ID(), 2, 1, 2.95)

代码含义:在order表中插入新的一行,在order_items表中,LAST_INSERT_ID的含义是order表中的最后一行的ID,给这个ID赋予了两行数值。

创建表复制|creating a copy of a table

CREATE TABLE order_new AS 
SELECT * FROM orders

CREATE TABLE A AS,A是新创建的表
SELECT * FROM B,B是要复制的表
SELECT后面可以使用WHERE限制条件

更新单行|updating a single row

UPDATE invoices
SET payment_total = 10, payment_date = '2019-03-03'
WHERE invoice_id = 3

UPDATE 表
SET 列名和新的值
WHERE 选择pk标记的id

更新多行|updating multiple rows

UPDATE customers
SET points = points + 10
WHERE birth_date < '1990-01-01'

与更新一行逻辑相同,只不过where下设置了条件方便多选。

在update中使用子查询来更新多行|using subquries in updates

SET comments = 'gold customer'
WHERE customer_id IN 
	  (SELECT c.customer_id
      FROM
      (SELECT c.customer_id
       FROM customers c
       LEFT JOIN orders o
	   USING (customer_id)
       WHERE points > 3000) AS a)

与更新多行逻辑相同,通过where下设置字子查询来选中多个值,来进行多行更新,详见博文——mySQL报错"You can’t specify target table ‘orders’ for update in FROM clause"的解决方案。

删除行|deleting rows

DELETE FROM invoices
WHERE invoice_id = 1

与更新的逻辑相同,也可以加入子查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值