一、SQL速成   结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件(如表、索引、字段等)的建立和操纵。   以下是一些重要的SQL快速参考,有关SQL的语法和在标准SQL上增加的特性,请查询MySQL手册。   1.创建表   表是数据库的最基本元素之一,表与表之间可以相互独立,也可以相互关联。创建表的基本语法如下:   create table table_name   (column_name data无效 {identity |null|not null},   …)   其中参数table_name和column_name必须满足用户数据库中的识别器(identifier)的要求,参数data无效是一个标准的SQL类型或由用户数据库提供的类型。用户要使用non-null从句为各字段输入数据。   create table还有一些其他选项,如创建临时表和使用select子句从其他的表中读取某些字段组成新表等。还有,在创建表是可用PRIMARY KEY、KEY、INDEX等标识符设定某些字段为主键或索引等。   书写上要注意:   在一对圆括号里的列出完整的字段清单。   字段名间用逗号隔开。   字段名间的逗号后要加一个空格。   最后一个字段名后不用逗号。   所有的SQL陈述都以分号";"结束。   例:   mysql> CREATE TABLE test (blob_col BLOB, index(blob_col(10)));

2.创建索引   索引用于对数据库的查询。一般数据库建有多种索引方案,每种方案都精于某一特定的查询类。索引可以加速对数据库的查询过程。创建索引的基本语法如下:   create index index_name   on table_name (col_name[(length)],... )   例:   mysql> CREATE INDEX part_of_name ON customer (name(10));

3.改变表结构   在数据库的使用过程中,有时需要改变它的表结构,包括改变字段名,甚至改变不同数据库字段间的关系。可以实现上述改变的命令是alter,其基本语法如下:   alter table table_name alter_spec [, alter_spec ...]   例:   mysql> ALTER TABLE t1 CHANGE a b INTEGER;

4.删除数据对象   很多数据库是动态使用的,有时可能需要删除某个表或索引。大多数数据库对象可以下面的命令删除:   drop object_name   mysql> DROP TABLE tb1;

5.执行查询   查询是使用最多的SQL命令。查询数据库需要凭借结构、索引和字段类型等因素。大多数数据库含有一个优化器(optimizer),把用户的查询语句转换成可选的形式,以提高查询效率。   值得注意的是MySQL不支持SQL92标准的嵌套的where子句,即它只支持一个where子句。其基本语法如下:   SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]   [DISTINCT | DISTINCTROW | ALL]   select_expression,...   [INTO {OUTFILE | DUMPFILE} ’file_name’ export_options]   [FROM table_references   ][WHERE where_definition]   [GROUP BY col_name,...]   [HAVING where_definition]   [ORDER BY {unsigned_integer | col_name | formula} ][ASC | DESC] ,...]   [LIMIT ][offset,] rows]   [PROCEDURE procedure_name] ]   其中where从句是定义选择标准的地方,where_definition可以有不同的格式,但都遵循下面的形式:   字段名操作表达式   字段名操作字段名   在第一种形式下,标准把字段的值与表达式进行比较;在第二种形式下,把两个字段的值进行比较。根据所比较的数据类型,search_condition中的操作可能选以下几种:   = 检查是否相等   != 检查是否不等

> (或>=) 检查左边值是否大于(或大于等于)右边值   < (或<=) 检查左边值是否小于(或小于等于)右边值   [not] between 检查左边值是否在某个范围内   [not] in 检查左边是否某个特定集的成员   [not] like 检查左边是否为右边的子串   is [not] null 检查左边是否为空值   在这里,可以用通配符_代表任何一个字符,%代表任何字符串。使用关键字<AND>、<OR>和<NOT>可以生成复杂的词,它们运行检查时使用布尔表达式的多重标准集。   例:   mysql> select t1.name, t2.salary from employee AS t1, info AS t2 where t1.name = t2.name;   mysql> select college, region, seed from tournament   ORDER BY region, seed;   mysql> select col_name from tbl_name WHERE col_name > 0;

6.修改表中数据   在使用数据库过程中,往往要修改其表中的数据,比如往表中添加新数据,删除表中原有数据,或对表中原有数据进行更改。它们的基本语法如下:   数据添加:   insert [into] table_name [(column(s))]   values (expression(s))   例:   mysql> INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);   数据删除:   删除 from table_name where search_condition   数据更改:   更新 table_name   set column1=expression1,   column2=expression2,…   where search_condition

7.数据库切换   当存在多个数据库时,可以用下面的命令定义用户想使用的数据库:   use database_name

8.统计函数   SQL有一些统计函数,它们对于生成数据表格很有帮助。下面介绍几个常用的统计函数:   sum (exepression) 计算表达式的和   avg (exepression) 计算表达式的平均值   count (exepression) 对表达式进行简单的计数   count (*) 统计记录数   max (exepression) 求最大值   min (exepression) 求最小值   其中exepression为任何有效的SQL表达式,它可以是一个或多个记录,也可以是别的SQL函数的组合。

二、MySQL使用导引   1.运用MySQL建立新数据库   在shell下运行:   $>mysqladmin create database01   Database "database01" created.

2.启动MySQL   在shell下运行:   $>mysql   Welcome to the MySQL monitor. Commands end with ; or g.   Your MySQL connection id is 22 to server version: 3.21. 29a-gamma-debug   无效 ’help’ for help.

3.更换数据库   mysql>use database01   database changed.

4.创建表   mysql>create table table01 (field01 integer, field02 char(10));   Query OK, 0 rows affected (0.00 sec)

5.列出表清单   mysql>show tables;   Tables in database01   Table01   table02

6.列出表中的字段清单   mysql>show columns from table01;   Field 无效 Null Key Default Extra   field01 int(11) YES   field02 char(10) YES

7.表的数据填写   插入数据   mysql>insert into table01 (field01, field02) values (1, ’first’);   Query OK, 1 row affected (0.00 sec)

8.字段的增加   ...一次一个字段   mysql>alter table table01 add column field03 char(20);   Query OK, l row affected (0.04 sec)   Records: 1 Duplicates: 0 Warnings: 0   ...一次多个字段   mysql>alter table table01 add column field04 date, add column field05 time;   Query OK, l row affected (0.04 sec)   Records: 1 Duplicates: 0 Warnings: 0   注意:每一列都必须以"add column"重新开始。   它运行了吗?让我们看看。   mysql>select * from table01;   field01 field02 field03 field04 field05   1 first NULL NULL NULL

9.多行命令输入   MySQL命令行界面允许把陈述作为一行输入,也可以把它展开为多行输入。这两者之间并没有语法上的区别。使用多行输入,你可以将SQL陈述一步步分解,从而使你更容易理解。   在多行方式下,注释器把每一行都添加到前面的行后,直到你用分号";"来结束这个SQL陈述。一旦键入分号并按回车键,这个陈述即被执行。   下面的例子是同一个严格的SQL陈述的两种输入方法:   单行输入   Mysql>create table table33 (field01 integer, field02 char(30));   多行输入   Mysql>create table table33   ->(field01   ->integer,   ->field02   ->char(30));   注意不能将单词断开,如:   正确   mysql>create table table33   ->( field01   ->integer,   ->field02   ->char(30));   错误   mysql>create table table33   ->( field01 inte   ->ger,   ->field02   ->char(30));   当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中:   标准操作   mysql>insert into table33 (field02)   ->values   ->(’who thought of foo?’);   硬回车储存到数据中   mysql>insert into table33 (field02)   ->values   ->(’who thought   ->of foo?’);   结果如下:   mysql>select * from table33;   field01 field02   NULL who thought of foo?   NULL who thought   Of foo?

10.表的数据嵌入   mysql>insert into table01 (field01, field02, field03, field04, field05) values   ->(2, ’second’, ’another’, ’1999-10-23’, ’10:30:00’);   Query OK, 1 row affected (0.00 sec)   标准日期格式是"yyyy-mm-dd"。   标准时间格式是"hh:mm:ss"。   引号内要求所给的是上述的标准日期和时间格式。   日期也可以"yyyymmdd"形式,时间也可以"hhmmss"形式输入,但其值不需要再加引号。   数字值不需要加引号。这种保存与数据类型无关,这些数据类型都有格式化的专栏来包含(例如:文本,日期,时间,整数等)。   MySQL有一个很有用的命令缓冲区。它保存着你目前已经键入的SQL语句利用它,对于相同的命令,你就不必一遍又一遍地重复输入。下一步我们就来看这样的一个例子。   利用命令缓冲区(及任意的日期和时间格式)增加另一个数据   按两次键盘上的向上箭头键。   回车。   在圆括号内输入新的值,并以分号结尾。   (3, ’a third’, ’more’, 19991024, 103004);   回车。   新值存在里面了吗?   mysql>select * from table01;   field01 field02 field03 field04 field05   1 first NULL NULL NULL   2 second another 1999-10-23 10:30:00   3 a third more 1999-10-24 10:30:04

11.表的数据更新   一次修改一个字段   再次注意语法。文本需要加引号但数字不要。   mysql>更新 table01 set field03=’new info’ where field01=1;   Query OK, 1 row affected (0.00 sec)   一次改变多个字段   记住在每一个更新的字段间用逗号隔开。   mysql>更新 table01 set field04=19991022, field05=062218 where field01=1;   Query OK, 1 row affected (0.00 sec)   一次更新多个数据   mysql>更新 table01 set field05=152901 where field04>19990101;   Query OK, 3 rows affected (0.00 sec)

12.删除数据   mysql>删除 from table01 where field01=3;   Query OK, 1 row affected (0.00 sec)

13.退出   mysql>quit   Bye   现在你已经了解了一些运行MySQL中的数据库的根本命令。由于MySQL是通过执行SQL调用来操作的,在你的处理过程中需要一个强有力工具的充足的数组。例如,通过联接相关的字段,你可以同时显示几个表中的数据。同样,SQL允许综合显示、更新或者删除多个符合具体标准的数据。如果你还想精通掌握它,下一步就要学习所有SQL的知识。

MySQL语法语句大全的更多相关文章

  1. mysql sql语句大全(转载)

      1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 ...

  2. MYSQL查询语句大全集锦

    MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...

  3. MySQL 常用语句大全

    MySQL 常用语句大全 一.连接 MySQL 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 1.例 1:连接到本机上的 MYSQL. 首先在打开 DOS 窗口,然后进入目录 my ...

  4. MySQl查询语句大全

    综合使用 查询 目录: #----综合使用 书写顺序 select distinct * from '表名' where '限制条件' group by '分组依据' having '过滤条件' or ...

  5. mysql sql语句大全

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

  6. MySQL SHOW 语句大全

    常用的mysql show命令如下: 1.show databases;        显示mysql中所有数据库 2.show tables [from databases] ;     显示当前数 ...

  7. mysql sql语句大全(2)

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

  8. MySQL常用语句大全

    数据库操作:创建数据库create database database_name 查看数据库 show databases使用数据库use dbname删除数据库 drop database dbna ...

  9. mysql sql语句大全(MySQL语句 整理一)

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

随机推荐

  1. Java实现深克隆的两种方式

    序列化和依次克隆各个可变的引用类型都可以实现深克隆,但是序列化的效率并不理想 下面是两种实现深克隆的实例,并且测试类对两种方法进行了对比: 1.重写clone方法使用父类中的clone()方法实现深克 ...

  2. JSP起源、JSP的运行原理、JSP的执行过程

    JSP起源 在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变. 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序 ...

  3. android目录

    2013-09-121.activity生命周期 activity生命周期2 widget http://blog.csdn.net/xiang_j2ee/article/details/727564 ...

  4. 社区APP “钱途”漫漫

    花样年曾宣称:2013年“彩生活”物业品牌收入1.85亿,毛利率超过40%:万科万客会APP.龙湖物业APP……大量房地产企业依托物业企业,纷纷瞄准移动互联网.云计算.物联网等高新科技为基础的物业服务 ...

  5. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  6. Unity3d 引擎原理详细介绍、Unity3D引擎架构设计

    体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...

  7. Part 82 to 85 Talking about Generic queue, stack collection class

    Part 82   Generic queue collection class Part 83   Generic stack collection class Part 84   Real tim ...

  8. Document.getElementById 与 $('#id')的区别

    一直认为jquery中的$("#id")和document.getElementByIdx_x("id")得到的效果是一样的,今天才发现并不是这么一回事,通过测 ...

  9. Node.js的安装

    学习一下JavaScript的另一个运行环境---Node.js Node.js是一个基于Chrome V8 引擎的 JavaScript 运行建立的平台, 用于方便地搭建响应速度快.易于扩展并且是全 ...

  10. 如何用C#代码查找某个路径下是否包含某个文件

      string path = "f:\\哈哈"; if (Directory.Exists(path)) { MessageBox.Show("存在文件夹") ...