【MYSQL】第二篇 基础总结

本文介绍了数据库的语言类别,包括DDL用于定义数据库对象,DML用于数据操纵,DCL用于权限控制,DQL用于数据查询。讨论了Java和MySQL中的数据类型,并详细阐述了数据表的操作,如主键约束、别名、运算符以及SQL函数的使用。此外,还涵盖了数据库和表的创建、删除、查询以及数据的增删改查操作。
摘要由CSDN通过智能技术生成

DDL (数据定义问题)

        数据定义语言 - Data Definition Language

        用来定义数据库的对象,如数据表、视图、索引等

DML  (数据操纵问题)

        数据处理语言 - Data Manipulation Language

        在数据库表中更新,增加和删除记录

        如 update, insert, delete

DCL (数据控制问题)

        数据控制语言 – Data Control Language

        指用于设置用户权限和控制事务语句

        如grant,revoke,if…else,while,begin transaction

DQL (数据查询问题)

        数据查询语言 – Data Query Language

        select

① 大数据类型:

Java中:

        字节流:InputStream

        字符流:Reader

mysql中:

        BLOB 保存的字节数据

        TEXT 保存字符数据

② 数值型

        Java中:byte、short 、 int 、 long 、float、 double   

        mysql中:tinyint 、smallint、int、bigint、FLOAT、DOUBLE  在创建数据表的时候,数值型也有自己的长度,一般不需要指定,使用默认的长度。

逻辑性

        Java中的boolean

        mysql中:BIT

日期型

        Java中的Date、Time、DateTime、TimeStamp

        mysql中:DATE、TIME、DATETIME、TIMESTAMP

        timestamp:它和datetime都可以保存年月日时分秒,但是timestamp它在保存数据的时候表中的这一列会自动的变成当前保存数据时的时间。

主键约束:primary key

唯一约束,unique

非空约束,not null

数据记录的删除操作

        语法:delete from 表名 where条件语句

数据库表删除:

        语法:drop table 表名;

向数据表插入数据:

        语法:insert into 表名 (列名,列名,列名......)  values (值,值,值......);

数据记录修改操作:

        语法: update 表名 set 列名=值,列名=值.... [ where条件语句 ];

对查询的结果进行排序:

        使用order by 子句排序查询结果。        

                语法:select * from 表名 order by 列名 asc|desc ;

                asc是升序排列,desc是降序排列

别名:可以对查询出来的列名 起别名。

语法:select 列名 as 别名,列名 as 别名,列名 as 别名.... from 表名 where 条件;

注意:在使用别名的时候,as 关键字可以省略。

运算符:

        1) 相等=        不等 <> 

        2) 区间:between  ...and... 在两者之间取值 between 70 and 80

                等价于 >=70  并且<=80    注意前面那个数要比后面那个数要小

                sage >=24 and sage<=50  between 24 and 50

        3) in(值,值,值) 在指定值中任取一个 in(70,80,90) 值可以是70、80或者90 

                where 列名 in (值,值,值.......); 

                where 列名=值 or 列名=值 or 列名=值 ....... 

        4) like '模糊查询pattern' 进行模糊查询 ,表达式有两个占位符 % 任意字符串 _ 任意单个字符  

           例如: name like '张%' 所有姓张学员   %张%

           name like '张_' 所有姓张名字为两个字学员 _张_ 

        5) is null 判断该列值为空

              sql中对伊null的判断,不能写 = null   在sql 中 null = null 结果不成立。

                正确格式:is null         

                不是null  : is not null 

        6) and 逻辑与 or 逻辑或 not 逻辑非

SQL中的函数

SQL语言中定义了部分的函数,可以帮助我们完成对查询结果的计算操作:

count 统计个数(行数)

sum函数:求和

avg函数:求平均值

max、min 求最大值和最小值

count函数:

语法:select count(*)|count(列名) from 表名 

注意: count在根据指定的列统计的时候,如果这一列中有null 不会被统计在其中。

sum函数:

语法:select sum(列名) from 表名; 

注意事项:

1、如果使用sum 多列进行求和的时候,如果某一列中的有null,这一列所在的行中的其他数据不会被加到总和。

2、可以使用mysql 数据库提供的函数 ifnull(列名,值) 

3、在数据库中定义double类型数据,是一个近似值,需要确定准确的位数,这时可以把这一列设计成numeric类型。numeric(数据的总列数,小数位数)

numeric double float

avg函数:

语法: select avg(列名) from 表名;

max,min函数: 

Max/min函数返回满足where条件的一列的最大/最小值

group by分组函数

语法:select … from … group by 列名,列名

分组: 按照某一列或者某几列。把相同的数据,进行合并输出。

目的:仍然是统计使用。 

使用group by 子句对列进行分组

group by 它可以根据指定列对数据进行归类。如果这一列中有重复的数据会被合并成一个。

注意事项:

1、聚集函数:分组之后进行计算;

2、通常 select的内容:a 被分组的列,b 函数。

3、如果遇到这种情况   按照 每种,每个。 类似的这些语句的时候,通常会使用分组。

4、如果使用group by 对数据进行分组之后还要过滤。这时一般不能使用where,因为where关键字的后面不能跟上面讲解的这些函数。如果需要在过滤的条件中加上述的函数,只能使用having关键字。

5、where 后不能跟 聚合函数,having中可以跟 聚合函数。

where和having 都可以完成数据的条件书写。但是having后面可以跟上述的函数。

例:select product,sum(price) from orders group by product;

select product,sum(price) from orders group by product having sum(price)>100;

注意事项:

1、值与列一一对应。并且有多少个列,需要写多个值。如果某一个列没有值。可以使用null。表示插入空。

2、值的数据类型,与列被定义的数据类型要相匹配。并且值得长度。不能够超多定义的列的长度。

3、字符串类型:插入字符类型的数据,必须英文的单引号括起来。在mysql中。

4、date 时间类型:也必须用英文的单引号括起来,如 ‘yyyyMMdd’ ,’yyyy-MM-dd’,’yyyy/MM/dd’ 。5、在插入数据的时候,如果某些列可以为null,或者是自动增长的列,或者有默认值的,在插入的时候可以省略。

6、如果给表中的所有列插入数据,这时可以省略表名后面的列名,直接写values

库的操作

创建库:create database 库名 character set 编码表 collate 排序规则;

删除库:drop database 库名;

查询库:show databases;

查看库的编码表:show create database 库名;

更改库:use 库名;

查看当前正在使用的库:select database();

修改库的编码表:alter database 库名 character set 编码表 collate 排序规则;

表本身的操作

创建表:create table 表名( 列名 列的类型(长度)  类的约束 ,列名 列的类型(长度)  类的约束...... );

删除表:drop table 表名;

查询表:show tables;

查看表的结构:desc 表名;

查看表的编码表:show create table 表名;

修改表:alter table 表名 增/删/改 列名 列的类型(长度) 约束;

add/drop/change/modify

修改表名:rename table 旧表名 to 新表名;

表中数据的操作

增:insert into 表名(列名) values(值);

删:delete from 表名 where 条件;  truncate

改:update 表名 set 列名=值 ,列名=值 where 条件 ;

查:select 列名 as 别名 ,列名 as 别名。。。。 from 表名  where 条件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值