版权声明:本文为博主原创文章,未经博主允许不得转载。 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行。
注意:
- 检索出来的结果第一行为行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;