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


目录
相关文章
|
9月前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
787 55
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
SQL 关系型数据库 MySQL
MySQL数据库基础第一篇(SQL通用语法与分类)
MySQL数据库基础第一篇(SQL通用语法与分类)
|
SQL PHP
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
111 0
|
10月前
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
291 3
|
10月前
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
144 5
|
11月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
11月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
237 0
|
11月前
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
126 0
|
SQL 关系型数据库 数据库
sql语法
【7月更文挑战第30天】sql语法
149 12
|
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的语法写
121 5