文章目录
- 1.DDL对数据库,数据库表的增删改查语句
- 1.操作数据库
- 1. 创建数据库的语句
- 1. 直接创建数据库
- 2. 判断数据库是否存在,如果存在就不创建,如果不存在就创建
- 3. 创建数据库时指定数据库的编码格式
- 2. 删除数据库的语句
- 3. 修改数据库的语句
- 4. 查询数据库的语句
- 5. 进入指定数据库语句
- 2.操作数据库的表
- 1.创建数据库表
- 2. 修改数据库中的表信息:
- 1. 添加新的属性
- 2. 修改新的字段的属性
- 3. 修改字段及字段的属性
- 4. 修改数据库的名字
- 5. 修改表中的编码格式
- 3. 查询表中信息
- 1. 查询所有的表
- 2. 查询表的创建表的语句
- 3. 查询表的结构
- 3. 删除表
- 2.DML对数据的增删改语句
- 1. 对数据的添加操作
- 1. 数据的部分添加,书写表的部分属性
- 2. 在数据库表中批量添加数据
- 2. 对数据的修改操作
- 3. 对数据的删除操作
- 3.DQL 对数据库中表数据的查询操作
- 1. 不带条件的查询
- 2. 带条件的查询
- 3. 排序的查询、
- 4. 聚合函数
- 1. 查询所有老师的总和
- 2. 查询年龄最大的老师
- 3. 查询年年龄最小的老师
- 4. 查询所有老师的平均年龄
- 5. 优化:平均值保留几位小数
- 6. 模糊查询
- 7. 蠕虫复制
- 8. 分组查询
- 9. 分页查询
1.DDL对数据库,数据库表的增删改查语句
1.操作数据库
1. 创建数据库的语句
1. 直接创建数据库
需求:直接创建一个数据库
建表语句:
Create database db6;
2. 判断数据库是否存在,如果存在就不创建,如果不存在就创建
需求创建一个数据库db7,并判断是否存在,如果不存在就创建
Sql语句:
create database if exists db7;
3. 创建数据库时指定数据库的编码格式
需求:创建一个数据库db8 并指定编码格式
Sql语句:
create database db8 character set gbk;
2. 删除数据库的语句
需求:将数据库db8删除
Sql语句:
Drop database db8;
3. 修改数据库的语句
需求 :将db7的编码格式修改为gbk;
Sql语句:
Alter database db7 default character set gbk;
4. 查询数据库的语句
- 查询所有的库:
需求:查询锁创建的所有数据库
Sql语句:
Show databases; - 查询数据库的建库语句
需求:查询db7的建库语句
SQL语句
Show create database db7;
5. 进入指定数据库语句
将路径切换到指定的库中,方便表的建立
需求:将路径切换到数据库db1中
SQL语句:
Use db1;
2.操作数据库的表
1.创建数据库表
在数据库中创建一个表,并指定其对应的属性于属性的类型:
需求:在数据库db1中创建一个teacher表并指定字段名id为int类型name为varchar类型,age为int类型address为varchar类型
SQL语句:
Create table teacher(id int ,name varchar(20) ,age int ,address varchar(40));
2. 修改数据库中的表信息:
1. 添加新的属性
为表中添加新的字段
需求:在数据库的表teacher中添加新的字段test属性,为varchar类型
SQL语句:
Alter table teacher add test varchar(20);
2. 修改新的字段的属性
将数库表中的字段属性修改
需求:将数据库中teacher的test属性值修改为varchar(400);
SQL语句:
Create table teacher modify test varchar(400);
3. 修改字段及字段的属性
将表中的字段名修改为自己想要的字段名
需求:将teacher表中的test属性修改为test01(varchar(200));
Sql语句:
Alter table teacher change test test01 varchar(200);
4. 修改数据库的名字
将数据库中的表的名字修改
需求:将数据库中teacher表名字修改为teacher01
Sql语句:
Rename table teacher to teacher01;
5. 修改表中的编码格式
将数据库表中的编码格式修改为指定的编码格式:
需求: 将数据库中teacher表的编码格式修改为utf8;
SQL语句:
Alter table teacher character set utf8;
3. 查询表中信息
1. 查询所有的表
将数据库中所有的表打印出来
需求:将db1中所有的表打印出来
SQL语句:
Show tables;
2. 查询表的创建表的语句
查看数据表的建表语句:
需求:查看teacher表的建表语句
SQL语句:
Show create table teacher;
3. 查询表的结构
查询表的结构
需求:查看teacher 的表结构
SQL语句:
Desc teacher;
附录:
复制数据库表
Create table teacher01 like teacher;
3. 删除表
将表删除
需求将表teacher1删除
SQL语句:
Drop table teacher1;
2.DML对数据的增删改语句
1. 对数据的添加操作
将数据添加到表中
- 数据的完全添加不写表的属性
添加全部属性可以省略数据表的信息,但是要与数据的信息对应
需求:在teacher表中添加对应的属性id为1,name为张三,age为18 address为上海
SQL语句:
Insert into teacher values(1,”张三”,18,”上海”);
1. 数据的部分添加,书写表的部分属性
需求:在数据库中表中添加李四20
SQL语句:
Insert into teacher (name,age)values(“李四”,20);
2. 在数据库表中批量添加数据
在数据中批量的添加数据:
需求:在数据库中添加王五赵六的对应信息
SQL语句:
Insert into teacher values(3,”王五”,18,”北京”),(4, ”赵六”,18,”河北”);
2. 对数据的修改操作
对数据的修改操作使用update关键字
Update 表名 set 修改的属性 where 条件,一般条件都要写,不写就是修改全表的属性
需求:将id为1的老师年龄修改为200;
SQL语句:
Update teacher set age =200 where id=1;
补充:如果修改一个id 的多个属性,使用,隔开即可
3. 对数据的删除操作
删除一行的话使用delete from 表名where 条件;
删除对应的数据库的一条信息,如果不写条件,则时把数据库中的数据全部删除
Truncate是把数据库这种表删除重新创建一个新表
3.DQL 对数据库中表数据的查询操作
DML为数据库中的最重要的,需重点记忆
1. 不带条件的查询
不带条件的查询,只需要指定对应的表名,就可以把数据中的所有信息全部显示出来,但是如果没有键的约束,在数据量比较大的情况下比较慢
需求:查询teacher表中的所有信息
SQL语句:
Select * from teacher;
去重查询
Select distinct age from teacher;
2. 带条件的查询
查询的条件可以根据id,name之类的不同信息进行查询
需求:查询id为1的老师信息的所有信息
SQL语句:
Select * from teacher where id=1;
需求查询姓名为李四的老师的姓名
SQL语句:
Select name from teacher where name=”李四”;
查询年龄大于20的老师
SQL语句:
Select * From teacher age >20;
查询年龄在15-20之间的老师信息
Select * from teacher where age bettween 15 and 20;
3. 排序的查询、
将不同的信息进行排序是实际开发中经常用到的
需求:将teacher表中的数据按照年年龄从大到小降序排列
SQL语句:
Select * from teacher order by age desc;
4. 聚合函数
聚合函数主要用于数据的运算,
常用的有求和sum 最大值max 最小值min 平均值avg 计算行数count
1. 查询所有老师的总和
需求:查询teacher表中所有教师的总和
SQL语句:
Select count(id) from teacher ;
2. 查询年龄最大的老师
需求:找到老师中年龄最大的老师的所有信息
SQL语句:
Select * ,max(age) from teacher;
3. 查询年年龄最小的老师
需求:找到老师中年龄最小的老师的所有信息
SQL语句:
Select * ,max(age) from teacher;
4. 查询所有老师的平均年龄
需求:找到老师中年龄平均的老师的所有信息
SQL语句:
Select * ,avg(age) from teacher;
5. 优化:平均值保留几位小数
将平均年龄保存两位小数
Select truncate(avg(age),2) from teacher;
6. 模糊查询
模糊查询有两种替代%和_
需求:查询姓张的老师
SQL语句:
Select * from teacher where name like “张%”;
需求:查询姓张的两个字的老师
Select * from teacher name like “张_”;
7. 蠕虫复制
需先复制表结构、然后复制表的数据
Create table teacher1 like teacher;
然后蠕虫复制内部的数据
Insert into teacher1 select * from teacher;
8. 分组查询
创建表
CREATE TABLE order(
idint(11) NOT NULL,
productvarchar(255) DEFAULT NULL,
pricedecimal(10,2) DEFAULT NULL, PRIMARY KEY (
id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
分组查询使用的关键字为group by 将不同的属性分类显示
需求1:查询购买的每种商品的总价。
Select product ,sum(price) as 总计 from orders group by product ;
需要先分组再计算总价格
需求2:要求是先按照商品名分组,然后在按照价格进行分组。
Select product sum(price) as 总价 from orders group by product,price;
因为数据总价没有相同的数据所以结果是一样的
需求3:查询每一种商品的总价大于30的商品,并显示总价。
select product ,sum(price) from orders group by product having sum(price)>30;
9. 分页查询
创建表
CREATE TABLE student
(
id
int(11) DEFAULT NULL,
name
varchar(20) DEFAULT NULL,
age
int(11) DEFAULT NULL,
sex
varchar(5) DEFAULT NULL,
address
varchar(100) DEFAULT NULL,
math
int(11) DEFAULT NULL,
english
int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
分页使用limit限制显示的条数
Select * from student limit 0,3;
Select * from student limit 3,3;
显示一部分
更多推荐
MySQL基础语句总结
发布评论