찾다
데이터 베이스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 Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

드롭 테이블 문을 사용하여 MySQL에서 테이블을 어떻게 드롭합니까?드롭 테이블 문을 사용하여 MySQL에서 테이블을 어떻게 드롭합니까?Mar 19, 2025 pm 03:52 PM

이 기사에서는 Drop Table 문을 사용하여 MySQL에서 테이블을 떨어 뜨리는 것에 대해 설명하여 예방 조치와 위험을 강조합니다. 백업 없이는 행동이 돌이킬 수 없으며 복구 방법 및 잠재적 생산 환경 위험을 상세하게합니다.

외국 키를 사용하여 관계를 어떻게 표현합니까?외국 키를 사용하여 관계를 어떻게 표현합니까?Mar 19, 2025 pm 03:48 PM

기사는 외국 열쇠를 사용하여 데이터베이스의 관계를 나타내고 모범 사례, 데이터 무결성 및 피할 수있는 일반적인 함정에 중점을 둡니다.

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?Mar 18, 2025 pm 12:00 PM

기사는 준비된 명령문, 입력 검증 및 강력한 암호 정책을 사용하여 SQL 주입 및 무차별 적 공격에 대한 MySQL 보안에 대해 논의합니다 (159 자)

JSON 열에서 인덱스를 어떻게 생성합니까?JSON 열에서 인덱스를 어떻게 생성합니까?Mar 21, 2025 pm 12:13 PM

이 기사에서는 PostgreSQL, MySQL 및 MongoDB와 같은 다양한 데이터베이스에서 JSON 열에서 인덱스를 작성하여 쿼리 성능을 향상시킵니다. 특정 JSON 경로를 인덱싱하는 구문 및 이점을 설명하고 지원되는 데이터베이스 시스템을 나열합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.