英文原文http://www3.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html#intro
我没有按照字句翻译,我把主要的意思翻译明白。
有没有老师你都可以学会这里的三个部分。
第一部分 介绍一下关系型数据库还有SQL
第一小节 关系数据库
关系数据库就是在表里存储数据,有行有列,行叫记录、列叫域。
数据库管理系统有免费的如:MySQL, Apache Derby (Java DB), mSQL (mini SQL), SQLite, PostgreSQL and Apache OpenOffice's Base。收钱的有:Oracle, IBM DB2, Microsoft SQL Server and Access, SAP SyBase and Teradata
第二小节 SQL语句
关系数据库的语言叫SQL,用来创建,更新,读取,删除记录。SQL定义了好些命令如:SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE。
关系数据库的模型是1970年IBM的Edgar F. Codd 提出来的。后来Donald D. Chamberlin and Raymond F. Boyce 又进一步发展。
1986年ANSI定义了SQL标准。后续有更新了好多,其它公司也出了一些自己的标准。
如果我们在studentdb数据库里创建一个名为class101的表,表有3个域:id,name,gpa。我们这样定义数据类型:id是int型,gpa是float型,name是小于50个字符的string型。就像下面这种:
Database: studentdb
Table: class101
+-----------+--------------------+-------------+
| id (INT) | name (VARCHAR(50)) | gpa (FLOAT) |
+-----------+--------------------+-------------+
| 11 | Tan Ah Teck | 4.4 |
| 33 | Kumar | 4.8 |
| 44 | Kevin | 4.6 |
+-----------+--------------------+-------------+
SQL定义了简便的接口:
SELECT
-- Syntax
SELECT column1, column2,... FROM tableName WHERE criteria
-- Examples
SELECT name, gpa FROM class101
-- Select the columns name and gpa from table class101
SELECT * FROM class101
-- The wildcard * denotes all the columns
SELECT name, gpa FROM class101 WHERE gpa >= 2.0
-- You can compare numbers using =, >, <, >=, <=, <> (!=)
SELECT name, gpa FROM class101 WHERE name = 'Tan Ah Teck'
-- Full-match (= or !=) on string. Strings are enclosed in single quotes
SELECT name, gpa FROM class101 WHERE name LIKE 'T_n%'
-- Use "LIKE" for Pattern-matching, with
-- Wildcard % matches zero or more (any) characters;
-- Wildcard _ matches one (any) character;
SELECT * FROM class101 WHERE gpa > 3.0 OR name LIKE '%T_n%' ORDER BY gpa DESC, name ASC
-- Use AND, OR, NOT on simple conditions
-- Order the results in DESC (descending) or ASC (Ascending)
DELETE
-- Syntax
DELETE FROM tableName WHERE criteria
-- Examples
DELETE FROM class101
-- Delete ALL rows from the table class101! Beware! There is NO UNDO!
DELETE FROM class101 WHERE id = 33
-- Delete rows that meet the criteria
INSERT
-- Syntax
INSERT INTO tableName VALUES (firstColumnValue, ..., lastColumnValue) -- All columns
INSERT INTO tableName (column1, column2, ...) VALUES (value1, value2, ...) -- Selected Columns
-- Example
INSERT INTO class101 VALUES (88, 'Mohammed Ali', 4.88)
INSERT INTO class101 (name, gpa) VALUES ('Kumar', 4.55)
-- Missing fields will be set to their default values or NULL
UPDATE
-- Syntax
UPDATE tableName SET column = value WHERE criteria
-- Examples
UPDATE class101 SET gpa = 5.0 -- ALL rows
UPDATE class101 SET gpa = gpa + 1.0 WHERE name = 'Tan Ah Teck'
CREATE TABLE
-- Syntax
CREATE TABLE tableName (column1Name column1Type, column2Name column2Type, ...)
-- Example
CREATE TABLE class101 (id INT, name VARCHAR(50), gpa FLOAT)
DROP TABLE
-- Syntax
DROP TABLE tableName
-- Example
DROP TABLE class101 -- Delete the table. Beware! There is No UNDO!!!
注意
1、SQL的关键字大小写敏感否是不确定的。MySQL是不敏感的。
2、程序员最好是把名字和字符串作为大小写敏感的处理。
3、 Sql 字符都是单引号(就是这个:‘’)的,好些也可以是双引号(就是这个“”)第二小节 关系数据库的管理系统
Mysql是好使的,免费,速度快。1995年,Michael "Monty" Widenius and David Axmark发明它。(后来是关于mysql的历史,没有翻译了)
Mysql很成功,有好多优点:免费,开源,速度快,容易上手,跨网络,跨平台,安全,小巧。高级数据库的特点它都有,如: transactions, foreign key, replication, subqueries, stored procedures, views and triggers.
Mysql的部署方式一般是:LAMP (Linux-Apache-MySQL-PHP), WAMP (Windows-Apache-MySQL-PHP), or MAMP (Mac-Apache-MySQL-PHP) 。全都是免费的。
Mysql的信息在网站是有,你看都看不完,好多好多。
Mysql操作方式是在tcp链接上用客户端—服务器的结构。服务器端配置一个ip,一个tcp的端口。默认的是3306.你最好选个别的,在1024到65535之间选。客户端也是配置一个ip,一个端口号。
一个数据库服务器可以有多个数据库,一个数据库可以有多个表,一个表有多个行列
第三节 下载安装数据库并且开始编程