SQL语句进阶学习四

  • 数据插入
  • 1)insert关键字
  • 2)插入完整行
  • a.方法一:完整插入每个字段的数据,存在空值以null代替。
  • b.方法二:选择性插入字段值。未选择插入的字段插入null值。
  • 4)插入多行数据
  • a.方法一:使用两条insert语句,一起提交。中间以;号隔开。
  • b.方法二:每一组值以()括号隔开,中间以,号隔开。
  • 6)插入检索出来的数据:即将检索出来的数据插入表格中。
  • 更新数据
  • 1)使用update语句,注意update语句一定要使用where语句,否则就是更新表中的所有行。一定要确定更新条件。
  • 2)基本使用
  • 3)使用子查询进行更新
  • 4)ignore关键字
  • 5)使用update语句逻辑删除数据
  • 删除数据
  • 1)使用delete关键字,注意delete语句一定要带where子句,否则就是删除表中的所有行。一定要确定删除条件。
  • 2)基本使用
  • 3)更快的删除:使用truncate table语句。删除表中的所有的行。
  • 更新和删除数据的指导原则
  • 表的创建
  • 1)使用create table语句
  • 2)使用
  • 3)指定默认值
  • 4)引擎类型
  • 5)更新表格
  • 1.增加表格列
  • 2.删除表格列
  • 删除表
  • 重命名表格


数据插入

1)insert关键字
2)插入完整行
a.方法一:完整插入每个字段的数据,存在空值以null代替。

sqlite表中已存在要添加的列 sql向已有表中添加数据_MySQL中表格的操作


insert语句不会产生任何的返回。第一个null值为id值,为自动增长。

b.方法二:选择性插入字段值。未选择插入的字段插入null值。

sqlite表中已存在要添加的列 sql向已有表中添加数据_数据_02


sqlite表中已存在要添加的列 sql向已有表中添加数据_MySQL中数据插入_03


1.其中id值为自动增长类型,无需对其进行赋值。

2.当字段列中,允许使用null值时,不插入字段值就以null代替。

3.当字段列中,有默认值时,不插入字段值就以默认值代替。

4.当字段列中,未设置允许使用null值且未设置默认值,而字段值又未插入,则会报错。

5.当多个用户访问数据库时,可能需要对操作进行优先级排序。使用low_priority降低insert语句的优先级。insert low_priority into

4)插入多行数据
a.方法一:使用两条insert语句,一起提交。中间以;号隔开。

sqlite表中已存在要添加的列 sql向已有表中添加数据_sqlite表中已存在要添加的列_04

b.方法二:每一组值以()括号隔开,中间以,号隔开。
insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country) values('Pep E','100 Main Street','Los Angeles','CA','90046','USA'),

(‘M.Martian’,‘42 Galaxy Way’,‘New York’,‘NY’,‘11213’,‘USA’);
这种方式可以提高insert语句的性能,因为插入单条insert语句比插入多条insert语句快。

6)插入检索出来的数据:即将检索出来的数据插入表格中。
insert into customers (name) select name from new_customers where id = 9;

语句由insert into和select语句共同组成。这条语句插入多少行取决于select语句检索出多少行。当检索出来的结果为空,语句也不会发生错误,表示没有行插入。

更新数据

1)使用update语句,注意update语句一定要使用where语句,否则就是更新表中的所有行。一定要确定更新条件。
2)基本使用

sqlite表中已存在要添加的列 sql向已有表中添加数据_MySQL中数据删除和更新_05


where语句对更新条件进行过滤,否则就是对整列进行过滤。

3)使用子查询进行更新
update t_right set name =  (select name from t_fenshu where id = 11) where id = 5;

更新的数据由select语句提供。

4)ignore关键字

当update语句更新多行数据时,有一行或者多行发生错误,则整个update更新语句取消。使用update语句则可以即使发生错误,仍然继续进行更新操作。
update ignore table set…

5)使用update语句逻辑删除数据

sqlite表中已存在要添加的列 sql向已有表中添加数据_MySQL中数据删除和更新_06

删除数据

1)使用delete关键字,注意delete语句一定要带where子句,否则就是删除表中的所有行。一定要确定删除条件。
2)基本使用

sqlite表中已存在要添加的列 sql向已有表中添加数据_MySQL中表格的操作_07


delete删除是特定行,若要删除整列,则要使用update语句。

3)更快的删除:使用truncate table语句。删除表中的所有的行。

更新和删除数据的指导原则

1.where过滤条件时,尽量使用主键过滤。
2.在使用update和delete语句前,先使用select语句对其过滤条件进行核查是否正确。
3.使用update和delete语句必须带有where子句。

表的创建

1)使用create table语句
2)使用

sqlite表中已存在要添加的列 sql向已有表中添加数据_sqlite表中已存在要添加的列_08


1.每个表中,只允许有一个auto_increment的列,而且这个列必须被索引。

2.当新增一条数据,不知道主键是多少时,可以使用select last_insert_id()函数获得新增的id值。

3)指定默认值
create table customes (cust_id int not null auto_increment,quantity int not null default 1)

对指定列quantity设置默认值1。

4)引擎类型

1.使用engine = 语句对其引擎类型进行选择。

sqlite表中已存在要添加的列 sql向已有表中添加数据_MySQL中数据插入_09

5)更新表格
1.增加表格列

sqlite表中已存在要添加的列 sql向已有表中添加数据_MySQL中数据插入_10

2.删除表格列

sqlite表中已存在要添加的列 sql向已有表中添加数据_数据_11


对表格进行增删列时,先对原有表格数据备份。

删除表

sqlite表中已存在要添加的列 sql向已有表中添加数据_数据_12

重命名表格

sqlite表中已存在要添加的列 sql向已有表中添加数据_sqlite表中已存在要添加的列_13