MySql知识点总结

2024-09-05

MySql知识点总结(精选7篇)

1.MySql知识点总结 篇一

-03-03MYSQL中获取得最后一条记录的语句

-07-07mysql 常用数据库语句 小练习

-04-04MySQL复制的概述、安装、故障、技巧、工具(火丁分享)

2011-02-02MySQL 4.0 升级到mysql 5.0的方法

2011-11-11MySQL DBA 常用手册小结

-05-05解析SQLite中的常见问题与总结详解

2013-04-04跟着hsp一步步学mysql优化的方法

2013-12-12centos下mysql主从复制设置详解

-03-03不重启Mysql修改root密码的方法

2011-06-06win mysql单向同步配置步骤[已测]

2.MySql知识点总结 篇二

我们已经知道了如何开始和结束与服务器的会话,现在应该看看如何控制会话,本节介绍了如何与服务器通信以处理查询。执行的每个查询应包括以下几步:

1) 构造查询。查询的构造取决于查询的内容—特别要看是否含有二进制数据。

2) 通过将查询发送到服务器执行来发布查询。

3) 处理查询结果。这取决于发布查询的类型。例如, SELECT 语句返回数据行等待处理,INSERT 语句就不这样。构造查询的一个要素就是使用哪个函数将查询发送到服务器。较通用的发布查询例程是mysql_ real _ query ( )。该例程给查询提供了一个计数串(字符串加上长度)。必须了解查询串的长度,并将它们连同串本身一起传递给mysql_real_query() 。因为查询是一个计数的字符串,

所以它的内容可能是任何东西,其中包括二进制数据或者空字节。查询不能是空终结串。另一个发布查询的函数, mysql_ query ( ),在查询字符串允许的内容上有更多的限制,但更容易使用一些。传递到mysql_query() 的查询应该是空终结串,这说明查询内部不能含有空字节(查询里含有空字节会导致错误地中断,这比实际的查询内容要短)。一般说来,如果查询包含任意的二进制数据,就可能包含空字节,因此不要使用mysql_ query( )。另一方面,当处理空终结串时,使用熟悉的标准C 库字符串函数构造查询是很耗费资源的,例如strcpy ( )和sprintf( )。

构造查询的另一个要素就是是否要执行溢出字符的操作。如果在构造查询时使用含有二

进制数据或者其他复杂字符的值时,如引号、反斜线等,就需要使用这个操作。这些将在

6.8.2节“对查询中有疑问的数据进行编码”中讨论。

下面是处理查询的简单轮廓:

mysql_query() 和mysql_real_query() 的查询成功都会返回零值,查询失败返回非零值。查询成功指服务器认为该查询有效并接受,而且能够执行,并不是指有关该查询结果。例如,它不是指SELECT 查询所选择的行,或DELETE 语句所删除的行。检查查询的实际结果要包括其他的处理。

查询失败可能有多种原因,有一些常见的原因如下:

■ 含有语法错误。

■ 语义上是非法的—例如涉及对表中不存在的列的查询。

■ 没有足够的权利访问查询所引用的数据。

查询可以分成两大类:不返回结果的查询和返回结果的查询。INSERT、DELETE和UPDATE等语句属于“不返回结果”类的查询,即使对修改数据库的查询,它们也不返回任何行。可返回的唯一信息就是有关受作用的行数。SELECT 语句和SHOW 语句属于“返回结果”类的查询;发布这些语句的目的就是要返回某些信息。返回数据的查询所生成的行集合称为结果集,在MySQL中表示为MYSQL_RES 数据类型,这是一个包含行的数据值及有关这些值的元数据(如列名和数据值的长度)的结构。空的结果集(就是包含零行的结果)要与“没有结果”区分开。

6.6.1处理不返回结果集的查询

处理不返回结果集的查询,用mysql_query() 或mysql_real_query() 发布查询。如果查询成功,可以通过调用mysql_ a ffected_rows() 找出有多少行需要插入、删除或修改。下面的样例说明如何处理不返回结果集的查询:

请注意在打印时mysql

3.MySql知识点总结 篇三

你可以通过自行医函数接口 (UDF)来添加函数,自定义函数被编译为目标文件,然后用CREATE FUNCTION 和DROP FUNCTION 声明动态地添入到服务器中及从服务器中移出。

你可以将函数添加为MySQL固有(内建)函数。固有函数被编译进mysqld服务器中,成为永久可用的。

每种途径都有其优点和缺点:

如果你编写自定义函数,你除了安装服务器本身之外还要安装目标文件。如果将你的函数编译进服务器中,你就不需要这么做了。

你可以给二进制版本的MySQL分发版添加UDF。固有函数需要你去修正源码分发版。.

如果你升级你的MySQL分发版,你可以继续使用先前安装了的UDF, 除非你升级到一个UDF接口改变了的新版本。对固有函数而言,每次升级你都必须重复一次修正。

无论你使用哪种方法去添加新函数,它们都可以被SQL声明调用,就像 ABS 或 SOUNDEX()这样的固有函数一样,

另一个添加函数的方法时创建存储函数。这些函数时用SQL声明编写的,而不是编译目标代码。编写存储函数的语法在第20章:存储程序和函数 中描述。

下面的小节描述UDF接口的特性,给出编写UDF的指令,并讨论MySQL为防止UDF被误用而采取的安全预防措施。

给出源代码的例子来说明如何编写UDF,可以看一看MySQL源码分发版中提供的sql/udf_example.cc 文件。

4.MySql知识点总结 篇四

本文把重点放在一些不太常见的MySQL数据比较函数和运算符上,讨论它们可以被如何运用在应用程序里比较表格字段里的字符串、数字和日期/时间或者用户提供的值。

BETWEEN

BETWEEN运算符是测试在某个范围内是否存在一个数值或者日期值的有用方式。这个运算符接受两个参数——最大值和最小值,并测试所提供的值是否在这两个值的范围之内。如果在这个范围之内,运算符就返回一个布尔值——真;否则,它就返回一个伪值。下面就是一个例子:

mysql>SELECT 2350 BETWEEN 100 AND 10000;

+----------------------------+

| 2350 BETWEEN 100 AND 10000 |

+----------------------------+

| 1 |

+----------------------------+

1 row in set (0.18 sec)

下面两个例子用到了日期值:

mysql>SELECT 0405 BETWEEN 20060101 AND 0101;

+----------------------------------------+

| 20060405 BETWEEN 20060101 AND 20070101 |

+----------------------------------------+

| 1 |

+----------------------------------------+

1 row in set (0.00 sec)

mysql>SELECT 20060405 BETWEEN 20060101 AND 20060401;

+----------------------------------------+

| 20060405 BETWEEN 20060101 AND 20060401 |

+----------------------------------------+

| 0 |

+----------------------------------------+

1 row in set (0.00 sec)

GREATEST和LEAST

GREATEST和LEAST运算符为判断一组数字或者时间值中最大和最小值提供了一个便捷的途径。你一看名字就知道这两个运算符的作用——下面是一个对一组日期使用GREATEST运算符的例子:

mysql>SELECT GREATEST(0601, 20000529, 20000604);

+----------------------------------------+

| GREATEST(20000601, 20000529, 20000604) |

+----------------------------------------+

| 20000604 |

+----------------------------------------+

1 row in set (0.00 sec)

而下面是一个对一组数值使用LEAST运算符的例子:

mysql>SELECT LEAST(100, 200, 50, -6, -73, 1

5.Mysql常用语句小结 篇五

2.Doc系统下进入Mysql

mysql-u用户名-p密码

3.常用的命令:

1.查看mysql下所有的数据库:show databases;

2.创建数据库的命令:create database 数据库名称;

3.选择数据库:use 数据库名称;

查看所选择的数据库命令:select database();

====================表操作====================================

4.查看数据库中所包含的表:show tables;

5.创建表的命令:create table 表名(字段名 字段类型(字段长度).....);

6.字段类型:int,char,varchar,date,timestamp,double...(int 不准确)(double两个 参数1为共有几位,2为小数)

列类型显示格式

TIMESTAMP(14)YYYYMMDDHHMMSSTIMESTAMP带有时分秒

TIMESTAMP(12)YYMMDDHHMMSS

TIMESTAMP(10)YYMMDDHHMM

TIMESTAMP(8)YYYYMMDD

TIMESTAMP(6)YYMMDD

TIMESTAMP(4)YYMM

TIMESTAMP(2)YY

7.查看表结构的命令:desc 表名;

show columns from 表名;

8.向表中增加字段命令:alter table 表名 add 字段名 字段类型(字段长度)其他;

9.删除表中的字段命令:alter table 表名 drop 字段名;

10.更改字段名命令:alter table 表名 change old字段名 new字段名 字段类型(长度);

11.更改字段类型命令:alter table 表名 modify 字段名 字段类型;

12.更改表名命令:alter table 表名 rename 新表名;

13.删除表的命令:drop table 表名;

====================基本SQL语句============================

14.插入命令:

部分插:

insert into 表名(字段1,字段2...)values(字段1类型值,字段2类 型值...);

全插:

insert into 表名 values(...);

15.修改命令:

update 表名 set 字段=字段值 where 条件;

16.删除命令:

delete from 表名 where 条件;(清空记录)

======================查询(单表查询)======================

17.查询命令:

select 字段1,字段2...from 表名 where 条件;

select * from 表名----->*代指是全部的字段,顺序表中字段顺序

a>运算符:+,-,*,/

例:从emp表中,查询所有员工年薪加年终奖500的结果从emp表中,查询所有员工工资涨500之后的年薪b>列别名:

select 字段名 [as] 别名 from..c>..and..--->且

d>..or..--->或

e>id in(1,2)--->id=1 or id=2

f>not in()

g>between...and..h>like_,%

i>limit len

limit startIndex,len;

j>is , is not

k>distinct

18.order by排序asc(升序默认)desc(降序)

19.group by

分组函数:

sum,avg,max,min,count(*),count(字段)

查询比部门1中所有员工工资高的所有员工姓名;

20.having子句

对group by分组后再次筛选的条件

21.子查询

where语句中的select语句

========================多表联查======================

22.等值连接wherejoin on

23.表别名

mysql> select e.ename,d.dname,e.deptno from emp e,dept d wheree.deptno=d.deptno;

join...on...mysql> select e.ename,d.dname,e.deptno from emp e join dept d one.deptno=d.deptno;

24.自连接

显示所有员工以及员工经理名称;

mysql> select e.ename,g.ename from emp e,emp g where e.mrg=g.eno;

25.外连接

左外连接

A left join B on 条件

显示所有A的记录,以及符合条件的B记录

mysql> select e.ename,g.ename from emp e left join emp g one.mrg=g.eno;

6.MySql知识点总结 篇六

普通的mysql连接肯定是会被抛弃的 因为每次都要防止sql注入的问题 而且相对来说比较慢。

mysqli是在普通mysql的基础上做的一次优化,说实话很成功,预处理方式完全解决了sql注入的问题。但是唯一的不足点 就是只支持mysql数据库。当然,如果你要是不操作其他的数据库,这无疑是最好的选择。

PDO则是最新出来的一种,连接方式兼容大部分数据库,也解决了sql注入,

但是也有缺点,它只支持php5以上的版本(不过听说在未来的php6中只支持这种连接)。

PDO统一所有数据库抽象层对象接口,mysqli只统一mysql的。简单说,PDO可以实现同样的代码对不同数据库的操作,例如你从mysql迁移到mssql,程序基本不需要改动。而mysqli简单理解未mysql的封装就好。

在高负载的情况下,PDO开启长连接能够得到一个相对稳定的负载“值”。但是效率却不是最高的。 mysql最快。mysqli其次。只是mysql和mysqli在高并发、系统高负载的时候,其所承担的负载也是很可观的。PDO则不会。

7.MySql知识点总结 篇七

VALUES(%,jeffrey,PASSWORD(iscuit));

mySQL> FLUSH PRIVILEGES

确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mySQL中文参考手册》里有这个例子,所以我也就写出来了,

上一篇:售后服务标准化下一篇:广州番禺职业技术学院2013年面向中职自主招生专业综合理论和专业技能考核考试大纲【旅游管理专业】