读MYSQL必知必会的总结

看到了mysql必知必会

总结了以下几个以后很有可能用到的知识点:

1.在检索多列的时候,需要再列名之间用“,”进行分开,最后的列名后面不加。

select id,uid,name from 表名;      select* form 表名 代表检索所有的列

2.在检索指定从第几行开始后的几行

select id from 表名 limit 3,4;第3行开始的后4行,要注意的是检测出来的第一行为0.

3.可以用 order by 语句对检测数来的进行排序,因为数据会受到修改编辑的影响导致顺序错乱。

4.同理,行的检索。在列 select id,uid,name from 表名 order by name ,uid 进行排序(接下来就是对order by的延伸,比如指定关键字进行排序,用DESC)

5.利用我们在TP中常用的where。 select id,name from 表名 where name XX

只会返回名字XX的数据,而且只会返回id name两列,where语句的大小于比较使用的还是 > < = (where列名is null可以用于检测该列数据为空的数据)

6.当使用where进行条件筛选的时候,可以用AND进行删选条件的增加。OR的话是让MYSQL检索匹配任一条件进行。AND的优先级高于OR,在进行组合的时候需要注意。

7.where 可以用In来进行数据过滤:where 条件 in (1,2)(一般是指范围);类似于OR的功能。NOT可放在IN进行否定的条件筛选。

8.通配符,用于查询未知范围或数值的的数据。需要用到LIKE进行操作。

例:where uid like “ab%” 就会出现ab123 ab222等等;注意点是数据搜索的时候是最好尾部加一个%避免空格的影响。”_”和”%”类似,但是”_”只能对一个字符进行筛选。

9.正则表达式 where id REGEXP “.000”将解锁出1000.2000.3000......

如果我们的id数据有1000和2000

(1)where id LIKE 1000,返回为空;(2)where id REGEXP 1000,返回1000

10.OR在正则中表现形式为 where id REGEXP”1000|2000”

匹配字符 where id REGEXP “[123]people”

如果数据存在,id输出1 people;2 people;3 people

[]可以用来[1-5];[a-c]

  1. 比如我们想找存在.的数据,需要进行\\.来进行操作,称之为前导。通配符类详情P58

12.定位符 ^ ,可以规定搜索匹配开始的位置。5^[0-9] 在0-100中,会搜索出50-59

13.字符串的拼接:Concat()函数可以用来拼接两个列(这个是MYSQL特别之处,其他SQL可能使用”+”或者是”||”) Concat(name,” (“,uid,”)”) 输出::名字 (10);注意名字和(10)之前有空格!!!

14.函数。RTrim()去除列值右边的空格;Upper()将文本转为大写,数据输出的时候会出现两次。语法  Upper(uid) AS uid_upcase   1.AC ab  2.AC AB

有个神奇的函数 Soundex()函数可以匹配所有发音类似的名字,时间的函数详看P71,数值处理P74

15.聚集函数 AVG() COUNT(确定表中行的数目或符合特定条件的行的数目) MAX() MIN() SUM()

DISTINCT参数与ALL不同,只会选择输出不同的值,ALL为默认行为。

16.分组数据,使用GROUP BY指示MySQL分组的数据,将对选出的组进行聚集,不会对整个结果进行。HAVING可以代替WHERE,区别是HAVING可以过滤筛选分组,WHERE只能过滤筛选行。注:在使用GROUP BY会出现一定顺序问题,需要使用ORDER BY对其进行重新排序。

17.子查询。顾名思义,就是在查询内再套一层查询,但是子查询优先级高。

18.联结:关系表:利用主键和外键。主键为唯一标识,外键包含另一个表的主键值,定义了两个表之间的关系。

19.组合查询。我们可以用UNION将两句SQL语句进行组合查询,且输出组合原单个查询的结果集。UNION在查询的时候会自动去除重复的行。

20.全文本搜索。可以使用 Match()和Against()执行全文本的搜索,Match()指定被搜索的列,Against()指定要使用的搜索表达式

21.布尔文本搜索。操作符在P128,简单来说,就是在检索的时候增加条件。

-------------------------------------------------------------------------------------------------------------------

22.数据插入。INSERT为数据插入,SELECT为数据查询。

基本语法INSERT INTO 表名

VALUSE(按列所需要的数据进行,注,由于第一列为自增,所以填NULL)

NSERT插入多行的时候用”;”区分。

23.INSERT SELECT就是插入检索出的数据。基本语法:

INSERT INTO 表名1(id,name) SELECT id,name FROM 表名2

注意的是,MYSQL关心的是位置而不是列名。

----------------------------------------------------------------------------------------------------------------------

24.更新表中特定的行UPDATE ; 删除数据DELETE

基本语法 UPDATE 表名 SET name=”fjf ” WHERE id = 1;

DELETE 表名 SET name=”fjf ” WHERE id = 1;

25.NULL的使用。 CREATE  TABLE(创建表)

CREATE  TABLE  表名(

id  int  NOT NULL,

name  int  NOT NULL,

content text NULL,

PRIMARY  KEY (order_num)

)ENGINE=InnoDB;

表示id和name字段不能为空,content字段可以为空(主键是默认不能为NULL的)

可以使用DEFAULT来指定默认值,在NOT NULL的条件下。

content  text  NOT NULL DEFAULT 123456789 ,

26.AUTO_INCREMENT确定了哪一个字段可以成为主键。每个表只能允许存在一个。

27.ENGINE=InnoDB;为指定引擎,如果省略这个,会使用默认引擎。MYSQL使用多个引擎处理。(P151)注:外键不能跨引擎使用。

28.ALTER TABLE:用于定义外键,可以使众多表一起修改列的信息

DROP TABLE:用于删除表

RENAME TABLE:用于重命名表

----------------------------------------------------------------------------------------------------------------------

29.使用视图。可以将查询包装成一个虚拟表。虚拟表不包含表中应有的任何列或者数据,只包含SQL语句。类似于封装,把需要的东西封装好,我们只需要知道调用的时候输入什么就可以了。

注:

(1)视图表唯一的名称;

(2)视图表可以使用ORDER BY,但是SELECT出来的数据含有ORDER BY,则视图中的ORDER BY将会被覆盖掉;

(3)视图表不能索引,也不会有关联的触发器和默认值。

(4)视图表可以和表在一起使用,如编写一条联结表和视图的SELECT语句。

30.视图用CREATE VIEW语句创建。使用SHOW CREATE VIEW viewname查看创建视图的语句。

使用DROP可以删除视频,其语法为DROP VIEW viewname。

更新视图的时候,可以先用DROP再用CREATE,也可以直接使用CREATE OR REPLACE VIEW(如果视图不存在,第二条语句会创建一个视图;如果更新的视图存在,第二条语句会替换原有视图)

31.视图的更新。可以使用INSERT,UPDATE和DELETE进行更新。

----------------------------------------------------------------------------------------------------------------------

32.存储过程。

(1)MYSQL的存储语句为CALL。例:CALL  productpricing(@hight,@low,@average);执行了名为productpricing的存储过程。 注:所有MYSQL变量都必须@开始

(2)在创建存储过程中:

CREATE PORCEDURE productpricing()

BEGIN

SELECT Avg(prod_price) AS priceaverage

FROM products;

END;

可以使用BEGIN和END来限定存储的过程体。

(3)CALL productpricing()执行刚创建的存储过程并显示返回的结果。存储实际上是一种函数,所以在存储过程名后需要加()。

33.删除存储过程。 DROP PROCEDURE productpricing

删除的时候productpricing后面没有加()。为了防止指定的过程不存在而报错,可以使用

DROP PROCEDURE IF EXISTS,即指定的过程存在才删除。

34.检查存储过程。SHOW CREATE PROCEDURE。获取建表详情:SHOW PROCEDURE STATUS。

----------------------------------------------------------------------------------------------------------------------

35.游标。游标是一个存储在MYSQL服务器上的数据库查询,是被语句检索出来的结果集。游标可以用DECLARE语句创建

例:CREATE PROCEDURE 过程名()

BEGIN

DECLARE 游标名 CURSOR

FOR

SELECT 字段 FROM 表名;

END;

注:游标在存储完成之后会消失。

36.游标打开。由OPEN CURSOR语句打开。声明游标之后,再次打开OPEN+游标名;关闭 CLOSE+游标名,释放游标使用的资源和内存。如果不用CLOSE,当END语句会自动关闭。

游标的数据可以使用FETCH进行访问

----------------------------------------------------------------------------------------------------------------------

37.使用ROLLBACK可以撤销MYSQL语句;COMMIT可以确保明确提交。

38.保留点。设置:SAVEPOINT 标点名。 回退保留点ROLLBACK TO 标点名。

39.SET autocommit=0;可以让数据库不会自动提交更改。不管COMMIT语句,直到autocommit被设置为真时。

40.使用字符集和校对顺序。SHOW CHARACTER SET。显示所有可用的字符集以及每个字符集的描述和默认校对。SHOW COLLATION,显示所有可用的校对,以及他们使用的字符集。

41.CREATE USER创建新用户账号

CREATE USER 用户名 IDENTIFIED BY 口令;RENME UESR aaa TO bbb;名字从aaa变成bbb

DROP USER 用户名,删除了用户账号。

SHOW GRANTS FOR,设置账号的权限,可以登入,但是无法修改数据。

更好的是使用GRANT语句来设置权限。需要赋予的权限,赋予权限的数据库或者表,用户名。

GRANT SELECT ON 数据库名.*(这个数据库所有表) TO 用户名:表示用户在这个数据库上所有表只能执行查询的功能。

42.REVOKE为撤销赋予的权限。

REVOKE SELECT ON 数据库名.*(这个数据库所有表) TO 用户名;撤销的时候,权限必须在,否则容易出错。

43.GRANT和REVOKE可以在几个层次上使用

这个服务器,使用GRANT/REVOKE ALL ;整个数据库 GRANT/REVOKE ON 数据库名.*

特定的表 GRANT/REVOKE ON 数据库名.表名 ; 特定的列 ; 特定的存储过程。P202-203

44.SET PASSWORD FOR 用户名 = Password(‘新口令’);

SET PASSWORD = Password(‘新口令’);设置自己的密码

45.mysqldump将所有数据库内容到某个外部的文件。mysqlhotcopy从一个数据库复制所有数据。

BACKUP TABLE或者SELECT INTO OUTFILE转储所有数据到某个外部文件。这两个语句都接受要创建的系统文件名,此系统文件必须不存在,否则会出错。数据可以用RESTORE TABLE来复原。

46.ANALYZE TABLE检查表键是否正确;CHECK TABLE用来针对许多问题对表进行检查。CHANGED检查最后一次检查以来改动的表。MEDIUM检查所有被删除的链接并进行键检验。QUICK只进行快速扫描。

47.日志文件。

错误日志:通常命名为hostname.err,位于data目录中,该日志可以使用--log-error命令行选项更改.

查询日志。他记录MYSQL所有活动,通常命名为hostname.log,位于data目录中,该日志可以使用--log命令行选项更改.

二进制日志:记录更新过的数据,或者可能更新过数据的所有语句。通常命名为hostname.bin,位于data目录中,该日志可以使用--log-bin命令行选项更改.

缓慢插叙日志。这个日志记录执行缓慢的任何查询。可以优化数据库。通常命名为hostname-slow.log,位于data目录中,该日志可以使用--log-slow-queries命令行选项更改.

时间: 2024-10-23 13:04:59

读MYSQL必知必会的总结的相关文章

读《MySql必知必会》笔记

MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SHOW STATUS,用于显示广泛的服务器状态信息 DESCRIBE tableName;是SHOW COLUMNS FROM tableName;的一种快捷方式 SHOW CREATE DATABASE和SHOW CREATE TABLE,分别用来显示创建特定数据库或表的MySQL语句 SHOW G

《 MySQL必知必会》笔记_持续更新

< MySQL必知必会> structured querylanguage,MySQL是一个数据库系统管理软件软件,也可以理解为为数据库服务器.读音,my sequel,/?si?kw?l / see kuo 第1.2.3章 schema,提要纲要,column列.row行 数据库:一某种有组织的方式来储存的数据集合 DBMS databasemanegersystem数据库管理系统 table,表,某种特殊类型数据的结构化清单 一个数据中,表名称有唯一性 表的特性,我们用schema[模式]

MySQL必知必会 pdf完整版

需要学习的朋友可以通过网盘下载: http://tadown.com/fs/8yi6be9nsehu9e921/内容简介  · · · · · · <MySQL必知必会>MySQL是世界上最受欢迎的数据库管理系统之一.书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用.子查询.正则表达式和基于全文本的搜索.存储过程.游标.触发器.表约束,等等.通过重点突出的章节,条理清晰.系统而扼要地讲述了读者应该掌握的知识,使他们不经意间立刻功力大增. 读者评论: 飞林沙  2013-11

MySQL必知必会 学习笔记(一)

第一章  了解SQL 模式:   关于数据库和表的布局以及特性的信息.[描述表可以存储什么样的数据,数据如何分解,各部分信息如何命名等等,可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)]. 第二章 MySQL简介 MySQL是一种DBMS,即它是一种数据库软件.基于客户机----服务器的数据库. MySQL工具: 1.mysql 命令行实用程序 2.MySQL Administrator 3.MySQL query Browser 第四章 检索数据 LIMIT 5 表示MySQL返

mysql 必知必会总结

以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随时查看. 命令:sql 不区分大小写,语句大写,列.表名小写是一种习惯连接命令:mysql -u user_name –h example.mysql.alibabalabs.com –P3306 –pxxxxquithelp show; // 查看所有 show 命令show databases;

《MySQL必知必会》读书笔记_4

PS:一个实际的存储过程案例 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_article_by_id`(IN `id` int) BEGIN #Routine body goes here... DECLARE temp INT; SET @aid = id; SELECT COUNT(*) FROM gk_reply_article WHERE a_id = @aid INTO temp; IF(temp <> 0) THEN

mysql学习--mysql必知必会1

?? 例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式处理. (.)是正則表達式的一个符号,表示匹配随意一个字符: mysql> select prod_name -> from products -> where prod_name regexp '.000' -> order by prod_name; +--------------

《MySQL 必知必会》读书总结

这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. ? ? 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter password:****** 显示数据库 mysql>SHOW DATABASES; 选择数据库 mysql>USE mytest; 显示数据库中的表 mysql>SHOW TABLES; 显示表列 mysql>SHOW COLUMNS FROM tmall_user; mysql

《MySQL必知必会》读书笔记_3

PS:这次的信息量有点大. 聚集不同值 SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003 #相同的值不会被计算 组合聚集函数 SELECT COUNT(*) AS num_items, MIN(prod_price) AS price_min, MAX(prod_price) AS price_max, AVG(prod_price) AS price_avg FROM products