mysql笔记
这里我只要针对mysql的用法
1 命令行连接数据库
mysql -uroot -proot
这里-u和-p之后紧的都是数据库的用户名和密码
2 数据库的增删改查
2.1 数据库的创建
1 create database 数据库名;
2 create database 数据库名 character set 编码(eg:utf8);
3 create database 数据库名 character set utf8 collate utf8-bin;(校对规则)
2.2 数据库的查看
1 查看所有数据库
show databases;
2 查看指定
show create database 数据库名;
2.3 数据库的修改
alter database 数据库名 character set 字符
2.4 数据库的删除
drop database 数据库名
2.5 数据库的切换
select database();
查看当前数据库
use 数据库名;
切换到指定数据库下
3 table 的相关操作
3.1 创建表
create table 表名(列名 列的类型 约束);
列的类型
1 int
2 char
3 varchar
4 double
5 float
6 boolean
7 data(格式YYYY-MM-DD)
8 time(格式 hh:mm:ss)
9 datetime
10 timestamp
11 text
12 blob
其中char与varchar的区别在于,char的长度是固定的而varchar是不固定的。所以varchar比较节省资源
列的约束
1 主键约束 primary key
2 唯一约束 unique
3 非空约束 not null
3.2 查看表
1 查看所有
show tables
2 自定义查看表的创建过程
show create table 表名
3 查看表的结构
desc 表名
3.3 修改表
1 添加列
alter table 表名 add 列名 类型 约束
2 修改列类型
alter table 表名 modify 列名 类型
3 修改列名
alter table 表名 change 列名旧 列名新 类型
4 删除列
alter table 表名 drop 列名
5 修改表名
rename table 表名旧 to 表名新
6 修改字符集
alter table 表名 character set 字符集;
3.4 删除表
drop table 表名
4 数据操控
4.1 表中插入数据
insert into 表名(列名1,列名2···) values(值1,值2···);
如果是向所有列中插入数据的话(列名)可以省略
批量插入
inset into 表名 values(),(),(),·····
单条与批量插入的优缺点
1 单条易查错
2 批量效率高
4.2 删除数据
delete from 表名【where 条件】 //【】为可选内容
常遇见的问题
delete 和truncate 删除数据的区别
1 delete 是一条条删除数据
2 truncate是先将表删除再创建表
4.3 更新表中数据
update 表名 set 列名=列值 【where 条件】
4.4 查询表中数据
select 【distinct】【列名···】 from 表名 【where】
5 解决中文乱码的问题
- 暂停mysql服务
- 找到mysql文件的my.ini文件
- 改其编码为gbk