1. create database<数据库名>; --创建数据库
    2. create table<表名><列名><数据类型><该列所需约束>; --创建表
    3. drop table<表名>; --删除表
    4. alter table <表名> add <列名> <数据类型>; --新增列
    5. alter table <表名> drop column <列名>; --删除列
    6. sp_rename<变更前名称> <变更后名称>; --修改数据库名字
    7. insert into <表名><列名> values <数据>; --向表插入数据
    8. select <列名> from <表名>; --查询数据库
    9. select <列名> from <表名> where <条件表达式>; --查询特定的数据

    1、DISTINCT

    • 在SELECT语句中使用DISTINCT可以在查询时删除重复行,使查询出来的结果都是唯一值。
      1. select distinct product_name from Product;

    2、运算符
    image.pngimage.png
    3、IS NULL

    • NULL翻译过来是“空”
    • 可以使用IS NULL来筛选表中含有NULL的列名
    • 使用IS NOT NULL 筛选不含有NULL的列名

      1. select * from Product where produst_name is null; --查询表中含有null的列
      2. select * from Product where product_name is not null; --查询表中不包含null的列

      4、NOT

    • 想要指定“不是~”这样的否定条件时,需要使用<> 或者 != 运算符。除此之外还存在另外一个表示否定,并且使用范围更广的运算符 not,not运算符用来否定某一条件,但是不能滥用。

      1. select * from Product where sale_price >= 1000; --查询价格大于等于1000元的商品
      2. select * from Product where not sale_price >= 1000; --查询价格不等于大于1000元的商品

      5、AND\OR

    • AND 运算符在其两侧的查询条件都成立时整个查询条件才成立,其意思相当于“并且”。

    • OR 运算符在其两侧的查询条件有一个成立时整个查询条件都成立,其意思相当于“或者
    • 多个查询条件进行组合时,需要使用AND运算符或者OR运算符。 ```sql select * from Product where product_name = ‘衣服’ and sale_price > 1000; —查询价格大于1000的衣服

    select * from Product where product_name = ‘菜刀’ or sale_price > 500; —查询商品名字:菜刀,或者商品价格大于500元

    1. 6、**聚合函数**
    2. - 通过SQL 对数据进行某种操作或计算时需要使用函数。例如,计算表中全部数据的行数时,可以使用COUNT 函数。该函数就是使用COUNT(计数)来命名的。除此之外,SQL 中还有很多其他用于汇总的函数,在聚合函数里面也可以使用distinct,例如:COUNT(distinct product_name)
    3. - COUNT 计算表中的记录数(行数)
    4. - SUM 计算表中数值列中数据的合计值
    5. - AVG 计算表中数值列中数据的平均值
    6. - MAX 求出表中任意列中数据的最大值
    7. - MIN 求出表中任意列中数据的最小值
    8. ```sql
    9. select count(product_name) from Product; --计数
    10. select sum(sale_price) from Product ; --求和
    11. select......

    7、GROUP BY

    • 使用GROUP BY子句可以像切蛋糕那样将表分割。通过使用聚合函数和GROUP BY子句,可以对数据类型进行分组。
    • 聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来。
    • 使用聚合函数和GROUP BY子句时需要注意以下4点。
    • ① 只能写在SELECT子句之中
    • ② GROUP BY子句中不能使用SELECT子句中列的别名
    • ③ GROUP BY子句的聚合结果是无序的
    • ④ WHERE子句中不能使用聚合函数

      1. select product_name count(*) from Product;
      2. group by product_name;

      8、HAVING

    • HAVING和GROUP BY 搭配使用,HAVING的作用是:GROUP BY在对数据类型进行分组后使用HAVING对分组好的数据进行条件筛选。HAVING类似于WHERE字句,但WHERE只能指定行的条件,不能记录组的条件,而HAVING可以指定组的条件,不能记录行的条件。

    • WHERE 子句 = 指定行所对应的条件
    • HAVING 子句 = 指定组所对应的条件

      1. select product_type,count(*) from Product
      2. group by product_type
      3. having count(*) > 2;
      4. --查询分组数量大于2的组别

      9、ORDER BY

    • ORDER BY用于对查询出来的结果进行顺序排列,不论何种情况,ORDER BY 子句都需要写在SELECT 语句的末尾

    • 可以使用别名、聚合函数,但是不能对NULL进行排序。

      1. select * from Product order by sale_price; --从小到大排序
      2. select * from Product order by sale_price desc; --从大到小排序

      10、INSERT VALUES

    • 新创建的表是没有数据的,使用INSERT语句可以向表中插入数据(行),表名后面的列清单和VALUES 子句中的值清单的列数必须保持一致。列数不一致时会出错,无法插入数据。 ```sql inser into <表名> (列名) values(数据清单); —基本语法

    insert into Product(product_id,product_name,product_type,sale_price) —单行插入 values(‘0019’,’订书机’,’办公用品’,300);

    insert into Product(product_id,product_name,product_type,sale_price,purehase_price,regist_date) values(‘0010’,’涂改液’,’办公用品’,600,1200,’2010-10-25’), (‘0011’,’A4纸’,’办公用品’,300,100,’2010-10-25’), (‘0012’,’裤子’,’衣服’,1600,4200,’2010-10-25’) —多行插入

    insert into Product values(‘0009’,’西瓜刀’,’厨房用具’,500,1000,’2010-10-25’) —单行插入

    insert into Product values(‘0009’,’筷子’,’厨房用具’,300,7000,’2010-10-25’), (‘0009’,’碗’,’厨房用具’,300,1000,’2010-10-25’) (‘0009’,’西瓜刀’,’厨房用具’,500,1000,’2010-10-25’) —多行插入

    1. - 还可以使用INSERT从其他表中复制数据,(可以用该功能来备份表)
    2. - [SQL 复制数据及表结构](https://www.yuque.com/u2059997/brh1n5/dkc4lg?view=doc_embed)
    3. 11、**DELETE**
    4. - DELETE可以删除表中全部数据也可以有针对性的删除某些数据!**谨慎删除数据,一旦删除后无法恢复**
    5. - 还有另外一种TRUNCATE语句,基本语法:(TRUNCATE<表名>), TRUNCATE只能删除表中全部数据,不能使用WHERE添加条件来删除部分数据。在删除速度上 TRUNCATE DELETE 要快得多,因为TRUNCATE不能添加WHERE条件!
    6. ```sql
    7. delete from Product; --删除表中全部数据
    8. delete from Product
    9. where product_id = '0001'; --有条件的删除数据
    10. delete from Product
    11. where not product_id = '0001'; --有条件的删除数据

    12、UPDATE

    • 使用UPDATE语句可以更改(更新)表中的数据。
    • 更新部分数据行时可以使用WHERE来指定更新对象的条件。通过WHERE
    • 子句指定更新对象的UPDATE语句称为搜索型UPDATE语句。
    • UPDATE语句可以将列的值更新为NULL。
    • 同时更新多列时,可以在UPDATE语句的SET子句中,使用逗号分隔更
    • 对更新的数据也可以进行加减乘除 ```sql update<表名> set <列名> = <表达式>; —基本语法

    update Product set sale_price = 100; —把sale_price字段全部更新为100

    update Product set sale_price = 300 where product_id = ‘0001’; —把product_id为100的sale_price字段更新为300

    update Product set sale_price = sale_price 10, purchase_price = purchase_price / 2 where product_type = ‘厨房用具’; —对多行数据更新 ``` *
    image.png