MySql数据库的基本操作(简单查询)
SQL语句的操作主要分四大类:
- DDL:数据库模式定义语言DDL(Data Definition Language),主要对数据库和表进行操作
- DML:DML(Data Manipulation Language)数据操纵语言,主要对表数据进行操作
- DCL:(Data Control Language)数据库控制语言,主要是授权,角色控制等
- DQL:(Data QueryLanguage) 数据查询语言 : 主要是对表记录的查询操作
DDL关键字:
- 创建表:create
例子:
CREATE TABLE `NewTable` (
`userid` int NOT NULL ,
`name` varchar(255) NULL ,
`passwd` varchar(255) NULL ,
PRIMARY KEY (`userid`)
);
- 删除表:drop table 表名
- 修改表:alter
- Alter table 表名 add(列名 列类型, 列名 列类型, 列名 列类型…);
- 查看表:show databases;
DML关键字:
- 插入数据:insert
- Insert into 表名(列名1, 列名2…) values (值1,值2 );
例子:在表student中插入一条数据
insert into student(id,name,age) VALUES(6,'TOm',90);
- 修改数据:update
条件(条件可选择):条件必须是一个boolean类型的值或者表达式,
运算符有:=、!=、<>、>、<、between and 、is null 、or 、and…
-
- Update 表名 set 列名1=值,列名2=值… where 条件;
例子:更改student表中id为5的列的名字为张三
update student set name='张三' where id=5;
- 删除数据:delete
- Delete from 表名 where 条件;
例子:删除名字为Tom的列,如果有多行,一并删除
Delete from student where name='TOm';
DQL关键字:(DQL只对数据库查询,不会修改数据)
- 基本查询:
- 查询表的所有数据
Select * from 表名;
例子:查询student表中的所有内容
select * from student;
-
- 查询指定列
select 列1,列2… from 表名;
例子:查询student表中的name列
Select name from student;
-
- 完全重复的记录只显示一次 : 当查询结果中的多行记录完全一样时,只显示一行,一般用于查询某个字段中一共有几种类型的值
例子:查询age列中有几种数字不一样
select distinct age from student;
-
- 列运算
- 数量类型的列可以做加、减、乘、除运算
- 列运算
字符串做算术运算时,会被当做0来进行运算,在字符串中+号不代表拼接
例子:将student表的age数据全都加10
select * ,age+10 from student;
-
-
- 字符串类型可以做连续运算
-
-
-
- 转换NULL值
-
有时需要把NULL转换成其他值,例如com+1000时,如果com列存在NULL值,那么NULL+1000还是NULL,而我们这是希望把NULL当做0来运算。
例子:将student表中的age列的值全都加10
select IFNULL(age,0)+10 from student;
-
-
- 给列起别名
-
当使用列运算后,查询出的结果集中的列名称不好看,这时我们需要给列名起个别名,这样在结果集中列名就显示别名了。
例子:
将student表中的age列的值全都加10,将列名改为年龄。
select IFNULL(age,0)+10 as 年龄 from student;
- 条件控制:
与前面介绍的UPDATE和DELETE语句一样,SELECT语句也可以使用WHERE子句来控制记录
例1:查询student表中age值大于25 且age不为空的列
select id,name,age from student where age>25;and age is not null;
例2:查询student表中age值位于25到50之间的列
select id,name,age from student where age between 25 and 50;
- 模糊查询:
例:当你想查询姓张,并且姓名一共两个字的员工时,就可以使用模糊查询
模糊查询需要使用运算符:LIKE,其中匹配一个任意字符,注意,只匹配一个字符而不是多个
下划线“_”可以匹配1个字符,如果要匹配0-n个字符,需要用“%”;
例子:查询student表中姓张且名字是两个字的人:
select * from student where name like '张_';
查询student表中所有姓张的人:
select * from student where name like '张%';
查询名字中带六字的人
select * from student where name like '%六%';
- 排序查询
- 升序
按sal排序,ASC升序,DESC降序,其中ASC是可以省略的
例子:将student表中的age列升序
select * from student order by age asc;
-
- 降序
select * from student order by age desc;
-
- 使用多列作为排序条件
例子:将student表使用age升序排序,如果age相等,再按照id降序排
select * from student order by age asc ,id desc;
- 聚合函数:
聚合函数用来做某列的纵向运算
-
- COUNT()函数
例子:计算student表中列的行数
select count(*) from student;
-
- MAX()函数
例子:查询age最高的值
Select max(age) from student;
超出范围:(涉及到了复杂查询信息)
查询年龄最大的人的信息:
select * from student where age=(select MAX(age) from student);
-
- MIN()函数(同max()操作一样)
- SUM()函数
例子:查询所有信息age之和
select sum(age) from student;
VG()函数(同sun()函数一样使用)
上一篇: 使用注解实现数据库表联表查询
下一篇: java实现的AES秘钥生成算法示例