MySQL学习笔记1—7

一、了解数据库和表   

  • SHOW DATABASES; 返回可用数据库的一个列表
  • SHOW TABLES; 返回当前选择的数据库内可用的列表
  • SHOW COLUMNS FROM 表名; 对每个字段返回一行,行中包括字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息

二、检索数据

  • 检索单个列:SELECT prod_name FROM products;
  • 检索多个列:SELECT prod_id, prod_name, prod_price FROM products;
  • 检索所有列:SELECT * FROM products;
  • 检索不同行:关键字DISTINCT。SELECT DISTINCT vend_id FROM products; 只返回vend_id不同的行。注意:不能部分使用DISTINCT  此关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price FROM products;除非指定的两个列都不相同,否则所有行都将被检索出来。
  • 限制结果:关键字:LIMIT。SELECT prod_name FROM products LIMIT 5; 此语句使用SELECT检索单个列。LIMIT 5指示MySQL返回不多于五行;若为LIMIT 5,5 指示MySQL返回从行5开始的5行。注意:检索出来的第一行是行0而不是行1.

三、排序检索数据

关键字:ORDER BY子句;

  • 排序数据:SELECT prod_name FROM products PRDER BY prod_name;
  • 按多个列排序:SELECT prod_id, prod_price, prod_name FROM products OEDER BY prod_price, prod_name; 在按多个列排序时,排序完全按所规定的顺序进行
  • 指定排序方向:如果升序,则什么也不需要声明,默认升序;如果降序,需用 DESC 关键字;SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price DESC, prod_name;  DESC 关键字只应用到直接位于其前面的列名。如果想在多个列上进行排序,必须对每个列指定DESC关键字。

四、过滤数据

使用WHERE子句:WHERE子句在表名(FROM子句)之后给出。在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错位。

WHERE子句操作符:BETWEEN 值1 AND 值2;BETWEEN匹配范围中所有的值,包括指定的开始值和结束值

五、数据过滤

组合WEHRE子句:以AND子句的方式或OR子句的方式使用

SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1003

AND prod_price <= 10; AND:用来指示检索满足所有给定条件的行。

SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id

= 1003; OR:用来检索匹配任一条件的行。

SQL在处理OR操作前,优先处理AND操作符;解决方法就是圆括号明确地分组

相应的操作符。

IN操作符:IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配

SELECT prod_name, prod_price FROM products WHERE vend_id IN(1001,1003) ORDER BY prod_name; 检索供应商1002和1003制造的所有产品。IN操作符后跟由逗号分隔的合法值清单,整个清单必须括在圆括号中。

IN操作符的优点:

  • 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观
  • 在使用IN时,计算的次序更容易管理、
  • IN操作符一般比OR操作符清单执行更快
  • IN的最大优点是可以包含其他SELECT语句,使得能够更动态的建立WHERE子句

六、使用通配符进行过滤

1、 LINK操作符

通配符:用来匹配值的一部分的特殊字符。

搜索模式:由字面值、通配符或两者组合构成的搜索条件

(1)、百分号(%)通配符

在搜索串中,%表示任何字段出现任意次数。

SELECT prod_id, prod_name FROM products WHERE prod_name LIKE ‘jet%’;

搜索找出所有以词jet起头的产品

%可以出现在字符串的前端后端和中间:’s%e’、’%anv%’

除了一个或多个字符外,%还能匹配0个字符。

(2)、下划线 (_) 通配符

下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符

SELECT prod_id, prod_name FROM products WHERE prod_name LIKE ‘_ ton ’;

与%能匹配0个字符不一样,_总是匹配一个字符,不能多也不能少

2、 使用通配符的技巧

  • 不要过度使用通配符;
  • 除非绝对有必要,否则不要把它们用在搜索模式的开始处;

原文地址:https://www.cnblogs.com/D-LW/p/8799222.html

时间: 2024-10-13 12:17:58

MySQL学习笔记1—7的相关文章

MySQL学习笔记-基础入门

MySQL学习笔记

MySql学习笔记(一)之DQL常用查询

MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前,我们先做一些准备工作. 需要安装的软件如下: 1.mysql,版本可以选择5.1或者5.5,安装过程可以参考博客:http://www.cnblogs.com/ixan/p/7341637.html 2.mysql图形化管理软件:Navicate,sqlyog(二选一,推荐使用sqlyog). 本文

MySQL学习笔记-自定义函数

MySQL学习笔记-自定义函数 1.自定义函数简介 自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同 自定义函数的两个必要条件:(1)参数  (2)返回值 自定义函数: 创建自定义函数 CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body 关于函数体: 1.函数体可以由合法的SQL语句构成: 2.函数体可以是

Mysql学习笔记(三)对表数据的增删改查。

写在前面:(一些牢骚,可以直接跳到分割线后) 太过敏感的人不会快乐,不幸的是我正是这种性格的人. 从培训机构毕业后,迫于经济方面的压力,和当时的班里的一个同学住在了一起,我们在一个公司上班.谁知道这都是不开心生活的源头,从每天早晨开始心情就很糟糕.他是个脾气很慢的人,我是个急脾气,特别是在早上上班的时候.由此种种吧,实在是不胜枚举.算了,还是不说了,太痛苦了,我不太喜欢说别人的坏话.我是学心理学的,已经用各种方法去安慰自己,但是都不太奏效. 回想以往和朋友的交往中,我虽然不算十分合群的人,但绝对

mysql 学习笔记(一)

查询:show databases;show status;show tables; desc  table-name: 更改root密码:方法一:mysqladmin -uroot -poldpassword  password newpassword方法二:mysql -uroot -puse mysqlupdate user set password=password("newpasswd") where user="root";select host,use

MySQL学习笔记-数据类型与操作数据表

MySQL学习笔记-数据类型与操作数据表 数据类型:  1.字符型  2.整型  3.浮点型  4.日期时间型 数据表操作:  1.插入记录  2.查找记录 记录操作:  1.创建数据表  2.约束的使用 1.数据类型 [1]整型: 数据类型 存储范围 字节 TINYINT 有符号型:-128~127(-2^7~2^7 -1),无符号型0~255(0~2^8 -1) 1 SMALLINT 有符号型:-2^15~2^15 -1,无符号型0~2^16 -1 2 MEDIUMINT 有符号型:-2^2

mysql学习笔记 第五天

使用分区数据表: 分区数据表和merge数据表具有相似的作用,但是分区数据表确确实实是一个数据表 ,不像merge是列出数据表的逻辑关系,并且分区数据表可以包括像myisam以外的 的数据表.创建分区数据表: create table 里给出数据列和索引,然后用partition by 定义一个用来把数据行分配 到各个分区的分区函数:[将数据表分成四个区] create table log_partition( dt datetime not null, info varchar(100) no

mysql学习笔记 第四天

mysql引擎: archive(档案)[数据插入以后不能被修改,只读] blackhole[这种写操作是删除数据,读操作是返回空白记录] CSV[在储存数据时以逗号作为数据项之间的分隔符] example[示例(存根)储存引擎] Falcon[用来进行处理事务的储存类型] federated[用来访问远程数据表的储存引擎] InnoDB[具备外键支持功能的事务处理引擎] memory[内存里的数据表] merge[用来管理多个MyISAM数据表构成的数据表集合(merg-myisam)] my

mysql 学习笔记 第二天

插入表格数据: Insert into table_name set columns_1=value1,columns_2=value2,对于没有赋值的列,将会取默认值,并且这个方法只能一次插入一个数据 利用文本方式插入数据: Load data local infile‘径’into table table_name: Select 的通用形式: Select columns from table or tables where conditions;from一般不能少的,但是当查询的时候没有

MySQL学习笔记(一)

命令行中的取消操作 如果你决定不想执行正在输入过程中的一个命令,输入\c取消它: mysql> SELECT -> USER() -> \c mysql> 这里也要注意提示符,在你输入\c以后,它切换回到mysql>,提供反馈以表明mysql准备接受一个新命令. 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test |