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 老师 **/