sql语法、关系建模

简介: sql 数据类型  好处更多的数据存储方案 存储更加灵活 数值:int(11)             bigint(20) 大数据类型相当于Java的long类型           decimal(浮点数据类型) 可以定义大小与保留后几位小数 decimal(20,3)        字符类型.

sql 数据类型 好处更多的数据存储方案 存储更加灵活

     
数值:int(11)

               bigint(20) 大数据类型相当于Java的long类型

               decimal(浮点数据类型) 可以定义大小与保留后几位小数 decimal(20,3)

26.gif


字符类型:char(10)

                varchar(3000)最常用字符类型 一定要定义大小

               text 超文本类型 可以存储文本 不建议使用 不好优化、 数据太大不建议存储到数据库当中

26.gif


时间:datetime 最常用数据类型 包括年月日时分秒

          date、time、year

26.gif


其他:enum 枚举 bit(0和1) boolean(true、fales)

26.gif


创建数据命令:drop database 数据库名称;

创建数据库表命令:CREATE TABLE 名称(列说明,列说明,列说明)

      列名

      数据类型

      属性: not null (不能为空)

                 null (为空)

                 default (默认值)

                 primary key (主键)

                 AUTO_INCREMENT 自动增长 缺点需要排队执行效率提不上去


一张表需要有一个主键:好处方便检索,检索速度快、因为主键具有唯一性

26.gif


INSERT(插入数据)

                          语法 INSERT INTO 表[(列名,列名)] VALUES(值,值,值,值)

                           INSERT INTO student VALUES(1,'张三','北京海淀区')

26.gif


UPDATE(修改数据)

                   注意事项:所有的修改中的条件判断、与修改 都是用sql修改

                  不要用逻辑将对象查出来 拿这对象修改、因为存在万一数据库有人修改、那你的数据还是没改的数据


                   语法:UPDATE 表 SET 列=值,列=值,列=值 条件 

                   UPDATE user2 SET uid=uid+100 where uid>10

26.gif


条件WHERE:

                     行级操作的,它每操作一行都会询问你,是否允许操作(= > < >= <=,<> != 这个两个都是不等于 )

                     AND OR NOT 的的意思 意思两个条件必须都满足

                     UPDATE USER2 SET USERNAME='小萝卜头' WHERE uid>=950 AND uid <960 AND username!='a'

26.gif


select查询:

                   select [列名 可以有多个列] from [表名] where [查询条件 可以有多个条件]

26.gif


分页查询: 数据大了不可能全部读取上来只能选择读上来一部分

                  SELECT * FROM user2 LIMIT 0,5

                   LIMIT 分页关键字 第一个参数从第几行开始、第二个参数每次读几行

26.gif


排序查询:

                order by 排序关键字  这个要注意 要在where 后面写、再在limit前面 写在分页前面 

                DESC 降序 从打到小   ASC 升序(在关键后面写) 、order by desc(这句话的意思是:排序按照降序)  

                select*from stu where sname='小明' order by uid DESC limit 0,5  uid(按照哪一个列进行排序,这里是按照uid查询 条件自定选择)

26.gif


 聚合函数:(可以帮我们做一些运算、帮助我们的开发)

                count  统计总行数

                     select count(*) from stu; 统计这个表共有多少行

                     select count(sid) from stu; 统计下sid这个行共有多少个

                     select count(*) from stu where mm>=15;  查询这个表 将满足这个条件的列 统计下共有多好行

              

                avg  数值列  统计这个列的平均值     SELECT AVG(uid) FROM user2

                sum  数值列 统计这个列的总和        SELECT SUM(uid) FROM user2

                max  数值列 找到这个列中的最大值 SELECT MAX(uid) FROM user2

                min  数值列 找到这个列中的最小值  SELECT MIN(uid) FROM user2

26.gif


 分组查询:

                GROUP BY  把相同的列在一组 、再查看列的时候只能写分组的那个列、聚合函数与分组在一起只是统计这一组的数据

                SELECT xiangmu FROM cba GROUP BY xiangmu ; \\将 xiangmu有关的列合并起来

                SELECT address FROM student GROUP BY address ; \\将 address有关的列合并起来

                SELECT xiangmu,COUNT(*) FROM cba WHERE duiwu='新疆' GROUP BY xiangmu ORDER BY COUNT(*) DESC

                 这句的意思 查询cba 将姓名相同的列合并起来 统计共有多少行 条件是duiwu='新疆'  按照生效

26.gif


子查询:以里面的查询为条件

    SELECT * FROM tiezi WHERE yhid=(SELECT yhid FROM yonghu WHERE nicheng='阿朗')

子查询可以用in查询多个:不建议使用查询效率高不起来

   select * from table where sid in(1,2,34,45,5,4)

26.gif


模糊查询 like 模糊查询关键字 模糊查询效率高不起来

     SELECT * FROM tiezi WHERE biaoti LIKE '%123%'   只要含有123的都查询出来

     凯%                只要含有凯开头就可以

    %凯%              只要字符里面还有凯字样就行

    %java%凯%     有这两个关键字都查询出来

26.gif


UNION 记录集合并 适合将不同的表和在一起将记录做成一张表

     UNION ALL 重复记录也合并

     UNION  去除重复记录


SELECT sid,sname,address,age,cid FROM student

UNION UNION  

SELECT  cid,cname,NULL,NULL,NULL FROM cls

26.gif


表联查

SELECT * FROM 表  连接方式   表  ...  ON 连接条件    WHERE 记录过滤条件     ORDER BY 排序   LIMIT 0,1

问题

     连接查询,肯定会出现重复列,在数据库中没有问题,在代码开发中会出现重复列错误


SELECT * FROM student 

INNER JOIN cls 

INNER JOIN room

INNER JOIN banzhuren

ON student.`cid`=cls.`cid` AND cls.`rid`=room.`rid`

AND cls.`bid`=banzhuren.`bid`

26.gif


目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
TiDB支持的SQL语法概述
【2月更文挑战第28天】本章将对TiDB所支持的SQL语法进行概述,涵盖其主要的语法特性和功能。我们将从基本的SQL语句到更复杂的查询和操作,逐步介绍TiDB的SQL语法,帮助读者更好地理解和使用TiDB进行数据库操作。
|
2月前
|
SQL 存储 数据管理
阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
【2月更文挑战第9天】阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
52 2
|
4月前
|
SQL Oracle 关系型数据库
SQL 中的运算符与别名:使用示例和语法详解
IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写
212 0
|
4月前
|
SQL Oracle 关系型数据库
|
4月前
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
78 0
|
1月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
18 1
|
6月前
|
SQL 存储 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
77 0
|
1月前
|
SQL 存储 关系型数据库
SQL的基本语法以及SQL语句的关键字的使用,SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等。
SQL的基本语法以及SQL语句的关键字的使用,SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER、DROP等。
|
1月前
|
SQL 监控 测试技术
SQL语法优化与最佳实践
【2月更文挑战第28天】本章将深入探讨SQL语法优化的重要性以及具体的优化策略和最佳实践。通过掌握和理解这些优化技巧,读者将能够编写出更高效、更稳定的SQL查询,提升数据库性能,降低系统资源消耗。
|
1月前
|
SQL 关系型数据库 MySQL
TiDB特有的SQL语法和特性
【2月更文挑战第28天】本章将深入探讨TiDB特有的SQL语法和特性,这些功能和优化是TiDB相较于传统关系型数据库所独有的。通过了解这些特性,读者将能更充分地利用TiDB的优势,优化数据库性能,提升业务处理效率。