廖雪峰SQL教程-摘要

 

安装MySQL教程:https://www.cnblogs.com/laumians-notes/p/9069498.html#undefined

 

#创建一个表
CREATE TABLE w3cschool_tbl(
   w3cschool_id INT NOT NULL AUTO_INCREMENT,
   w3cschool_title VARCHAR(100) NOT NULL,
   w3cschool_author VARCHAR(40) NOT NULL,
   submission_date DATE,
   PRIMARY KEY ( w3cschool_id )
   );

实例解析:

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
案例来源:https://www.w3cschool.cn/mysql/mysql-create-tables.html

=============================删除表==================================
#删除表
DROP TABLE 表名 ;


#删除表中数据
DELETE FROM w3cschool_tbl WHERE w3cschool_id=3
如果没有where将删除表中所有记录


=============================插入数据=================================

#插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );


#插入一条数据到 w3cschool_tbl
INSERT INTO w3cschool_tbl
     ->(w3cschool_title, w3cschool_author, submission_date)
     ->VALUES
     ->("JAVA Tutorial", "Sanjay", '2007-05-06');

#在以上实例中,我们并没有提供 w3cschool_id 的数据,因为该字段我们在创建表的时候已经设置它为 #AUTO_INCREMENT(自动增加) 属性

========================================================================

 

选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。(如身份证、手机号虽然唯一,但是不能做为主键)

 

外键:可以把数据与另一张表关联起来,这种列称为外键

关系数据库通过外键可以实现一对多、多对多和一对一的关系。外键既可以通过数据库来约束,也可以不设置约束,仅依靠应用程序的逻辑来保证。

 

 

索引:通过对数据库表创建索引,可以提高查询速度。

 

=========================================查询========================================

基本查询:

 SELECT  *  FROM  表名

条件查询

SELECT * RROM 表名 WHERE  条件表达式

投影查询(查看个别几个列):

SELECT  列1,列2 ...  FROM  表名

SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM ...

====================================排序=====================================

排序:(写在where 子句后面)

只要在上面查询的语句后面加上   ORDER BY 列名

如果排序结果要反过来就加上 DESC

默认的排序规则是ASC:“升序”,即从小到大

如果一个列有相同的值,可以继续添加列名  ORDER BY 列1   DESC, 列2

=================================分页查询=======================================

当数量很多的时候,select 查询可以用分页功能

select * from 表名   order by 列1   LIMIT <M> OFFSET <N>

M 为一页展示多少条记录,

N为当前页的索引。 M*(索引-1)

==============================聚合查询==========================================

SELECT COUNT(*) FROM 表名;   返回表中有多少条记录。

也可以起别名,然后用 where

SELECT COUNT(*)  别名1   FROM 表名  WHERE  条件表达式;

注意,MAX()MIN()函数并不限于数值类型。如果是字符类型,MAX()MIN()会返回排序最后和排序最前的字符。如果聚合查询的WHERE条件没有匹配到任何行,COUNT()会返回0,而SUM()AVG()MAX()MIN()会返回NULL

分组聚合

SELECT COUNT(*) num FROM 表名 GROUP BY 列名1;  根据列1不同的值统计总数。

==========================================多表查询=======================================

SELECT * FROM 表1,表2

可以给列取别名,但是用 表名.列名 的方式访问

SELECT  表1.列名  别名, 表2.列名  FROM 表1,表2

SELECT  表1别名.列名  别名, 表2别名.列名  FROM 表1 表1别名,表2 表2别名

这种方式的多表查询是笛卡尔查询,返回的结果列数等于两个表的列数和,表的行数等于两个表的行之乘积。

=================================连接查询(拼接查询)============================

 

========================插入、更新、删除===================================

INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);

 

UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;

当update没有设置where的时候,将会更新整个列的数据

 

DELETE FROM <表名> WHERE ...;

使用 truncate 表 可以连通id一起删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值