使用用户自定义变量
找到价格最高和最低的信息:
mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;
mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+
计算每天的访问量
准备数据:
CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,day INT(2) UNSIGNED ZEROFILL);
INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),(2000,2,23),(2000,2,23);
表格中的数据是用户访问网站的年,月,日,现在要计算每个月访问的天数,可以用以下语句:bit_count bit_or用法详解请点击
SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1 GROUP BY year,month;
BIT_OR通过或运算来对二进制进行合并。BIT_COUNT合并1的个数。
使用AUTO_INCREMENT
使用AUTO_INCREMENT 可以为每个新行自动产生一个唯一的标识。(注意:在插入值的时候,需要在表名之后,指定列名,否则会报错)
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO animals (name) VALUES
('dog'),('cat'),('penguin'),
('lax'),('whale'),('ostrich');
SELECT * FROM animals;
+----+---------+
| id | name |
+----+---------+
| 1 | dog |
| 2 | cat |
| 3 | penguin |
| 4 | lax |
| 5 | whale |
| 6 | ostrich |
+----+---------+
使用批处理的方式使用MySQL
在前面章节,我们使用MySQL交互模式输入语句和查看结果。我们也可以批处理的模式来运行MySQL。要达到这种目的,需要把我们想运行的语句放在一个文件里,然后告诉MySQL从文件读取他的输入。
shell> mysql < batch-file
Windows下需要这样做
C:\> mysql -e "source batch-file"
当你以批处理方式执行mysql的时候,默认的输出格式(更加简洁)是不同于当你 交互地使用mysql。例如,当使用交互的方式执行mysql, SELECT DISTINCT species FROM pet 的输出是像这样的:
+---------+
| species |
+---------+
| bird |
| cat |
| dog |
| hamster |
| snake |
+---------+
批处理模式下,输出:
species
bird
cat
dog
hamster
snake
如果你在批处理模式的时候,想得到交互型模式的输出格式,使用 mysql -t 。要 在输出中显示执行的语句,使用 mysql -v 。 你也可以在mysql命令行,通过使用 \. 命令来使用脚本:
mysql> source filename;
mysql> \. filename