Mysql必知必会Note-第四章 检索数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sha18751330807/article/details/83317434

基本知识

  • 连接Mysql的命令:mysql -u name -p password -h serverIP -P port

SQL DML和DDL

可以把 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行。
    

注意:

  1. 检索出来的结果第一行为行0,因此,LIMIT1,1将检索出第二行
  2. 在行数不够时,LIMIT中指定要检索的函数为检索的最大行数,如果不够,返回它有的量。
  • 使用完全限定的表名
    有些情形需要完全限定的名:完全限定的列名或表名
    实例:
    SELECT products.prod_name
    FROM crashcourse.products;
    

补充:

  1. 每条mysql语句都以“;”结束
  2. SQL语句中的关键字不区分大小写,mysql中标识符(表名、列名等)默认不区分大小写,一般建议:SQL关键字使用大写,而对所有的列与表名使用小写。
  3. SQL语句中,空格都被忽略,一条语句可以分成多行,最后以分号结尾,这样利于阅读和调试。
    如:
    SELECT prod_id, prod_name, prod_price
    FROM products;
    

猜你喜欢

转载自blog.csdn.net/sha18751330807/article/details/83317434