MySQL新手入门指南--快速参考

一、SQL速成

  以下是一些重要的SQL快速参考,有关SQL的语法和在标准SQL上增加的特性,请查询MySQL手册。

  1.创建表

  表是数据库的最基本元素之一,表与表之间可以相互独立,也可以相互关联。创建表的基本语法如下:

  create table table_name

  (column_name datatype {identity |null|not null},

  …)

  其中参数table_name和column_name必须满足用户数据库中的识别器(identifier)的要求,参数datatype是一个标准的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 检查左边是否为空值

  在这里,可以用通配符_代表任何一个字符,%代表任何字符串。使用关键字、和可以生成复杂的词,它们运行检查时使用布尔表达式的多重标准集。

  例:

  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);

  数据删除:

  delete from table_name where search_condition

  数据更改:

  update 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

  Type '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 Type 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>update table01 set field03='new info' where field01=1;

  Query OK, 1 row affected (0.00 sec)

  一次改变多个字段

  记住在每一个更新的字段间用逗号隔开。

  mysql>update table01 set field04=19991022, field05=062218 where field01=1;

  Query OK, 1 row affected (0.00 sec)

  一次更新多个数据

  mysql>update table01 set field05=152901 where field04>19990101;

  Query OK, 3 rows affected (0.00 sec)

  12.删除数据

  mysql>delete from table01 where field01=3;

  Query OK, 1 row affected (0.00 sec)

  13.退出

  mysql>quit

  Bye

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

  另外说明一下,MySQL提供了很好的网络操作安全特性。要想了解MySQL的安全及其它特性的详情,请查询MySQL网站:http://www.mysql.com

  为了方便大家查询使用MySQL手册, 我们将官方手册(Manaul)做在光盘的/docs/manaul/mysql目录下.大家可以用浏览器浏览查询.

(0)

相关推荐

  • 分享一下Mysql常见的几个错误问题及解决方法

    1.问题: mysql DNS反解:skip-name-resolve   错误日志有类似警告: 1.120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known 2.120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service not k

  • 新手配置 PHP 调试环境(IIS+PHP+MYSQL)

    目的:配置运行PHP的环境(IIS+PHP+MYSQL+CF+Perl)支持php+cgi+asp+jsp等 操作系统:windows2000 advance server(sp3)简体中文版 需要相关软件: 一:php-4.3.0-Win32.zip ,到相应站点下载,我上传文件不方便,以下同. 二:ActivePerl-5.6.1.635-MSWin32-x86.msi ,注意,必须下载安装文件,就是说.msi的,不要下原代码了,我也不会弄原代码,加装这个支持cgi,如果你不想支持cgi也可

  • MySQL 常见错误分析与解决方法

     一.Can't connect to MySQL server on 'localhost'(10061)? 翻译:不能连接到localhost 上的mysql?分析:这说明"localhost"计算机是存在的,但在这台机器上却没提供MySQL服务.?需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误.?解决:既然没有启动那就去启动这台机子的mysql.如果启动不成功,多数是因为你的my.ini配置的有问题.重新配置其即可.?如果觉得mysql负载异常,

  • MySQL操作数据库和表的常用命令新手教程

    我是新手 学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一些信手拈来的命令. 处理数据库 1.查看数据库 获取服务器上的数据库列表通常很有用.执行show databases;命令就可以搞定. 复制代码 代码如下: mysql> show databases; 2.创建数据库 复制代码 代码如下: mysql> create database db_test; Query OK, 1 ro

  • MySQL常见错误有哪些_MySQL常见错误的快速解决方法

    1. TokuFT file system space is really low and access is restricted 解决方法:修改tokudb_fs_reserve_percent参数,不过该参数是静止参数,需重启实例 2. 以上这篇MySQL常见错误有哪些_MySQL常见错误的快速解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • mysql常见错误集锦

    #1067 - Invalid default value for 'xxx' 当修改表中某字段的时候,出现了这个错误.显示:字段名称已存在错误.只好删除该字段,重新添加 UTF-8导入MYSQL中文无显示今天把本地的MYSQL数据导出到web service,结果发现中文字符全不见了.配置如下: 程序代码   导出数据库5.0.45.字符集:UTF-8     导入数据库数据库5.0.22,也是UTF-8 结果发现是phpadmin版本不兼容,以至于导出数据出现问题,使用mysqldump指令

  • 关于mysql调用新手们常犯的11个错误总结

    前言 大家可能经常收到安全部门的警告邮件,SQL注入,XSS攻击漏洞等等,偶尔还被黑客挂了小马,郁闷不?还有数据库执行太慢(根据经验基本是没有正确使用索引导致) ,下面就跟着小编来一起看看MYSQL新手们常犯的11个错误吧. 1.使用MyISAM而不是InnoDB MySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB. MyISAM是默认使用的.但是除非你是建立一个非常简单的数据库或者只是实验性的,那么到大多数时候这个选择是错误的.MyISAM不支持外键的 约束,这是保证数据完整

  • mysql常见的错误提示问题处理小结

    1.mysql服务无法启动,报1067错误 解决方案: 1).把mysql服务端解压目录新加一个my.ini文件,内容如下 [mysqld] # set basedir to installation path, e.g., c:/mysql # 设置为MYSQL的安装目录 basedir=c:/tool/mysql5617win32 # set datadir to location of data directory, # e.g., c:/mysql/data or d:/mydata/d

  • MySQL新手入门指南--快速参考

    一.SQL速成 以下是一些重要的SQL快速参考,有关SQL的语法和在标准SQL上增加的特性,请查询MySQL手册. 1.创建表 表是数据库的最基本元素之一,表与表之间可以相互独立,也可以相互关联.创建表的基本语法如下: create table table_name (column_name datatype {identity |null|not null}, -) 其中参数table_name和column_name必须满足用户数据库中的识别器(identifier)的要求,参数dataty

  • MySql新手入门的基本操作汇总

    库操作 查询 1.SHOW DATABASE; ----查询所有数据库 2.SHOW CREATE DATABASE 数据库名称; ----查询某个数据库的创建模式 3.SHOW CREATE DATABASE xxx; ----查询xxx数据库的创建模式 创建 1.CREATE DATABASE 数据库名称; ----创建数据库 注:不可以创建一个已经存在的数据库 2.CREATE DATABASE IS NOT EXISTS 数据库名称; ----判断数据库是否存在,不存在就创建 3.CRE

  • SpringBoot新手入门的快速教程

    SpringBoot是什么? SpringBoot是spring家族中微型框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. Spring Boot可以轻松创建独立的,生产级的基于Spring的应用程序,您可以"运行". 特征: 创建独立的Spring应用程序 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件) 提供自以为是的"入门"依赖项以简化构建配置 尽可能自动配置Spring和第三方库 提供生产就绪功能,例如指标,运行状

  • 初学者的福音:游戏开发新手入门指南

    我经常被问及:一个具有很少甚至没有编程经验的人要如何开始游戏制作.直到目前为止,我总是尽我所能一个一个解答.然而,问题的数量已经增长到了一个难以处理的水平,于是,我便决定把所有的建议汇总在一篇文章里作为参考提供给人们. 这篇文章主要面向那些想开发自己的游戏,但仅有一点点或没有半点编程经验的人们.实际上,我也假定读者根本没有任何的编程知识.我将把重点放在游戏开发的编程和设计方面,而不是艺术方面.我也不准备对游戏行业进行论述(因为这个话题的资料太多了),但是,我会带你浏览一下在制作游戏之前需要做的一

  • MySQL新手入门进阶语句汇总

    目录 引言 一.常用查询 1.1.order by按关键字排序 升序排序 降序排序 结合where进行条件过滤在排序 多字段排序 1.2.and/or判断 and/or使用 1.3.distinct查询不重复记录 1.4.GROUP BY对结果进行分组 1.5.limit限制结果条目 1.6.设置别名(alias-as) 1.7.通配符 二.子查询 2.1.select查询 相同表查询 多表查询 NOT取反,将子查询的结果,进行取反操作 2.2.insert插入 2.3.update更新 2.4

  • Pear DB 新手入门指南教程第1/3页

    1. 简介这是一部指导我们如何使用Pear DB扩展.Pear DB,提供这样一系列的类: n 数据库抽象 n 高级错误处理机制 n 以及其它 2. 下载.安装Pear 由于现在Pear项目仍处于紧锣密鼓的开发之中,所以得到它的最好办法就是从CVS获得(Pear DB发行包已经跟随PHP4.0.6以后版本捆绑发布).所以,我们只需要把Pear的根目录放到php.ini配置文件include_path中.也可以通过这样设置:_set('include_path', '/pear_base_dir'

  • SpringBoot+Vue项目新手快速入门指南

    目录 1. 项目技术选型 2.数据库设计 3. 后台搭建 3.1 引入依赖 3.2 swagger配置 3.3实体类 3.4 自动填充配置 3.5 Mapper 3.6 service 3.7 controller 4. 前端搭建 4.1 环境搭建 4.1.1 Node环境 4.1.2 项目构建 4.1.3 安装插件 4.1.4 引入插件 4,2.搭建路由 4.3. echarts使用 4.4 element-ui使用 总结 前言:本人目前从事java开发,但同时也在学习各种前端技术,下面是我做

  • Spring Boot 快速入门指南

    最近因为项目的缘故,需要接触 Spring Boot,详细的介绍可以参考官方的文档,这里主要根据自己学习的实践进行简单分享.版本:1.3.6 简介 Spring 框架是非常著名的 Java 开源框架,历经十多年的发展,整个生态系统已经非常完善甚至是繁杂,Spring Boot 正是为了解决这个问题而开发的,为 Spring 平台和第三方库提供了开箱即用的设置,只需要很少的配置就可以开始一个 Spring 项目.当然,建议使用 Java 8 来进行开发. Spring Boot 实际上走的是 Se

  • Oracle RMAN快速入门指南

    正在看的ORACLE教程是:Oracle RMAN快速入门指南.前言: 这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在WIN 2K和ORACLE 8.1.6环境下测试成功(因为这个环境比较容易实现). 本文借鉴了网上一些高手的相关文章,希望大侠们不要见怪,此处一并谢过. 这篇文章主要是在北京出差期间写的,回到家后整理修改了一下,时间比较仓促,同时因为篇幅有限,一些技术细节不能一一覆盖了,只希望能够帮助新手入门的作用,想真正熟练掌握RMAN,必须经过较长时间

  • 干货 | Linux新手入门好书推荐

    前言 经常有读者问小编可否推荐一些 Linux 入门书籍,正好最近在知乎也看到类似的问题,如几个零碎的命令难以在 Linux 环境中存活,所以如果要真正形成自己的知识体系,还是要靠阅读专业书籍来积累. 众所周知Linux 对后端开发是必备技能,对 Python 开发者来说重要性不言而喻,将来你写的每一行代码,都有可能在 Linux 环境中运行.前端开发是否有必要学习 Linux 呢?这个就好比学驾照,学到了,总有一天会给你带来便利,暂时没时间学的可以先收藏着. linux之路,路漫漫其修远兮,吾

随机推荐