关于MySQL的学习笔记
MySQl是一种关系型数据库,以其开源,免费的特性吸引了大批优秀人才对其进行开发,本篇主要介绍MySQL的用法,以及部分调优的方法
MySQL主要的语言分为两类,一种是数据定义语言(DDL),另一个是数据操纵语言(DML)
由名字可知,DDL主要是定义数据库的相关配置,例如数据库的建立、修改、删除;表的定义、修改、删除等。这一部分对用户不可见,主要由数据库管理员进行设置。
而DML则是对数据库中的数据进行相应的增删改查。
下面,先说一下DDL的sql语句
1.显示整个mysql的数据库
show databases;
2.显示选中的数据库的所有表
show tables ; #选中方式,可视化界面中双击左侧数据库,数据库名加黑,加黑即选中
3.创建数据库并设置编码格式
create database test character set =utf8;#使用utf-8可获得对中文字符的支持
4.修改当前数据库字符集
use mydatabase alter database mydatabase character set utf8;#utf8可换成其他字符集
set character_set_database=utf8;#系统不赞成使用该方式进行字符编码的设置
5.创建表
create table xxx.table_name(
属性名 属性类型 约束(unsigned 无符号数) primary key(主键约束) not null(非空约束) auto_increment(自增长)
);#自定义创建新表
create table 表名A
as select * from 表名B #创建与B表相同的A表(表结构+表数据)
create table 表名A
as select * from 表名B
where 1=2 #创建与B表相同的A表(表结构)
create table 表名A
like 表名B #创建与B表相同的A表(表结构)
insert into 表名A
select * from 表名B 向A表插入和B表一样的数据
6.表的各种信息显示
desc 表名 #显示表信息
show create table 表名;#显示创建表时语句
7.表信息修改
alter table 表A
rename to 表B #修改表名
alter table 表A
change aa bb int; 将表A中的 aa 字段改成 bb
alter table 表A
modify aa xx 将表中的aa的属性类型改为xx
7.1删除表
drop table 表名;
8.创建索引
create index 索引名
on 表A(id) #在表A的id字段上添加索引
9.删除索引
drop index 索引名 on 表A #删除表A的索引
10.创建视图
create view view_id
as select... #根据sql语句创建view view本质就是一个选择出来的数据集合
check option #表示此view 不允许修改
11.删除视图
drop view view_id;
接下来是DML sql语句
1.给表增加数据
insert into 表A(x1,x2...)
values ('',''...) #如果x1,x2不存在,那么values必须增加表A个字段的值
2.删除表中数据
delete from table where 字段=“”; # 删除匹配where的字段
truncate 表A; #删除表A的数据,但不破坏A的表结构
3.修改表中数据
update 表名 set 字段值更改 where 条件;
4.选择表中数据
1)select * from table where 条件 #从表中选出所有符合条件的数据
2)select * from table where 条件 order by(排序条件列) desc ;#选出符合数据后降序排序,使用order by 默认升序排序
3)select * from table group by (id) # 根据学号分组,MySQL只显示第一个
函数:count(*) 计数使用
select count(*) from table #table中有多少条数据
avg(id) 求平均值
select avg(score) from table #table中score的平均值
sum(score) 求和
select sum(score) from table #table中score之和 + group by (id) 查询每个人的总成绩
max(score) 最大值
select id
from test1
where
age=(
select max(age) from test1) #成绩最高的id
min(score) 最大值
select id
from test1
where
age=(
select min(age) from test1) #成绩最低的id

浙公网安备 33010602011771号