问题导向清单
问题 | 解决方案 |
---|---|
选取记录? | SELECT 所有/指定字段 FROM 表名。 |
选取满足条件的记录? | SELECT 所有/指定字段 FROM 表名 WHERE 满足条件。 |
选取同时满足多个条件的记录? | SELECT 所有/指定字段 FROM 表名 WHERE 条件1 AND 条件2。 SELECT 所有/指定字段 FROM 表名 WHERE 条件1 OR 条件2。 |
问题 | 解决方案 |
---|---|
选取记录? | SELECT 所有/指定字段 FROM 表名。 |
选取满足条件的记录? | SELECT 所有/指定字段 FROM 表名 WHERE 满足条件。 |
选取同时满足多个条件的记录? | SELECT 所有/指定字段 FROM 表名 WHERE 条件1 AND 条件2。 SELECT 所有/指定字段 FROM 表名 WHERE 条件1 OR 条件2。 |
CREATE TABLE 语句用于创建数据库中的表。表由 行 和 列 组成,每个表都必须有个 表名。
/*
* SQL CREATE TABLE 语法
* column_name: 参数规定表中列的名称。
* data_type: 参数规定列的数据类型,例如 varchar、integer、decimal、date 等。
* size: 参数规定表中列的最大长度。
*/
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
/*
* CREATE TABLE IF NOT EXISTS 表不存在就创建
* NOT NULL: 不为空。
* PRIMARY KEY: 主键。
* AUTO_INCREMENT: 自增。
* DEFAULT: 默认值。
* ENGINE=MyISAM DEFAULT CHARSET=utf8: SQL引擎及其约束和字符编码。
*/
$create_tb = "CREATE TABLE IF NOT EXISTS {$_SESSION['username']} (
`id` int(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`age` int(2) NOT NULL DEFAULT 0,
`username` varchar(20) NOT NULL DEFAULT '0',
`address` varchar(20) NOT NULL DEFAULT '0',
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
/*
* 从 my_tb 表中选取所有记录。
*/
SELECT * FROM my_tb;
常用 SQL 命令:
命令 | 说明 |
---|---|
SELECT | 从数据库中选取数据。 |
INSERT INTO | 向数据库中插入新数据。 |
UPDATE | 更新数据库中的数据。 |
DELETE | 从数据库中删除数据。 |
CREATE DATABASE | 创建新数据库。 |
ALTER DATABASE | 修改数据库。(alter[ˈɔːltər]更改,修改) |
CREATE TABLE | 创建新表。 |
ALTER TABLE | 修改数据库表。 |
DROP TABLE | 删除表。(drop[drɑːp]删除,去掉) |
CREATE INDEX | 创建索引(搜索键)。 |
DROP INDEX | 删除索引。 |
ORDER BY 关键字用于对结果集进行排序。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。默认按照 升序 对记录进行排序。使用 DESC 关键字将按照 降序 对记录进行排序。
/*
* ORDER BY column_name: 按照 column_name 列(默认升序)排序。
* ORDER BY column_name ASC: 按照 column_name 列 升序 排序。
* ORDER BY column_name DESC: 按照 column_name 列 降序 排序。
* ORDER BY column_name1,column_name2: 先按照 column_name1 列升序排序,在此基础之上,再按照 column_name2 列升序排序。
*/
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
INSERT INTO 语句用于向表中插入新记录。
/*
* 不指定要插入数据的列名(默认每一列,除了自动更新的类似 id 的主键外),只提供被插入的值:
*/
INSERT INTO table_name
VALUES (value1,value2,value3,...);
/*
* 指定要插入数据的列名,并提供被插入的值:
* 除了自动更新(id)的列,未指定列名的缺省值将为设置的 是否空值 属性。
*/
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
/*
* 客户ID 作为主键是自动更新的。
*/
INSERT INTO kehu(客户姓名,客户地址)
VALUES('王浩','北京XXX')
DELETE 语句用于删除表中的记录。
/*
* WHERE 子句规定哪些记录需要删除。如果省略了 WHERE 子句,所有的记录都将被删除!
*/
DELETE FROM table_name
WHERE some_column=some_value;
DELETE FROM 客户
WHERE 客户姓名='王浩' AND 客户地址='北京XXX';
/*
* 删除所有数据:
* 在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:
*/
DELETE FROM table_name;
//或者:
DELETE * FROM table_name;
说明:
Truncate ([ˈtrʌŋkeɪt]截断)是一个能够快速清空数据表内所有资料的 SQL 语法。并且能针对具有 自动递增值(AUTO_INCREMENT) 的字段,做 计数重置归零 重新计算的作用。
/*
* table_name: 要截断的表的名称或要删除其全部行的表的名称。
*/
TRUNCATE TABLE table_name
说明: