启动服务
- 以管理员运行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 数据表名称; //describle
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 unique;
- 删除约束
//消除自动增长
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...);
//字段省略
insert into value(值1,,值2...);
- 部分数据
//字段与值一一对应即可
insert into 表名(字段2,字段4...) value(值1,值2...);
- 插入中文
- 服务器的编码是utf-8,而控制台是gbk
- 修改my.ini
查看数据
select * from 表名;
更新数据
update 表名 set 字段 = 值 条件(where);
update studets set age = 22 where salary is null;
\\判空 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 关键字+% (%是通配符)
- select * from test_table where name like “zhu%”;
- like 关键字+_ (_是占位符)
- select * from test_table where name like zhu___;
分组
- 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(密码回车写) 新数据库名称(若是不同的数据库服务器,则名称不同) < 数据库备份路径