本章内容是,用sql语言实现对数据库的基本操作和表的基本操作
文章目录
前言
sql语句这里知识点不难,但是很多,需要时常练习复习,否则很快就忘了.大家可以收藏本篇文章,时时巩固复习.打开你的Mysql,我们开始啦~
1. 数据库的基本操作
1.1 创建数据库
- 创建数据库的语句
create database 数据库名;
如下图,显示OK,就是创建好了.
分号" ; " 是一条sql语句结束的标志.
2. 创建数据库是不允许出现重名数据库的,所以,这里有创建数据库时,防止名字重复的创建数据库语句.若是输入已经存在的名字,系统不会报错,只是不会执行该数据库创建语句.
create database if not exists 数据库名
如下图
3. 创建数据库时指定字符集
数据库中,一个汉子占几个字节取决于字符集.我们数据库通常使用utf-8字符集,utf-8中,汉子一般占3字节,支持各种语言文字,但utf-8不能表示表情,utf8b4可以表示表情
create database 数据库名 charset utf8;
1.2 查看数据库
我们来看看自己有哪些数据库吧~
展示数据库语句.注意后面的databases,要变复数.
show databases;
如下图
1.3 选中数据库
我们要对数据库中的表进行操作时,首先要选中数据库.
use 数据库名;
如下图
1.4 删除数据库
首先,这是一个非常危险的操作,尤其是生产环境的数据库,一旦删除重要信息,可能会造成很严重的损失.
删库语句
drop database 数据库名;
如图,一定要谨慎!!!
2. 数据库基本数据类型
数据字母不区分大小写
以下为常用数据结构介绍.由于decimal无精度丢失,所以可以用来表示钱数.
varchar(SIZE),size要考虑的是里面字符的个数,比如要记录班级同学名字,名字最长有四个字,那size为4即可.
数据类型 | 大小 | 对应java类型 | 说明 |
---|---|---|---|
int | 4字节 | Integer | |
float(M,D) | 4字节 | float | 单精度,M为指定长度,D为小数点位数,有精度丢失 |
double(M,D) | 8字节 | double | |
decimal(M,D) | M/D最大值+2 | BigDecimal | 双精度,M为指定位数,D为小数点位数,无精度丢失 |
varchar(SIZE) | size为允许字符的最多个数 | string | 常用字符串类型 |
3. 表的基本操作
3.1 创建表
首先,在操作表时,要指定是哪个数据库.
use 数据库名;
create table 表名(列名1 列类型, 列名2 列类型,.....)
如下图,创建了一个student表,列有学号,名字,性别.
3.2 显示数据库中的表
来看看自己数据库的表吧~
show tables;
3.3 查看表的构造
这个操作,是查看表的结构,有哪些列,列的类型是什么
desc 表名;
如下图.
3.4 删表
同样,这个也是极其危险的操作,删表需谨慎!!!
drop table 表名;
如下图
4. 表的增删改查
4.1 增加数据
insert into 表名 values(值1,值2....);
如下图,插入了三个数据.
字符串用单引号’',或者双引号""括起来都可以.
指定列插入,直插入指定的列,未被插入的列为null.
insert into 表名 (列名1,列名2) values(值1,值2);
如下图.
4.2 删除数据
删除数据语句
delete from 表名 where 条件;
危险操作!!!这里的删除是直接删除硬盘里的数据.
如下图,删除阿三同学的数据.
4.3 查询数据
1.全列查询
select * from 表名;
" * "是通配符,表示所有的列
注意,这个操作有一定危险性,select * 会遍历所有数据,而公司中数据库数值巨大,数据都需要从硬盘中读出来,所以硬盘容易被占满,而会影响他人对数据库的使用.
限制查询出来的语句数目,这个方法可以避免查询出来的数据过多的问题.
select * from score limit n;
2.指定列查询
select 列名 from表名;
如图,只看name这一列
3.查询时,对列进行修改
如图,在查询数学成绩时加了10,
需要注意的是,这个查询出来的是临时表,这里的改动不会对实际表有什么影响,相当于形参不改变实参的值.
4.查询总成绩
如图,查询三人总成绩,并给总成绩起了一个别名total.
5.查询时去重
select distinct 列名 from表;
如下图,去掉了语文成绩重复的数据,这里,若是指定多个列,必须这些列的值都重复,才算重复,才能去重.
6.查询时,对查询出来的结果进行排序
根据语文成绩进行升序排序.
select * from score order by chinese;
根据语文成绩降序排序,这里的desc指的是单词descend,下降.
select * from score order by chinese desc;
注意,如果排序的值有null,则null视为最小的值.
null与任何值进行运算都是null;这里的任何运算包括逻辑运算和算术运算.如下图,
chinese + null = null.
注意:多列排序时,先以第一列为主,若第一列值相等,再比较第二列.方法与比较字符串大小类似.
7.条件查询.
select * from score where 条件;
如下图,查询语文成绩大于80的同学.
4.4 数据库运算
4.4.1 比较运算符
1.普通的>,<.=正常使用.注意,因为判断null == null,也等于null,为假.所以,null之间的相等判断使用运算符"<=>"
2.between 值1 and 值2;这里是闭区间 [值1,值2]
3.in(值1,值2,…);
只要值和可选值中的一个对应上即可.
4.is null 与 is not null
如图,查询name 不为null的数据
5.like 模糊匹配
“阿%” 代表只要以阿开头的字符串即可匹配,"%“可代表任意一个字符串,空也可以
“阿_” 代表阿后面有一个字符的可以匹配,”_"代表有一个字符.
“_阿” 代表阿前面有一个字符的可以匹配
“%阿%” 代表包含阿即可
4.4.2 逻辑运算符
1.and,是逻辑中的与&&
2.or,是逻辑中的或||
3.not,是逻辑中的非!
实例如下图
4.5 更新数据
这里的更新数据,是直接修改硬盘里的数据,持久生效.
update 表名 set 列名 where 条件;
如下图,修改阿恒同学的数学成绩.
使用表达式进行修改
update 表 set 表达式 where 条件;
如下图,给摆烂的同学数学成绩加10分.加分,谁摆烂给谁加,看谁还卷我o(╥﹏╥)o
修改多个列
如图,继续支持摆烂同学,给摆烂同学的语文和英语成绩加10 摆烂同学还是没及格,适当摆烂,有益身心健康