视频笔记来自黑马b站教程,顺序稍作整理
DDL定义语言
DDL语句用于操作数据库,表结构,字段
1. 数据库操作
我们假设我们有animal数据库中的bird表
a.数据库创建
create database [if not exit] 数据库名 [default charset 字符集例如:utfmb4][collate 排序规则];
b.数据库删除
drop database [if not exit]数据库名;
例
c.数据库查询
# 查询所有数据库
show databases;
# 查询当前数据库
select database();
例
d.数据库使用
use 数据库名
例
2. 表操作
a.表创建
注意最后一个字段结尾没有逗号
create table bird(
字段1 type [comment 注释内容],
字段2 type [comment 注释内容]
)[comment 注释内容];
例
create table bird(
id int comment "编号",
name varchar(50) comment "姓名"
) comment "鸟类";
下图是MySQL的数值类型
decimal:以123.45为例,精度为5,标度为2
对于年龄,可以使用无符号类型:TINYINT UNSIGNED
对于分数(0.0-100.0)可以确定精度:double(4,1)
字符串类型:
char和varchar区别
对于char(10),即使我们只存储一个字符,占用空间大小仍为10,使用空格补位。
char性能更高
时间类型
b.表删除
drop table [if exists] 表名;
//清空表,无法撤销
truncate table 表名;
//清空表
delete from 表名
c.表查询
#查询当前数据所有表
#使用前需用use选择一个数据库
show tables;
#查询表结构,打印字段,类型...
desc 表名;
#查询指定表的建表语句
show create table 表名;
例:
d.表修改
- 修改表名
alter table 表名 rename to 新表名
- 添加字段
alter table 表名 add 字段名 类型 [comment 注释];
例
3. 删除字段
alter table 表名 drop 字段名;
- 修改数据类型
alter table 表名 modify 字段名 新数据类型;
- 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型 [comment 注释][约束];
DML操作语言
完成数据的增删改
1.插入数据insert
insert into 表名(字段1,字段2…)values(值1,值2…),(值1,值2…);
insert into 表名 values (值1,值2…),(值1,值2…);
例
insert into bird(name) values ('金丝雀'),('麻雀');
insert into bird values (3,'啄木鸟')
select * from bird;
2.修改数据update
update 表名 set 字段1=值1,字段2=值2 [where 条件];
注意:
- 可以添加多个字段和值,以改变多个字段
- 可以不包括where条件,这样则会修改整张表的值
- 若想删除某一字段值,则可以将其update为null。而delete则为删除整行字段的值
update bird set name = '鹦鹉' where id = 1;
3.删除数据delete
delete from 表名 [where 条件];
delete from bird where id = 2;
DQL 查询语言
基本查询select
选取某几列进行打印。
查询多个字段
select 字段1 [as 别名1], 字段2 [as 别名1], 字段3 [as 别名1] ...from 表名;
select * from 表名;
#去除重复记录
select distinct 字段 列表 from 表名;
条件查询
根据某一列作为条件,寻找符合条件的行。
select 字段列表 from 表名 where 条件列表;
条件运算符如下图所示
例
聚合函数
获得某一列的统计值。
select 聚合函数(字段) from 表名;
分组查询
将列表根据某一列,进行分组。
select 字段列表 from 表名 [where条件] group by 分组字段名 [having 分组后过滤条件]
select s_sex,count(s_sex) from student group by s_sex;
#select关键字后的字段列表名,只能于group by后的分组字段名相关
排序查询
select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
asc ; 升序(默认值)
desc : 降序
分页查询
select 字段列表 from 表名 limit 起始索引, 查询记录数;