MySQL执行SQL脚本文件的命令:

从cmd进入mysql命令行模式:

mysql> -uroot –prootpassword –Ddatabasename

如果是我本地的数据库,就相应修改为:

Mysql> -uroot –p111111 –Dmy_database < xxx.sql

执行SQL脚本文件:

mysql> source E:\program files\sql\xxxxxx.sql.

如下图所示:

2. MySQL基础知识:

2.1 连接MySQL数据库

主机名(计算机名)——如果连接到本地MySQL服务器,为localhost;

端口——默认端口为3306.

2.2 数据库操作

假设数据库的名称为:myDatabase;

(1)选择数据库:

输入:USE myDatabase;

输出:Database changed

(2)显示所有的数据库:

输入:SHOW DATABASES;

(3)显示该数据库下的所有表:

输入:SHOW TABLES;

(4)显示某一个表内的所有列,假设表名为customers:

输入: SHOW COLUMNS FROM customers; 或者是 DESCRIBE customers;

2.3 检索数据(SELECT)

输入:SELECT product_name FROM products;

含义:从products表中检索出一个名为product_name的列。

注意:检索出的数据没有排序,返回的数据可能是数据被添加到表中的顺序。

输入:SELECT product_id, product_name, product_price FROM products;

输入:SELECT * FROM products;

输入:SELECT DISTINCT vend_id FROM products;

输入:SELECT product_name FROM products LIMIT 5; //少于5行.

输入:SELECT product_name FROM products LIMIT 5,5; //检索出第6行后的5行.

输入:SELECT product.product_name FROM products; //使用完全限定的表名

输入:SELECT products.product_name FROM myDatabase.products; //完全限定数据库名和表名

2.4 排序检索数据(ORDER BY)

输入:SELECT product_name FROM products ORDER BY product_name; //按一列排序.

输入:SELECT product_id, product_price, product_name FROM products ORDER BY product_price, product_name; //按多个列排序.

指定排序方向(如果不指定排序方向,默认是升序ASC):

输入:SELECT product_id,product_price,product_name FROM products ORDER BY product_price DESC/ASC; //DESC是降序,ASD是升序.

输入:SELECT product_id,product_price,product_name FROM products ORDER BY product_price DESC, product_name; //先按照product_price降序排,再对结果按name排序.

输入:SELECT product_price FROM products ORDER BY product_price DESC LIMIT 1;

注意:关键字顺序SELECT->FROM>ORDER BY>LIMIT,如果次序不对,结果会报错。

2.5 过滤数据(WHERE)

过滤条件:=,<>,!=,<,<=,>,>=,BETWEEN

操作符

=

<>

!=

<

<=

>

>=

BETWEEN

说明

等于

不等于

不等于

小于

小于等于

大于

大于等于

之间

输入:SELECT product_name,product_price FROM products WHERE product_price=2.50;

输入:SELECT product_name,product_price FROM products WHERE product_price BETWEEN 5 AND 10;

输入:SELECT product_name FROM products WHERE product_price IS NULL; // 空值检查.

2.6 数据过滤(组合WHERE子句,AND/OR/IN/NOT)

输入:SELECT product_id,product_price,product_name FROM products WHERE vend_id = 1003 AND product_price <=10;

输入:SELECT product_name,product_price FROM products WHERE vend_id=1002 OR vend_id=1003;

输入:SELECT product_name,product_price FROM products WHERE (vend_id=1002 OR vend_id=1003) AND product_price >=10;

注意任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符,而不要去过分依赖默认计算次序。

输入:SELECT product_name,product_price FROM products WHERE vend_id IN (1002,1003) ORDER BY product_name;

输入:SELECT product_name,product_price FROM products WHERE vend_id=1002 OR vend_id=1003 ORDER BY product_name;

注意:在where子句中应用IN和OR的功能是相同的,但是IN操作符的优点如下:

(1) 使用长的合法选项清单时,IN操作符的语法更清楚且更直观;

(2) 计算的次序更容易管理;

(3) IN操作符一般比OR操作符清单执行更快;

(4) IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。

输入:SELECT product_name,product_price FROM products WHERE vend_id NOT IN (1002,1003) ORDER BY product_name;

2.7 用通配符进行过滤(LIKE—%)

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

LIKE指示MySQL后跟的搜索模式利用通配符匹配,而不是直接相等匹配进行比较。

%:表示任何字符出现任意次数。

1)找到所有以词jet开头的产品:

输入SELECT product_id,product_name FROM products WHERE product_name LIKE ‘jet%’;

注意:通配符可以在搜索模式中任意位置使用,并且可以使用多个通配符。

输入SELECT product_id,product_name FROM products WHERE product_name LIKE ‘%anvil%’;

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

注意:通配符搜索的处理一般要比之前讨论的其他搜索花费时间长。使用通配符的技巧:

(1) 不要过度使用通配符,即如果其他操作符能达到相同目的,应该使用其他操作符;

(2) 确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的;

(3) 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

2.8 用正则表达式进行搜索

正则表达式:用来匹配文本中的特殊的串(字符集合)。所有种类的程序设计语言、文本编辑器、操作系统都支持正则表达式。

注意:MySQL仅支持多数正则表达式实现的一个很小的子集。

2.8.1基本字符匹配

输入:SELECT product_name FROM products WHERE product_name REGEXP ‘1000’ ORDER BY product_name;

含义:它告诉MySQL,REGEXP后所跟的东西作为正则表达式(与文字正文1000匹配的一个正则表达式)处理。

注意:LIKE与REGEXP的区别:

(1) LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不会被返回(除非使用通配符);

(2) REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行也会被返回。

2.8.2 进行OR匹配

输入:SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000’ ORDER BY prod_name;

输入:SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] Ton’ ORDER BY prod_name;

含义:[123]定义一组字符,意思是匹配1或2或3,等同于1|2|3。

2.9创建计算字段

需求:由于存储在表中的数据不是应用程序所直接需要的。因此需要在检索的过程中同时进行计算。

2.9.1 拼接字段( concatenate)

输入:SELECT Concat( vend_name, ‘(’, vend_country, ‘)’) FROM vendors ORDER BY vend_name;

含义:将会形成一个新的拼接后的列名,为Concat(vend_name, ‘(’, vend_country, ‘)’)。

2.9.2 使用别名(alias)

输入:SELECT Concat(RTrim(vend_name), ‘(’, vend_country, ‘)’) AS vend_title FROM vendors ORDER BY vend_name;

含义:表示拼接后,并创建一个新的计算字段名vend_title用来存储计算结果。

2.9.3 执行算术计算

输入:SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 2000;

2.10使用数据处理函数

SQL支持以下类型的函数:

(1) 处理字符串函数;

(2) 在数值数据上进行算术操作;

(3) 处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)。

2.10.1 文本处理函数

输入:SELECT vend_name, Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;

文本函数

Left/Right()

Length()

Locate()

Lower/Upper

LTrim/RTrim

Substring()

说明

返回串左/右的字符

串长度

串的子串

小写/大写

去掉左/右边的空格

返回字符的字符

2.10.2 日期和时间处理函数

在数据库中,日期和时间均采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。

常用日期和时间的处理函数表

AddDate/AddTime()

增加一个日期/时间.

CurDate/CurTime()

返回当前日期/时间.

Date()

返回日期时间的日期部分.

DateDiff()

计算两个日期之差.

Date_Add()

高度灵活的日期运算函数.

Date_Sub()

从日期减去指定的时间间隔.

Date_Format()

返回一个格式化的日期或时间串.

Year/Month/Day()

返回一个日期的年/月/天数部分.

DayOfWeek()

对于一个日期,返回对应的星期几.

Now()

返回当前日期和时间.

Hour/Minute/Second

返回一个时间的小时/分钟/秒.

在MySQL中,无论是插入或更新表值,还是用WHERE子句进行过滤,日期必须为格式yyyy-mm-dd。

输入:SELECT cust_id, order_num FROM orders WHERE order_date = ‘2005-09-01’

注意:假如数据库的order_date字段值存储的时间除了日期还有时间外,则上述的检索会失败。因此,更保险的检索语句为:

输入:SELECT cust_id, order_num FROM orders WHERE Date(order_date) = ‘2005-09-01’;

输入: SELECT cust_id, order_num FROM orders WHERE Date(order_date) BETWEEN ‘2005-09-01’ AND ‘2005-09-30’;

输入:SELECT cust_id, order_num FROM orders WHERE Year(order_date) = 2005 AND Month(order_date) = 9;

2.10.3 数值处理函数

数值函数

Abs()

Cos()

Exp ()

Pi()

Rand()

Sqrt()

说明

绝对值

余弦

指数

圆周率

随机数

平方根

Mysql 基本语句 + 高级查询的更多相关文章

  1. 2017-03-10 T-sql 语句 高级查询

    T-SQL语句: 创建数据库: 1,点击新建查询,在弹出的页面上进行代码编写.点击可用数据库,编写前确定当前操作的页面是自己想要进行操作的界面. 2,数据库创建语句 Create datebase   ...

  2. 10月17日下午MySQl数据库CRUD高级查询

    高级查询:1.连接查询 #适用于有外键关系的  没有任何关系没法用select * from Info,Nation #同时查询这俩表并把两表每个数据相互组合,形成笛卡尔积 select * from ...

  3. mysql中的高级查询语句

    此随笔用到的数据全是来自  关于mysql中表关系的一些理解(一对一,一对多,多对多) 提及的    学院表,学生表,学生详情表,选课表,课程表 单标查询:(查看学生表的学生名单) select st ...

  4. mysql sql语句执行时间查询

    第一种:show profiles 之类的语句来查看 1.查一下profile是不是打开了,默认是不打开的. mysql> show profiles; Empty set (0.02 sec) ...

  5. mysql中的高级查询

    以前学习的查询语法: select 字段名 from 表名 where 条件 其实,查询的语法变化很多: 1. select 可以查询表达式, 表达式就是 运算符+操作数. 比如 1 + 1 2 * ...

  6. [MySQL]子语句的查询技巧

    一.统计group by语句的行数 group by语句中,如果包含字段统计函数(诸如:count(),sum()...),这种情况下统计函数只会作用于group by的字段,因此想拿到最终结果的行数 ...

  7. MySql数据and高级查询

    1.CREATE TABLE grade(stuID INT AUTO_INCREMENT PRIMARY KEY NOT NULL,stuName VARCHAR(32),stuAge INT ) ...

  8. MySQL基础语句(查询)

    students表 id class_id name gender score 1 1 小明 M 90 2 1 小红 F 95 3 1 小军 M 88 4 1 小米 F 73 5 2 小白 F 81 ...

  9. mysql sql语句高级写法

    将user表的内容,插入到team_member表INSERT INTO team_member (Nike,HeadImageUrl) SELECT Nike,HeadImageUrl FROM u ...

随机推荐

  1. 使用PowerShell批量解除锁定下载的文件

    使用PowerShell批量解除锁定下载的文件 3.在需要解锁的文件所在的文件夹中空白处,按住Shift然后单击右键,在弹出的右键菜单中,选择“在此处打开PowerShell窗口”, 输入Get-Ch ...

  2. MySQL在DOS界面对database和table增删改查

    昨天新接触MySQL,学习了一些内容,今天过来复习一下.(吐槽一下:安装个MySQL耗费老子半天时间!!) 学习了一下,大概知道了对数据库基本的增删改查,增add,删drop,改alter,查show ...

  3. java 中国网建实现发送短信验证码

    现在中国网建上注册一个自己的账户, 然后里面有代码案例,也有相应的下载jar包的地址 package com.direct.note; import java.io.IOException; impo ...

  4. cssText用法和使用说明

    cssText 本质是什么? cssText 的本质就是设置 HTML 元素的 style 属性值. cssText 怎么用? document.getElementById("d1&quo ...

  5. mysql 去除重复数据

    1. 问题描述 有时load或者insert操作导致 表数据有重复 2. 解决方案 通过临时表.主键id.倒腾去重 示例 2.1  create table student( name varchar ...

  6. JS函数动作分层结构详解及Document.getElementById 释义 js及cs数据类型区别 事件 函数 变量 script标签 var function

    html +css 静态页面 js     动态 交互   原理: js就是修改样式, 比如弹出一个对话框. 弹出的过程就是这个框由disable 变成display:enable. 又或者当鼠标指向 ...

  7. OpenCV中Mat属性step,size,step1,elemSize,elemSize1

    Mat的step,size,step1,elemSize,elemSize1这几个属性非常容易混淆. OpenCV的官方参考手册也没有解释清楚这几个概念. 前一段时间研究了一下每个属性的含义,如果有什 ...

  8. 【转】ArcGIS Server10.1安装常见问题及解决方案

    转载自:http://www.higis.cn/Tech/tech/tId/85/ 最近因为更换系统的原因,重新安装了ArcGISServer 10.1.过程中遇到了几个小问题,虽然都一一解决了,但也 ...

  9. 【Python】安装配置Anaconda

    优点:解决Python 库依赖问题 清华安装镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

  10. JavaScript JSON AJAX 同源策略 跨域请求

    网页和Ajax和跨域的关系 1 Ajax使网页可以动态地.异步地的与服务器进行数据交互,可以让网页局部地与服务器进行数据交互 2 Ajax强调的是异步,但是会碰到跨域的问题. 3 而有很多技术可以解决 ...