net start mysql,net stop mysql 开/关数据库
\s 查看mysql版本信息
- mysql -uroot -proot 登录mysql
- show databases 查看数据库
- use databaseName 选择数据库
- show tables 列出表格
- show columns from tableName 显示表格列的属性
- desc tables 查看表字段
字段管理
- 添加字段
alter table user add age tinyint unsigned not null
alter table user add pass varchar(30) not null after user
alter table user add pass varchar(30) not null first - 删除字段
alter table user drop password - 修改字段
alter table user modify username varchar(30) not null
alter table user change username user varchar(30) not null - 查看表字段
desc user
索引
- 主键
- 添加
create table user2(
id int unsigned not null auto_increment,
username varchar(30) not null,
primary key(id)
);
create table user2(
id int unsigned not null auto_increment primary key,
username varchar(30) not null
);
- 删除
alter table user2 modify id int unsigned not null
alter table user2 drop primary key
- 唯一
- 添加
alter table user2 add unique u_username(username) - 删除
alter table user2 drop index u_username
- 普通
- 添加
alter table user2 add index i_username(username) - 删除
alter table user2 drop index i_username
数据库操作
- DCL //数据控制语言,grant,commit,rollback
- DDL //数据定义语言,create,drop,alter
- DML //数据操作语言,insert,update,delete
- DQL // 数据查询语言,select
判断sql语句的检索效率
desc select * from 表名 where id=5 (\G);
增-insert
insert into 表名(字段名) values (‘值’);
删-delete
delete from 表名 where id=5
改-update
update 表名 set 字段名='修改值' where id=2
查-select
select * from 表名
查询表中所有字段以及每个字段所对应的所有记录
查询一般优化:
- 查单列的速度要优于多列
- 查主键索引的列中的所有值要比其他列速度快
distinct 取相同值
between and 什么之间
in()、or、and as
like %匹配所有 _匹配一个字符 模糊搜索
order by asc升序(从小到大) dsec降序(从大到小)
limit 分页
delete与truncate的区别 - delete 清空表数据,但不会清除计数器(自增)
- truncate 清空表数据,同时会清除计数器(自增)
concat() 连接函数
rand() 随机数函数
count(*) 表总行数
sum() 求和函数
avg() 平均值
max() 最大值
min() 最小值
group by 分组聚合的使用
unix_timestamp() 时间戳
from_unixtime() 转换时间戳
多表查询
select user.username,user.age,class.name,class.ctime from user,class where user.class_id=class.id
/** 在此感谢 LQQ 老师 **/