SQL基础语法

简介: SQL基础语法

一.DDL: 操作表


       1.创建表(create)

       create table users(


       );


       2.查询表(Retrieve)

       desc 查询表结构


       3.数据类型

       double(总长度,小数点后保留的位数)

       varchar(20)        存储性能低   变长   节约空间

       char()定长字符串    存储性能高   定长   浪费空间


       4.删除表 drop table 表名

       drop table if exists 表名


       5.修改表   alter table 表名+

       修改表名

       alter table 表名 rename to 新表名;

       添加一列

       add  table  表名 add 列名 数据类型;

       修改数据类型

       alter table 表名 modify 列名 新数据类型;

       修改列名和数据类型

       alter table 表名 change 列名 新列名 新数据类型;

       删除列

       alter table 表名 drop 列名;


二.DML :  对表中数据进行增删改


       1.添加数据

       给指定列添加数据:

       insert into 表名 (列名1,列名2)values(值1,值2);

       给所有列添加数据

       insert into 表名 values();


       2.修改数据   update 表名 set 列名1=值1 [where 条件]

        注意:修改语句中如果不加条件,则将所有数据都修改


       3.删除数据

       delete from 表名


三.DQL: 查询数据


                                                                       基础查询


       1.查询多个字段

       select 字段列表 from 表名;

       select * from 表名; 尽量自己写字段表名


        2.去掉重复记录

       select distinct 字段列表 from 表名;


        3.取别名

       AS    as可省略


                                        条件查询语法

       1.&& 并且         在SQL中建议使用and

       between  20 and 30   在20-30


       2.等于 =    不等于 != 或<>


       3.或者 or   ||   in(18,20)


       4.null值的比较,不能使用=,!=,需要使用 is is not

       is null         is not null


       5.like 模糊查询

       通配符 : _ 代表单个字符        %代表任意个数字符



                       排序查询:   order by  排序字段名1   [排序方式1],[排序方式2]

       默认asc 升序   desc 降序

       多个排序条件 : 只有第一个排序条件相同时,才会根据第二个排序


                                 分组查询:      group by


       聚合函数:将一列数据作为一个整体,进行纵向计算  (null不参与聚合函数的运算)

               count(列名)  

           count 统计的列名不能为null

           取值:1.主键 2.*

       max(列名)

       min(列名)

       sum(列名)

       avg(列名)


       分组后,查询字段要么是分组字段,要么是聚合函数,查询其它字段没有意义

       where 不能对聚合函数进行判断,having可以


       where在分组前使用   having在分组后使用

       执行顺序: where>聚合函数>having


                                    分页查询  limit


       limit 起始索引,查询条目数

       1.从0开始查询,查询3条数据

       select * from stu limit 0,3

       2.每页显示3条数据,查询第一页数据

       select * from stu limit 0,3

       3.每页显示3条数据,查询第二页数据

       select * from stu limit 3,3    

       起始索引公式:(当前页码-1)*每页的条数


                                         约束


约束的概念和分类

1.概念:

   约束是作用于表中列上的规则,用于限制加入表的数据

   约束的存在保证了数据库中数据的正确性,有效性和完整性

2.约束的分类

非空约束 ( 保证列中所有数据不能有null值 )            not null            

唯一约束 ( 保证列中所有数据各不相同 )             unique

主键约束 ( 主键是一行数据的唯一标识,要求非空且唯一 )   primary key      

检查约束 ( 保证列中的值满足某一条件 )            check

默认约束 ( 保存数据时,未指定值则采用默认值0)    default

外键约束 ( 外键用来让两个表的数据之间建立连接,保证数据的统一性和完整性)  foreign key

注:MySQL不支持检查约束

非空且唯一 : not null unique

自增长 : auto_increment   当列是数字类型,并且唯一约束

外键约束: foreign key (外键列名)   references 主表(主表列名)


表关系之一对多(多对一)

如:一个部门对应多个员工,多个员工对应一个部门

实现方式:在多的一方建立外键,指向一的一方的主键


表关系之多对多

如: 一个商品对应多个订单,一个订单包含多个商品

实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键


表关系之一对一

   如:用户 和 用户详情

一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能

实现方式: 在任意一方加入外键,关联另一方主键,并且设置外键为唯一


                                   多表查询


内连接:    查询两张表的交集

隐式内连接:

select * from user ,emp where user.id=emp.id;

显示内连接:

select * from user join emp on user.id=emp.id;


外连接:    

左外连接:相当于查询A表所有数据和交集部分数据

select * from A left join B on user.id=emp.id;

右外连接:相当于查询B表所有数据和交集部分数据

select * from B left join A on user.id=emp.id;


                                        子查询:


       1.子查询根据查询结果不同,作用不同:



                   单行单列:    作为条件值,使用 = != > < 等进行条件判断

       select 字段列表 from 表 where 字段名 =(子查询)


                   多行单列: 作为条件值,使用in等关键字进行条件判断

               select 字段列表 from 表 where 字段名 in (子查询)


                   多行多列: 作为虚拟表

select 字段列表 from (子查询)  where 条件;


目录
相关文章
|
11天前
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
32 3
|
16天前
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
27 5
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础第一篇(SQL通用语法与分类)
MySQL数据库基础第一篇(SQL通用语法与分类)
|
5月前
|
SQL PHP
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
31 0
|
24天前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
1月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
13 0
|
1月前
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
29 0
|
3月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
41 5
|
4月前
|
SQL 关系型数据库 数据库
sql语法
【7月更文挑战第30天】sql语法
46 12
|
3月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
360 0