MYSQL基本操作-管理数据表数据

插入记录

insert 属于DML语句(数据操纵语句)

INSERT INTO <表名> [ <列名1> [ , … <列名n>] ]
VALUES (值1) [… , (值n) ];
  • <列名>:可以不指定,默认指定表的所有列名

  • values:字段有多少个,值就要有多少个,且顺序要对应,否则会报错

1. 为表的所有字段插入数据

使用基本的 insert语句插入数据要求指定表名称和插入到新记录中的值。基本语法格式为

insert into tb_name (col_list) values (val_list);
insert into tb_name values (val_list);

『示例』向 bookshop数据库的表 customers插入如下的数据。

 insert into customers
      ( cid, 
        ctruename, 
        cpassword, 
        csex, 
        caddress, 
        cmobile, 
        cemail, 
        cregisterdate,
        cnickname)
 values
      ( 'c0011', 
        '李 平', 
        '123456', 
        '女', 
        '广东中山市', 
        '1351543876', 
        'liping163.com', 
        '2009-9-6' 
        'shjii');

附:django的orm示例

from datetime import datetime
from customers.models import Customers

customer = Customers(
    cid='c0011',
    ctruename='李 平',
    cpassword='123456',
    csex='女',
    caddress='广东中山市',
    cmobile='1351543876',
    cemail='liping163.com',
    cregisterdate=datetime.strptime('2009-9-6', '%Y-%m-%d'),
    cnickname='shjii'
)
customer.save()

或者

insert into customers
values
     ( 'c0012', 
       '战士', 
       '1234567', 
       '男', 
       '广东中山市', 
       '13599900876', 
       'djskjk163.com', 
       '2009-9-6',
	   'buyu');

2. 为表的指定字段插入数据

『示例』新顾客信息录入,顾客信息地址 address和电子邮箱cemail尚缺,只能将该顾客的部分信息如表所示添 加到 customers表中。

insert into customers
( cid, ctruename, cpassword, csex, cmobile, cregisterdate )
 values
( c0012, 张先明, 23456, 男, 13513452312, 2009-10-6 );

3. 同时插入多条记录

『示例』如果想一次性插入多条, 可以这样…

insert into customers values
    (
       'c0014', 
       '韩志国', 
       '123456', 
       '男', 
       null, 
       '13512134256', 
       'al63com', 
       '2010-1-16',
	   'buyu1'
       ), (
       'c0015', 
       '张小明', 
       '123456', 
       '男', 
       null, 
       '13613434256', 
       'zma163.com', 
       '2010-2-24',
	   'buyu2');

4. 复制表数据来插入

insert into <表名> [<字段名>,<字段名>..] select ....
INSERT INTO customers (cid, ctruename, cpassword, csex, cmobile, cregisterdate ) SELECT
'c0080',
ctruename,
cpassword,
csex,
cmobile,
cregisterdate
FROM
    customers 
WHERE
    cid = 'c0011';

修改记录

update 也是DML语句哦(数据操作语言)

  • 多指定多个字段,需要用 , 隔开

  • 如果修改的字段有默认值,可以用 default 来设置字段的值,如: name = default ,这样就会把字段的值修改成默认值

  • where 就不用多说了,一般 update 数据都会指定条件

  • 添加 limit 是为了限制被修改的行数,加不加都行

UPDATE
	表名
SET
	列=新值,
	列=新值,
	...
WHERE
	筛选条件

修改表中的全部数据

update customers;
set csex = '男';

根据条件修改表中的数据

update customers;
set cpassword = 123456789 where csex = '男';

附:django的orm示例

from customers.models import Customers

Customers.objects.filter(csex='男').update(cpassword='123456789')

删除记录

  • delete 也属于DML语句(数据操纵语句)

DELETE FROM <表名> [WHERE 子句] [LIMIT 子句]
  • where 就不用多说了,一般 delete 数据都会指定条件

  • 添加 limit 是为了限制被删除的行数,加不加都行

根据条件删除表中的数据

delete from customers where csex = '男'

附:django的orm示例

from customers.models import Customers

Customers.objects.filter(csex='男').delete()

删除表中的全部数据

『示例』删除商品信息表中的所有信息。完成语句如下所示。

delete from customers;

切记, update和delete如果没有where条件, 后果会很严重…

数据练习举例来源于:猫哥的技术博客