搜索
首页数据库mysql教程MySQL新手入门指南--快速参考

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中的操作可能选以下几种:


  = 检查是否相等


  != 检查是否不等


  > (或>=) 检查左边值是否大于(或大于等于)右边值


  

  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目录下.大家可以用浏览器浏览查询.
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何使用Alter Table语句在MySQL中更改表?如何使用Alter Table语句在MySQL中更改表?Mar 19, 2025 pm 03:51 PM

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

如何为MySQL连接配置SSL/TLS加密?如何为MySQL连接配置SSL/TLS加密?Mar 18, 2025 pm 12:01 PM

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

您如何处理MySQL中的大型数据集?您如何处理MySQL中的大型数据集?Mar 21, 2025 pm 12:15 PM

文章讨论了处理MySQL中大型数据集的策略,包括分区,碎片,索引和查询优化。

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?Mar 21, 2025 pm 06:28 PM

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

如何使用Drop Table语句将表放入MySQL中?如何使用Drop Table语句将表放入MySQL中?Mar 19, 2025 pm 03:52 PM

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

您如何用外国钥匙代表关系?您如何用外国钥匙代表关系?Mar 19, 2025 pm 03:48 PM

文章讨论了使用外国密钥来代表数据库中的关系,重点是最佳实践,数据完整性和避免的常见陷阱。

如何在JSON列上创建索引?如何在JSON列上创建索引?Mar 21, 2025 pm 12:13 PM

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

如何保护MySQL免受常见漏洞(SQL注入,蛮力攻击)?如何保护MySQL免受常见漏洞(SQL注入,蛮力攻击)?Mar 18, 2025 pm 12:00 PM

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。