SQL语言-----数据操作

数据操作

增加数据,insert into

标准格式

insert into 表名 (字段的列表)value(数据列表);

使用set

insert into 表名 set 字段1=值,2.....;

从其他数据表取数据插入

insert into 表名 (字段列表)select;

和insert into一样也是分在种,标准写法,set语法,从其它表取数据

标准方式

replace into 表名 (字段的列表) values (数据列表)

使用set:

replace into 表名 set 字段1=值1, ……

从其它数据表取数据插入:

replace into 表名 (子段列表) select

和insert into的区别:

Insert into是直接插入,replace into是先判断表中的主键或唯一索引字段是否有和插入数据相应字段的值一样的数据,它就会变成修改!(它会先删除旧数据,然后再写入一条新数据)

如果没有一样的数据,它就会插入一条新数据。

如果准备插入数据的表没有任何主键或唯一索引,则repalce into会直接插入新数据。

它就不判断了!

替换的例子

插入新数据的例子

影响多条数据的例子

发现有两个重复的记录,一个和id为6的记录,还有一个是username为新插入值的那条id为8的数据。

它怎么处理呢?

它会先删除重复的两条数据,再插入一条新数据。因此影响了3行记录!

Replace into在数据有重复的时候,它不等同于update!

查询数据,select

格式:select *或字段列表 from 表名 where 条件

查询是千变万化的。

查询所有数据:

select * from t1;

查询部分数据,加条件

只查询部分字段的内容

修改数据,update

格式:update 表名 set 字段名=新值, ……. Where 条件 order by .. limit ..

思考一下:如果不加where条件会出现什么结果呢?

结果是,把数据里所有的记录都进行了更新!

可以加where   order by    limit

删除数据,delete

格式:delete from 表名 where .. order by .. limit ..

如果你不是想把表中所有数据都删除,一定要记得写where条件!

不写where的情况,会删除所有数据

可以加更多条件

快速删除所有数据,truncate

格式:truncate 表名;

等同于,delete from 表名;

区别:

  1. Truncate是直接把表删除,然后再重建表结构。优点是速度快。比一行一行删除快。
  2. 不会返回受影响的行数。
  3. Auto_increment自动增量的字段恢复初值。

字符集和校对规则

字符集:一套符号和字符编码的集合。

Gbk utf8 latin1

校对规则:在字符集内用于比较字符的一套规则。

字符在数据库里有四个等级

服务器级:安装数据库时指定的

数据库级:建立database时指定或者继承服务器级

数据表级:建立table时指定或者继承数据库级

字段级:建立数据表时定义字段指定的字符集或者继承表的字符集

因此我们根据我们的项目或网站,安装数据库时最好用我们定好的编码。比如utf8或gbk

创建表可以只指定表的字符集,这时字段会使用表指定的字符集

也可以同时指定表和字段的字符集

客户端的字符集

我们启动一个新客户端,查看数据表中的数据,结果是乱码!

我们查看一下关于编码的变量

Character_set_client  客户端使用的编码

Character_set_connection  数据库连接使用的编码

Character_set_results      返回结果使用的编码

这三个变量的设置影响到数据是否是乱码

数据库返回的数据显示是乱码,怎么做?

方法:设置character_set_results为客户端正确的编码

我们进行数据的插入,会不会有问题呢?

原因是什么?

就是客户端明明是gbk的编码,现在却告诉数据库编码是utf8

Character_set_client现在是utf8!

解决方法:设置客户端编码变量为正确的值

Set character_set_client=gbk;

结论:因此如果客户的这两个变量设置正确,那么无论插入数据还是读数据,都不会乱码!

拿PHP来说,就是你的PHP文件保存成什么格式,你的客户端就是什么编码!

我们把这三个变量可以合成一个:

Set names gbk;

Set names utf8;

create table t2

(

id int unsigned auto_increment primary key,

username varchar(20) not null unique key,

nickname varchar(20) character set utf8

) default character set gbk;

有的同学会不会有疑问,我数据表字段的编码会不会影响客户端的数据插入和显示?

客户端不会出现乱码的情况,原因是数据库会根据客户端的编码进行正确的转换。

总结:

  1. 首先我们要确认我们的客户端是什么编码。命令行客户端看属性。PHP文件在保存编码。
  2. 根据客户端编码,用set names gbk或utf8设置编码

就不会有乱码发生了!

PHP操作MYSQL数据库

  1. 配置php.ini支持mysql扩展

然后还要把扩展库的路径指定正确

  1. 然后重启apache

如何确定MYSQL函数可用?

用phpinfo()来查看

看到下面的内容,就证明配置正确

  1. 写程序连接操作数据库

//先连接数据库(并认证)

Mysql_connect(‘localhost:3306’, ‘root’, ‘123456’);

//根据你的文件编码设置正确的编码,通知数据库

$conn = Mysql_query(“set names gbk”);         //彻底搞定乱码!

Mysql_query(‘use itcast’);

Mysql_query(‘show databases’);

//………

$result = Mysql_query(‘select * from t2’);

While($row = Mysql_fetch_assoc($result)) {

Print_r($row);

}

Mysql_close($conn);

时间: 2024-12-17 08:07:38

SQL语言-----数据操作的相关文章

R语言数据操作之apply系列

1 ###################R语言中apply类型问题 2 data<-data.frame(x=c(1,2,3,4),y=c(2,3,4,5),z=c(5,6,7,8)) 3 apply(data,2,mean)##apply针对数据框 4 lapply(data,mean)##lapply针对list,当然对dataframe也有效 5 data1<-list(a=1:10,b=exp(-3:3),c=c(FALSE,FALSE,FALSE)) 6 lapply(data1,

SQL DML数据操作语言 教程

数据操作语言(Data Manipulation Language)用于操作表中的数据,包括插入(INSERT).修改(UPDATE).删除(DELETE)以及合并(MERGE).虽然我们使用最多的是查询语句,但生成数据是进行查询分析的前提:应用程序通常也需要使用 DML 语句进行业务数据的操作. SQL 数据操作语言 SQL DML增加数据 SQL DML修改数据 SQL DML删除数据 SQL DML合并数据 原文地址:https://www.cnblogs.com/numpycomcn/p

SQL语句 - 数据操作

表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化.因此如果查询语句不需要索引,就应该删除无用的索引以提高效率. 一.INSERT语句 1.基本插入语句 insert用于向表中输入数据,其具体的语法结构如下: INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 整个语法结构如下: INSERT [TOP (<expres

orcale 之 SQL 语言基础

SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义的功能 SQL 的数据定义功能通过数据定义语言(Data Definition Langulage, DDL)实现.一般可以定义数据库的逻辑结构,包括定义表,视图,索引.基本的 DDL 包括三大类:定义,修改和删除,分别对应 CREATE,ALTER 和 DROP 三条语句. 数据查询的功能 SQL

数据存储——SQLite数据库存储——SQL语句——DML数据操作语言、内置函数聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f

SQL入门-DML数据操作语言

DML数据操作语言 1.针对数据行的操作 加大 -U 使用严格模式,限制update 和where语句 mysql -uroot -p -U 严格模式下删除数据需要使用索引,作为条件才能删除 mysql> delete from anyux.test; ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column--

数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)

关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构. 主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主键.主键有两个特点:非空和不能重复. 外键:在关系型数据库中,外键就是用来表达表与表之间的关系.联系,通过主外键关系,建立实体之间的联系. 表之间的三种基本关系模型: ① 一对多关系: 一条主表记录对应多条从表记录,一条从表记录对应一条主表记录. ② 一对一关系: 一条主表记录对应一条从表记录,一条从表记录对应一条主表记录. ③ 多对多关系: 一条主表记录

sql数剧操作语言

结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域, 得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等. 什么是 SQL? SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 SQL 能做什么? SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL

SQL语言学习-数据定义语言

Sql语言至今已经有6个版本.SQL查询语言包括了所有对数据的操作命令,这些操作可分为四类:数据定义语言(DDL).数据操纵语言(DML).数据控制语言(DCL)和嵌入式SQL语言. 数据定义语言(Data Defination Language)用于定义数据库对象.基本的DDL命令包括:Create.alter.drop. 数据操纵语言(Data Manipulation Language)用于数据的检索和数据的更新,数据更新包括:Insert.Delete.Update.数据检索由Selec