SQL 基本语法

问题导向清单

问题导向清单
问题解决方案
选取记录?SELECT 所有/指定字段 FROM 表名。
选取满足条件的记录?SELECT 所有/指定字段 FROM 表名 WHERE 满足条件。
选取同时满足多个条件的记录?SELECT 所有/指定字段 FROM 表名 WHERE 条件1 AND 条件2。
SELECT 所有/指定字段 FROM 表名 WHERE 条件1 OR 条件2。

创建数据表 CREATE TABLE

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";
					
				

SQL 语句

					
/*
 * 从 my_tb 表中选取所有记录。
 */
SELECT * FROM my_tb;
					
				

常用 SQL 命令:

常用 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 关键字用于对结果集进行排序。

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...

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...

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 Table

Truncate ([ˈtrʌŋkeɪt]截断)是一个能够快速清空数据表内所有资料的 SQL 语法。并且能针对具有 自动递增值(AUTO_INCREMENT) 的字段,做 计数重置归零 重新计算的作用。

					
/*
 * table_name: 要截断的表的名称或要删除其全部行的表的名称。
 */
TRUNCATE TABLE table_name
					
				

说明: