可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。 SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。 查询和更新指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据INSERT INTO - 向数据库表中插入数据 SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。 SQL 中最重要的 DDL 语句:CREATE DATABASE - 创建新数据库ALTER DATABASE - 修改数据库CREATE TABLE - 创建新表ALTER TABLE - 变更(改变)数据库表DROP TABLE - 删除表CREATE INDEX - 创建索引(搜索键)DROP INDEX - 删除索引SELECT用于检索表数据。
检索单列 SELECT column_nane FROM table_name;检索多列 SELECT column_nane1, column_name2 FROM table_name;检索所有列 SELECT * FROM table_name; 使用*通配符返回表中所有列,通常不建议使用通配符*,过多使用会降低检索和应用程序的性能。检索不同的行 获取表中某列或多列的不同值,只要在SELECT后加上一个DISTINCT即可,语法如下: SELECT DISTINCT column_name FROM table_name; 注意:DISTINCT关键应用于所有列,而不是前置它的列,如果给出SELECT DISTINCT column_name1, column_name2,除非两个指定的列都不同,否则所有的行都被检索出来。限制结果 LIMIT字句可以限制SELECT语句返回的数据数量。 LIMIT row_num:row_num表示行数,带一个值的LIMIT总是从第一行开始,返回row_num行 LIMIT no_of_rows, row_num:no_of_rows表示行号,row_num表示行数,带两个值的LIMIT返回第no_of_rows行开始的row_num行 LIMIT no_of_rows, row_num的替代语法为LIMIT row_num OFFSET no_of_rows,意为从行no_of_rows开始取row_num行。 实例:SELECT prod_name FROM products LIMIT 5; // 返回前5行 LIMIT 5,5; // 返回从行5开始的5行 LIMIT 4 OFFSET 3; // 返回从第3行开始的4行。注意:
检索出来的结果第一行为行0,因此,LIMIT1,1将检索出第二行在行数不够时,LIMIT中指定要检索的函数为检索的最大行数,如果不够,返回它有的量。 使用完全限定的表名 有些情形需要完全限定的名:完全限定的列名或表名 实例:SELECT products.prod_name FROM crashcourse.products;补充:
每条mysql语句都以“;”结束SQL语句中的关键字不区分大小写,mysql中标识符(表名、列名等)默认不区分大小写,一般建议:SQL关键字使用大写,而对所有的列与表名使用小写。SQL语句中,空格都被忽略,一条语句可以分成多行,最后以分号结尾,这样利于阅读和调试。 如:SELECT prod_id, prod_name, prod_price FROM products;