数据操作

增加数据,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);

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

  1. SQL大数据操作统计

    SQL大数据操作统计 1:select count(*) from table的区别SELECT object_name(id) as TableName,indid,rows,rowcnt FROM ...

  2. ODPS SQL <for 数据操作语言DML>

    基本操作: 查询: SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_co ...

  3. MySQL SQL DML (数据操作语言)

    包括 SELECT, UPDATE, DELETE, INSERT SELECT 从数据库表中获取数据 用法 SELECT name FROM students; SELECT name,age FR ...

  4. 使用SQL实现数据操作

    SQL和RDBMS的区别:用SQL操作RDBMS 一.数据的完整性 一个汉字占多少长度与编码有关: UTF-8:一个汉字=3个字节 GBK:一个汉字=2个字节 二.数据库基本操作 1. 登录数据库 首 ...

  5. SQL语句 - 数据操作

    表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化.因此如果查询语句不需要索引,就应该删除无用的索引以提高效率. 一.INSERT语句 1.基本插入语句 insert用于向表中输入数据,其具体 ...

  6. orcale 之 SQL 语言基础

    SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义 ...

  7. 数据库_8_SQL基本操作——数据操作

    SQL基本操作——数据操作 一.新增数据(两种方案) 方案1: 给全表字段插入数据,不需要指定字段列表,要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致,凡是非数值数据,都需要使用引号(建议是 ...

  8. [SQL]SQL语言入门级教材_SQL数据操作基础(二)

    SQL数据操作基础(初级) netnova 于 -- :: 加贴在 数据库探讨: 为了建立交互站点,你需要使用数据库来存储来自访问者的信息.例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简 ...

  9. sql数剧操作语言

    结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域, 得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件 ...

随机推荐

  1. data.table包简介

    data.table包主要特色是:设置keys.快速分组和滚得时序的快速合并.data.table主要通过二元检索法大大提高数据操作的效率,同时它也兼容适用于data.frame的向量检索法. req ...

  2. CSS3用法理解

    这里只概括了我对CSS3各属性的用法理解.具体每个属性的值,以及例子,看这里 (竟然每篇文章不能低于200字,不能低于200字不能低于200字不能低于200字不能低于200字....请无视)

  3. VR全景,零售业冬天里的一把火——全景智慧城市

    对今天的中国来说,寻找经济转型的突破口,寻找经济权力的新霸主,零售业应该当仁不让. 零售业正在经历一场脱胎换骨的改造.一方面零售额达到前所未有的水平,另一方面,传统零售商也面临诸多挑战,其中之一,便是 ...

  4. 网购的一套UI代码的始末

    引言: 一个商业项目的需要,又因为时间紧迫的关系,准备购买一套简洁,易用,可定制化强的UI,经过对国内外多家UI产品进行了对比, 包括:FineUI, EasyUI, EXT.NET, EXTJS, ...

  5. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  6. JAVA中使用JSONObject对象必备

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...

  7. [1] Report Fusioncharts

    图形报表之fusioncharts  

  8. Idea 常用功能汇总,工作中常用技巧

    1.隐藏没用到的文件 比如 IDEA 的项目配置文件(.iml 和.idea),打开 Settings-File Types, 加入要隐藏的文件后缀.  2.常用技巧 2.1 通过Alt+F8查看变量 ...

  9. navicat连接oracle 报 ORA-12737 set CHS16GBK

    1首先,我们打开“工具”-->"选项"菜单,见到如下界面,依据OCI library(oci.dll) 路径,导航到 navicat oci 目录下,备份里面的文件(通过在该 ...

  10. 流畅的python学习笔记:第五章

    在python中一切都可以视作为对象,包括函数.我们来看个例子: def function_try():     '''it is funciton try doc'''     print 'fun ...