弑月繁枫
helloworld
posts - 0,comments - 0,trackbacks - 0

进入服务器

  • 要想查看由mysql提供的选择项目表,可以用- -help选项来调用
  • 连接服务器 mysql -h host -u user -p
  • 断开服务器 成功地连接后,可以在mysql>提示下输入QUIT (或\q)随时退出

输入查询

要求服务器告诉它的版本号和当前日期SELECT VERSION(), CURRENT_DATE;

  • · 一个命令通常由SQL语句组成,随后跟着一个分号。(有一些例外不需要分号。早先提到的QUIT是一个例子。后面我们将看到其它的例子。)
  • · 当发出一个命令时,mysql将它发送给服务器并显示执行结果,然后显示另一个mysql>显示它准备好接受其它命令。
  • · mysql用表格(行和列)方式显示查询输出。第一行包含列的标签,随后的行是查询结果。通常,列标签是你取自数据库表的列的名字。如果你正在检索一个表达式而非表列的值(如刚才的例子),mysql用表达式本身标记列。
  • · mysql显示返回了多少行,以及查询花了多长时间,它给你提供服务器性能的一个大致概念。因为他们表示时钟时间(不是 CPU 或机器时间),并且因为他们受到诸如服务器负载和网络延时的影响,因此这些值是不精确的。(为了简洁,在本章其它例子中不再显示“集合中的行”。)

能将mysql用作一个简单的计算器:SELECT SIN(PI()/4), (4+1)*5;

显示的命令是相当短的单行语句。

可以在一行上输入多条语句,只需要以一个分号间隔开各语句

提示符 含义

  • mysql >准备好接受新命令。
  •            ->等待多行命令的下一行。
  •             '>等待下一行,等待以单引号(“'”)开始的字符串的结束。
  •            ">等待下一行,等待以双引号(“"”)开始的字符串的结束。
  •            `>等待下一行,等待以反斜点(‘`’)开始的识别符的结束。
  •            /*>等待下一行,等待以/*开始的注释的结束。

创建并使用数据库

  • 使用SHOW语句找出服务器上当前存在什么数据库:
  • mysql> SHOW DATABASES;
  • 如果没有SHOW DATABASES权限,则不能看见所有数据库

创建并选择数据库

  • mysql> CREATE DATABASE 数据库名称;
  • mysql> USE 数据库名称;

数据库只需要创建一次,但是必须在每次启动mysql会话时在使用前先选择它。你可以根据上面的例子执行一个USE语句来实现。还可以在调用mysql时,通过命令行选择数据库,只需要在提供连接参数之后指定数据库名称。

shell> mysql -h host -u user -p数据库名称;

创建表

  • mysql> SHOW TABLES;
  • 使用一个CREATE TABLE语句指定你的数据库表的布局:
  • mysql> CREATE TABLE 表名 (列名 数据类型,多个);
  • DATABASE( )函数:
  • mysql> SELECT DATABASE();
  • 如果你还没选择任何数据库,结果是NULL。
  • mysql> SHOW TABLES;找出当前的数据库包含什么表
  • mysql> DESCRIBE 表;显示表中每个列的信息:
  • 创建表后,需要填入内容。通过LOAD DATA和INSERT语句可以完成该任务。
  • mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
  • 文本文件“pet.txt”装载到pet表中
  • 请注意如果用Windows中的编辑器(使用\r\n做为行的结束符)创建文件,应使用:
  • mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
  • -> LINES TERMINATED BY '\r\n';
  • (在运行OS X的Apple机上,应使用行结束符'\r'。)
  • 如果想要一次增加一个新记录,可以使用INSERT语句。最简单的形式是,提供每一列的值,其顺序与CREATE TABLE语句中列的顺序相同。假定Diane把一只新仓鼠命名为Puffball,你可以使用下面的INSERT语句添加一条新记录:
  • mysql> INSERT INTO pet
  • -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

从表检索信息

SELECT语句用来从数据表中检索信息。

  • 语句的一般格式是:
  • SELECT what_to_select
  • FROM which_table
  • WHERE conditions_to_satisfy;
  • SELECT最简单的形式是从一个表中检索所有记录:
  • mysql> SELECT * FROM pet;
  • 为了使输出减到最少,增加关键字DISTINCT检索出每个唯一的输出记录:
  • mysql> SELECT DISTINCT owner FROM pet;
  • 默认排序是升序,最小的值在第一。要想以降序排序,在你正在排序的列名上增加DESC(降序 )关键字:
  • mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
  • 日期函数,year(),month(),day(),right();
  • NULL值操作 不能使用算术比较 操作符例如=、<或!=
  • 使用IS NULL和IS NOT NULL操作符:
  • 在MySQL中,0或 NULL意味着假而其它值意味着真。
  • 布尔运算的默认真值是1。

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。

  • 正则表达式:
  • like 'b%' b开头
  • like '%y' y结尾
  • like '%w%' w在中间
  • like '_____' 正好包含5个字符的名字

扩展正则表达式的一些字符是:

  • · ‘.’匹配任何单个的字符。
  • · 字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
  • · “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。

如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。

  • 为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
  • 如果你想强制使REGEXP比较区分大小写,使用BINARY关键字使其中一个字符串变为二进制字符串。
  • 为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:
  • mysql> SELECT * FROM pet WHERE name REGEXP '^.....$';
  • 也可以使用“{n}”“重复n次”操作符重写前面的查询:
  • mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$';
  • COUNT(*)函数计算行数
  • COUNT( )和GROUP BY以各种方式分类你的数据。

使用1个以上的表

关于该查询要注意的几件事情:

  • FROM子句列出两个表,因为查询需要从两个表提取信息。
  • 当从多个表组合(联结)信息时,你需要指定一个表中的记录怎样能匹配其它表的记录。这很简单,因为它们都有一个name列。查询使用WHERE子句基于name值来匹配2个表中的记录。
  • 因为name列出现在两个表中,当引用列时,你一定要指定哪个表。把表名附在列名前即可以实现。
  • 用table.列名来避免冲突

最大值max(),最小值min();

  • 可以通过AUTO_INCREMENT属性为新的行产生唯一的标识:
  • id MEDIUMINT NOT NULL AUTO_INCREMENT,
  • 要想以AUTO_INCREMENT值开始而不是1,你可以通过CREATE TABLE或ALTER TABLE来设置该值,如下所示:
  • mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;

 

posted on 2012-03-12 23:33 吖鑵_sysu 阅读(209) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: