- 浏览: 114666 次
- 性别:
- 来自: 成都
文章分类
最新评论
1. 连接到服务器上面有三种方式:
1.1 通过mysql自己的客户端:
在开始 -----所有程序--mysql--mysql Command Line Client 让你输入密码 那么该密码是root用户的密码
1.2 在dos命令行中使用mysql.exe客户端连接上
mysql.exe -hlocalhost -uroot -padmin
-h 连接的主机
-u 数据库服务器的用户名
-p 用户名对应的密码
注意: 如果通过dos 来执行select 或者是 insert into 的语句 ,如果出现了乱码,可以设置编码为GBK来解决,在mysql环境中设置: SET NAMES 'GBK';
1.3 通过Navicat客户端连接到数据库服务器上面
2. 常用的sql命令
2.1 创建数据库
create database 数据库的名字
如:
create database myjdbc
2.2 删除数据库
drop database 数据库的名字
如: drop database myjdbc
2.3 查看数据库
show databases
3.4 使用数据库
use database 数据库的名字
如: use database myjdbc
3. 表
数据库中的数据类型:
char(size)
定长字符,0 - 255字节 如: char(2) aaaaa -> aa a -> a
size: 不管放什么,都是两个字符,如果放入的字符数超出了指定的长度,那么就截取, 如果小于指定的字符数,那么就用空字符填充
varchar(size)
变长字符,0 - 255字节 如: varchar(2) aaaaa -> aa a -> a
size:表示的是最大的字节数, 如果放入的字符数超出了指定的长度,那么就截取, 如果小于指定的字符数, 那么就放这些字符
注:JAVA中的一个英文字母站一个字节,而一个汉字在GBK编码站两个字节,在UTF-8编码中占三个字节.
如:'a' 1节
"中" 在GBK的编码中占 2个字节
"中" 在UTF-8的编码中占3个字节
date
日期数据,MySQL用'yyyy-MM-dd'格式检索和显示DATE值 'yyyy-MM-dd'
DATETIME
日期数据,要比date数据更确切,包含时分秒。MySQL以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值
Int(size)
整型数据(size是显示的宽度) 和int类型存储一个数据库的空间是没有任何关系的
double[(s,p )]
数字型,可存放实型和整型 ,精度(p )和范围(s)
s: 指的是数据的总位数
p: 指的是小数点后面的位数
例如: double(2,2 ) 最大值为:0.99 最小值为:-0.99
double(3,2) 最大值为:9.99 最小值为 -9.99
blob
存放图形、声音和影像,二进制对象,0-4GB
通常不用把二进制文件存储在数据库中的, 而是存储在硬盘上面,而是数据中存入该文件的地址, 程序可以通过该地址找到这个文件读取..
text
存放大文本文件, 0-4GB
建表语法:
create table table_name
(
column_name1 column_properties constraint_definition,
column_name2 column_properties constraint_definition,
#列名 类型 约束 (最后一行没有逗号)
)
create table student(
name char(8),
sex char(2),
age int,
birthday date
)
4.Select查询语句
SELECT
最简单的select语句
SELECT {*, column [alias],...}
FROM table;
如果为 * 和创建表时的顺序一致。
可以自己调整顺序,在select后边加上要查询的列名。
货品表的DDL
CREATE TABLE `product` (
`id` bigint(11) NOT NULL auto_increment, 货品的id
`productName` varchar(50) default NULL, 货品的名字
`dir_id` bigint(11) default NULL, 货品分类的编码
`salePrice` double(10,2) default NULL, 零售价 100
`supplier` varchar(50) default NULL, 供应商
`brand` varchar(50) default NULL, 品牌
`cutoff` double(2,2) default NULL, 折扣 主要是给零售商的批发价=== 零售价*折扣
`costPrice` double(10,2) default NULL, 成本价
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
4.1 查询出货品表中的所有的货品信息
select * from product
4.2 查询出货品表中所有 供应商, id, 零售价,货品名称
select supplier,id,salePrice,productName from product
4.3 查询货品的id,货品名字,零售价,折扣,批发价
select id,productName,salePrice,cutoff, salePrice*cutoff from product
别名:
(1)、改变列的标题头
(2)、用于表示计算结果的含义
(3)、作为列的别名
(4)、如果别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都需加双引号
4.4 使用别名 查询货品的id,货品名字,零售价,折扣,批发价
select id as 编号 ,productName as 货品名字,salePrice as 零售价,cutoff as 折扣 , salePrice*cutoff as 批发价 from product
或者 as 可以省略
select id 编号 ,productName 货品名字,salePrice 零售价,cutoff 折扣 , salePrice*cutoff 批发价 from product
如果别名中有特殊的符号,需要用引号"" 或者 '' 引起来
select id "编 号" ,productName "货品名字",salePrice " 零 售价",cutoff "折 扣" , salePrice*cutoff "批发价" from product
4.5 使用别名 查询货品的id,货品名字,零售价,成本 并且各进50个的总成本
select id "编 号" ,productName "货品名字",salePrice " 零 售价",costPrice "单个成本", costPrice*50 "50各成本" from product
4.6 使用别名 查询货品的id,货品名字,零售价,成本 并且各进50个,每个的运费为1元的总成本
select id "编 号" ,productName "货品名字",salePrice " 零 售价",costPrice "单个成本", (costPrice+1)*50 "50各成本" from product
5.使用WHERE子句限定返回的记录
SELECT [DISTINCT] {*, column [alias], ...} FROM table
[WHERE condition(s)];
WHERE子句在 FROM 子句后.
5.1 查询货品零售价为119的所有货品信息
select * from product where salePrice=119
5.2 查询货品的分类编号为2 货品信息的id,货品名字,分类编号,品牌
select id,productName,dir_id,brand from product where dir_id=2
5.3. 查询出货品名字为 罗技M905 货品信息的id,货品名字,分类编号,品牌
select id,productname,dir_id,brand from product where productName='罗技M905'
select id,productname,dir_id,brand from product where binary productName='罗技m905'
如果需要大小敏感的话, 有两种方法:
第一种方法:
要让mysql查询区分大小写,可以:
select * from some_table where binary str='abc'
select * from some_table where binary str='ABC'
第二方法:
在建表时时候加以标识
create table some_table(
str char(20) binary
)
5.4 查询分类编号不等于2的货品信息
select * from product where dir_id <> 2
5.5查询货品名称,零售价小于等于200的货品
select productName,salePrice from product where salePrice<=200
5.6查询id,货品名称,批发价大于350的货品
select id, productName, salePrice*cutoff as 批发价 from product where salePrice*cutoff >350
select id, productName, salePrice*cutoff as 批发价 from product where 批发价 >350
是错误的..
总结: where语句先执行, select后执行.. 先过滤出满足条件的数据, 然后再查询出来
使用BETWEEN
运算符
使用BETWEEN运算符显示某一值域范围的记录,这个操作符最常见的使用在数字类型数据的范围上,但对于字符类型数据和日期类型数据同样可用 ,包含边界值
5.7. 选择id,货品名称,批发价在300-400之间的货品
select id,productName,salePrice*cutoff from product where salePrice*cutoff BETWEEN 300 and 400
使用IN
运算符:
使用IN运算符获得匹配列表值的记录,在IN操作符后跟着一个值的列表,可以应用日期,字符串数据类型
5.8. 选择id,货品名称,分类编号为2,3,4的所有货品
select id,productName,dir_id from product where dir_id in(2,3)
使用LIKE
运算符
使用LIKE运算符执行通配查询
查询条件可包含文字字符或数字
(%) 可表示零或多个字符
( _ ) 可表示一个任意字符
5.8. 选择id,货品名称,品牌 , 那么货品名字中有 罗技M 的货品
select id,productName,brand from product where productName like '%罗技M%'
5.8. 选择id,货品名称,品牌 , 那么货品名字中有 罗技M__ 的货品
select id,productName,brand from product where productName like '罗技M%'
注意:
A:罗技%
B:罗技_%
这两个的区别为: B 不能够查询出来 罗技 这两个字
6 . 逻辑运算符
6.1 选择id,货品名称,分类编号,零售价大于等于200并且货品名称匹配'%罗技M1_'
select id,productName,dir_id,salePrice from product where salePrice>=200 and productName like "%罗技M1__"
6.2 选择id,货品名称,批发价在300-400之间的货品
select id,productName,salePrice*cutoff from product where salePrice*cutoff>=300 and salePrice*cutoff<=400
6.3 选择id,货品名称,分类编号的货品零售价大于等于250或者是成本大于等于200
select id,productName,dir_id,salePrice,costPrice from product where salePrice>=250 or costPrice>=200
6.4 选择id,货品名称,分类编号为2,3,4的所有货品
select id,productName,dir_id from product where dir_id=2 or dir_id=3 or dir_id=4
优先级的事例:
SELECT id,productName FROM product WHERE NOT productName LIKE '%M%' OR dir_id = 2 AND salePrice > 100
SELECT id,productName FROM product WHERE NOT (productName LIKE '%M%' OR dir_id = 2) AND salePrice > 100
SELECT id,productName FROM product WHERE NOT (productName LIKE '%M%' OR dir_id = 2 AND salePrice > 100)
优先级顺序:NOT>AND>OR |
7. 排序:
7.1 选择id,货品名称,分类编号,零售价并且按零售价排序升序
select id,productName,dir_id,salePrice from product order by salePrice asc
默认 升序
select id,productName,dir_id,salePrice from product order by salePrice desc
7.2 选择id,货品名称,分类编号,零售价先按分类编号排序,再按零售价排序
select id,productName,dir_id,salePrice from product order by dir_id ,salePrice 默认升序
select id,productName,dir_id,salePrice from product order by dir_id desc ,salePrice desc 升序
7.3 查询M系列并按照批发价排序(加上别名)
select id,productName,salePrice*cutoff as pfprice from product where productName like '%M%' order by pfprice
where先执行, 后执行select 再执行 order by
7.4 查询分类为2并按照批发价降序排序(加上别名)
select id,productName,dir_id,salePrice*cutoff as pfprice from product where dir_id=2 order by pfprice desc
8. 多表查询:
8.1. 查询所有的货品信息+货品分类信息
select * from product,productdir
8.2. 查询所有的货品信息 并且 对应的每个货品的货品分类信息
select * from product,productdir where product.dir_id=productdir.id
使用表连接从多个表中查询数据
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
在 WHERE 子句中写入连接条件
当多个表中有重名列时,必须在列的名字前加上表名作为前缀
select product.id,productdir.id from product,productdir where product.dir_id=productdir.id
如果不是使用表名的话, 可以给表另外起一个别名,通过别名来区分
select p.id,pd.id from product as p,productdir as pd where p.dir_id=pd.id
主键: 如果一个列上面设置了主键,那么该列中的值不能够重复
外键: 如果设置一个列为外键的话, 那么该列中的值是从参照表中来的..
对于mysql来说有两种存储引擎
:
1. InnoDB(第三方公司) 支持数据一致性的
a. 支持事务
b. 支持外键
2. MyISAM (mysql公司自己开发) 支持不数据一致性的
a. 不支持事务
b. 不外键
注意:在设置外键的时候可能出错,那么可能是存储引擎没有设置为InnoDB.
要是用外键必须使用InnoDB这种存储引擎:
alter table product ENGINE = 'InnoDB'
alter table productdir ENGINE = 'InnoDB'
8.3 查询零售价大于200的无线鼠标
select * from product as p ,productdir as pd where p.dir_id=pd.id and p.salePrice>200 and pd.dirName='无线鼠标'
1,查询货品名称,零售价,批发价,货品分类,货品库存,库存成本总价
select p.productName,p.salePrice,p.cutoff*p.salePrice as pfprice, pd.dirName,ps.storeNum, ps.storeNum*p.costPrice as totalPrice from product p ,productdir pd ,productstock ps where p.dir_id=pd.id and p.id= ps.product_id
2,查询货品名称,零售价,货品分类,库存不足的无线鼠标
select p.productName,p.salePrice,pd.dirName from product p ,productdir pd ,productstock ps where p.dir_id=pd.id and p.id= ps.product_id and ps.storeNum<ps.warningNum and dirName='无线鼠标'
3,按照库存数量排序查询货品名称,成本价,数量,库存成本总价
select p.productName,p.costPrice, ps.storeNum, ps.storeNum*p.costPrice as totalPrice from product p, productstock ps where p.id=ps.product_id order by ps.storeNum
4,如果库存货品都销售完成,按照利润从高到低查询货品名称,零售价,货品分类 站零售商的角度
select p.productName,p.salePrice,pd.dirName, (p.salePrice - p.cutoff*p.salePrice)*ps.storeNum as lirun from product p ,productdir pd ,productstock ps where p.dir_id=pd.id and p.id= ps.product_id order by lirun desc
发表评论
-
oracle基础知识
2012-10-10 22:29 0Oracle服务器由两大部分 ... -
数据库基础
2012-10-10 22:14 599数据库(DB)是一个按数据结构来存储和管理数据的计算机软件系统 ... -
orcale提示java.lang.Exception:Request::null的解决办法
2012-10-05 19:28 631在win7的系统下,安装好oracle后,进行em登陆后, ... -
JDBC中的连接池
2012-09-12 23:25 1282在使用开发基于数据库 ... -
初始Jdbc事务处理
2012-09-12 21:37 1140在数据库中,所谓事务是 ... -
jdbc连接数据库示例
2012-09-11 21:46 699java.sql.DriverManager用来装载驱动程序, ... -
jdbc中的Statement和PreparedStatement接口对象
2012-09-11 21:35 12251、Statement 该对象用于 ... -
MySQL详细安装图文教程
2012-09-09 20:41 614原文地址:http://www.duote ... -
MySQL中的integer 数据类型
2012-09-09 20:33 1064MySQL 数据类型中的 intege ...
相关推荐
1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在MySQL中可能需要转换为DECIMAL、TEXT或BLOB。例如,Oracle的NUMBER可以转换为MySQL的DECIMAL或FLOAT,LONG可以转换为TEXT。 2. **分页查询**:Oracle...
例如,使用合适的字段类型、避免使用过大的数据类型、将经常一起查询的字段放在同一张表中等。 8. 数据存储方式优化:数据的存储方式也会影响查询性能,例如,通过分区可以将数据分散到不同的存储区域,根据业务...
以下是十个 SQL 语句优化技巧来提升 MYSQL 查询效率: 1. 优化 MySQL 查询缓存 MySQL 查询缓存可以启用高速查询缓存,让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果...
本文档总结了基础常用的SQL语句,涵盖了MYSQL基础语句、数据库创建、数据表创建、数据插入、查询、更新、删除、子句、连接、NULL值处理、正则表达式、ALTER命令、服务器元数据、MYSQL及SQL注入、MYSQL导出数据等多个...
4. 图片和SQL语句:虽然SQL主要用于处理文本数据,但在实际应用中,我们可能需要与图像数据交互。这通常涉及到BLOB(Binary Large Object)类型的字段,用于存储非文本数据。查询这类数据时,可能需要用到`SELECT ...
本知识点集锦将全面介绍MySQL中的SQL查询语句,包括基础操作、数据管理和安全性设置等方面。 基础操作是数据库管理的基础,包括创建和选择数据库、表的操作。创建数据库的语句是`CREATE DATABASE 数据库名;`。例如...
MySQL 常用 SQL 语句 MySQL 是一种关系型数据库管理系统,提供了丰富的 SQL 语句来操作数据库。下面是 MySQL 中常用的 SQL 语句。 创建表 创建表是数据库的基本操作之一,用于存储数据。创建表的基本语法为: ``...
"Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将Oracle数据库中的SQL语句或数据结构转换为MySQL兼容的格式。 在数据库迁移过程中,这样的工具至关重要,因为它可以简化工作流程,...
以上只是“SQL语句电子书”可能涉及的一些关键知识点,实际内容可能还包括具体的SQL标准(如SQL-92、SQL-99、SQL:2003等)、不同数据库系统(如MySQL、Oracle、SQL Server、PostgreSQL等)的语法差异、实际案例分析...
8. **数据类型映射**:MySQL.Data.dll将MySQL的数据类型映射为.NET数据类型,如MySQL类型INT对应.NET的Int32,VARCHAR对应String等。 9. **元数据访问**:使用MySqlConnection的GetSchema方法,可以获取关于MySQL...
DQL还包括WHERE、ORDER BY、GROUP BY和HAVING等保留字,这些通常与其他类型的SQL语句结合使用,以实现更加精确和复杂的数据查询。 数据操作语言(DML)包含用于对数据进行增加、修改、删除操作的命令,主要有INSERT...
1、对ms sql server及其他数据库库中类似int identity的数据库类型没有处理,转出来的sql语句直接执行时,还需要做一下处理. 2、不支持长字符集类型.比如ms sql server中的image,oracle中的blob,clob,long以及db2中...
SQL语句生成器则是帮助用户快速、准确地构建SQL查询的实用工具,尤其适合初学者和那些不熟悉复杂SQL语法的用户。下面将详细介绍MySQL中的SQL语句及其生成器的相关知识。 1. SQL基础概念 SQL,全称为结构化查询语言...
需要注意的是,针对不同的数据库系统(如MySQL和SQL Server),SQL语句的语法可能会有所不同,特别是对于日期时间的处理和特定功能的使用。在实际应用中,需要根据目标数据库的特点调整SQL语句。 通过学习和实践...
具体操作步骤为将.frm、.myd 和 .myi 文件直接复制到MySQL数据目录下的相应数据库文件夹中。这种方法简单快速,但对于大多数使用虚拟主机的用户来说并不适用,因为通常情况下空间提供商并不会提供足够的权限让用户...
在压缩包子文件的文件名"ms转sql语句.exe"中,我们可以推测这可能是一个用于将SQL Server语句转换为Oracle兼容格式的可执行程序。这样的工具通常会提供用户友好的界面,让用户导入SQL Server的数据库元数据,然后...
### MySQL存储引擎配置与SQL查询 #### 一、MySQL存储引擎的配置 在MySQL数据库管理系统中,存储引擎是用于组织和管理数据的方式。不同的存储引擎提供了不同的特性,例如事务处理能力、索引类型等。因此,了解如何...
MySQL是一种广泛使用的开源关系型数据库管理系统,其性能高效、稳定性强,被众多企业和开发者用于存储和处理各种类型的数据。在本资源中,我们有一个名为"MySQL官网测试数据上百万条数据sql文件"的压缩包,它包含了...
13.6.2. 用于控制从服务器的SQL语句 13.7. 用于预处理语句的SQL语法 14. 插件式存储引擎体系结构 14.1. 前言 14.2. 概述 14.3. 公共MySQL数据库服务器层 14.4. 选择存储引擎 14.5. 将存储引擎指定给表 14.6. 存储...
表的创建-SQL语句 课程目标 掌握 —— 显示数据表文件和表结构的语法格式。 掌握 —— 创建数据表的语法格式; 表的创建 show tables; 说明:用于显示已经建立的数据库表文件 显示数据库表语法格式 表的创建 创建...