最近从零开始学习数据库,基本的东西都知道,就是写起来没那么溜。知识掌握不牢固,就花点时间练一练吧。
建表
在这里创建两个表,一个国家表,记录国家名称和地理位置,另外一个地理位置表,用以枚举地理位置。
建表语法:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [database_name.] <table_name>
(
<column_name> <data_type> [[not] null],…
)
CREATE TABLE country(
id SMALLINT UNSIGNED PRIMARY KEY auto_increment,
name VARCHAR(50) NOT NULL DEFAULT 'country_name',
location TINYINT NOT NULL DEFAULT 0);
CREATE TABLE location(
id SMALLINT UNSIGNED PRIMARY KEY auto_increment,
name VARCHAR(10) NOT NULL DEFAULT '');
简单的建表语句就如上所示,unsinged表示无符号,primary key表示主键,auto_increment表示自增长,not null表示不为空,default后面接默认值。
增删改查
几个小例子,就为记住其基本语法。
-- 插入语法
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
-- INSERT
INSERT INTO country VALUES(null, 'China', 0) ,(null, 'England', 0);
INSERT country(name) VALUES('Amarica'),('Russia');
-- 单表删除语法
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
-- 多表删除语法
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*] ...]
FROM table_references
[WHERE where_definition]
-- 或者:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
FROM tbl_name[.*] [, tbl_name[.*] ...]
USING table_references
[WHERE where_definition]
-- DELETE
DELETE FROM country WHERE name = 'Amarica' or id = 3;
-- 单表更改语法
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
-- 多表更改语法
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
-- UPDATE
UPDATE country SET name = 'Africa', location = 1 where name = 'Russia';
-- SELECT
SELECT c.name AS 国家, l.name AS 地理位置 FROM country c, location l WHERE c.location = l.id;
select的完整语法太长,就不列在上面了,可以去查看查考。