阳光沙滩
让学习编程变得简单
【android学习笔记二】mySQL学习笔记
发表于 2020-02-13    阅读次数 546

mySQL学习笔记

基础篇


启动服务

  • 以管理员运行CMD(普通运行会报错)
  • 输入命令:net start mysql

登录mysql

  • 密码显式登录:mysql -h localhost -u root -p password
  • 密码隐式登录:mysql -h localhost -u root \回车 输入密码

退出

  • exit/quit

对数据库操做

显示所有数据库

show databases;

创建数据库

create databases 数据库名称 [character set 编码];

显示数据库编码

show create database 数据库名称;

修改数据库的编码

alter database 数据库名称 set character 编码 ;

删除数据库

dorp database 数据库名称;

修改数据库名称

rename database 旧的数据库名称 to 新的数据库名称;
//现在直接修改文件名称

切换数据库

use 数据库名称;

查看当前使用的数据库

select database();

对数据表操做

数据类型

  • int
  • varchar(长度)
  • double
  • bit
  • datatime

创建数据表

create table 数据表名称(字段1 数据类型, 字段2 数据类型, 字段3 数据类型...);
create table userinfo(_id int,
                        name varchar(20),
                        age int,
                        weight double);

展示该数据库所有数据表

show tables;

查看数据表的编码

show create table 数据表名;
show create table userinfo;

修改数据表的编码

alter table 数据表名 character set 编码;
alter table userinfo character set gbk;

查看数据表结构

desc 数据表名称;
desc userinfo;

修改数据表结构

  • 增加字段
alter table 数据表名 add 字段名称 字段类型;
alter table userinfo add address varchar(200);
  • 修改类型和长度
alter table 数据表名 modify 字段名称 新类型/新长度;
alter table userinfo modify name varchar(50);
  • 修改字段名称
alter table 数据表名 change 旧字段名 新字段名 类型(长度);
alter table userinfo change name username varchar(20);
  • 删除字段
alter table 数据表名 drop 字段名;
alter table userinfo drop addres;

修改数据表的名称

rename table 旧表名 to 新表名;

约束

  • 主键约束
    • 保证该字段中无重复值
alter table 表名 modify 字段 类型 primary key;
  • 创建时添加主键约束-自动增长
 alter table info add _id int primary key auto_increment;
  • 唯一约束
    • 控制其他字段不重复
alter table info add _id int unique;
  • 非空约束
alter table info add _id int not null;
  • 删除约束
//消除自动增长
alter table stu_info modify _id int;
//删除主键
alter table 表名 drop primary key;
//删除唯一
alter table 表名 drop index 字段名;
//删除非空
alter table 表名 modify 字段 类型(无非空约束);

删除表

drop table 表名;

数据操作

插入数据

  • 完整数据
insert into 表名(字段1,字段2...) value(值1,,值2...);
//字段shenglue
insert into value(值1,,值2...);
  • 部分数据
//字段与值一一对应即可
insert into 表名(字段2,字段4...) value(值1,值2...);
  • 插入中文
    • 服务器的编码是utf-8,而控制台是gbk
    • 修改my.ini

查看数据

select * from 表名;

更新数据

update 表名 set 字段 = 值 条件(where);
\\判空 is null;

删除数据

delete from 表名 条件;

数据查询

  • 条件:< 、>、>=、<=、<>、is null、is not null
  • 逻辑:or、and、not
  • 范围:between 值1 and 值2\in(数据集合);
\\普通方式
select * from 表名;
\\选择感兴趣字段
select 字段1,字段2... from 表名;
\\按字段排序
select * from 表名 order by 列名 asc|desc;
\\别名
select 字段1 as 别名,字段2 as 别名... from 表名;

模糊查询

  • like % 通配符 _ 展位符

分组

  • group by
//统计每个年龄的人数
select age,count(age) from test-select group by age;

函数

count-统计个数

select count(*) from 表名 条件;

sum-求和

select sum(字段) from 表名 条件l

avg-平均值

select avg(字段) from 表名 条件l

max/min-最值

select max(字段),min(字段) from 表名 条件l

数据库的备份和恢复

  • 备份
mysqldump -h (服务器地址) -u (用户名称) -p 数据库名称 > 数据库备份路径
  • 恢复
mysql -u 用户名 -p 新数据库名称 < 数据库备份路径