创建数据库,指定编码utf8
create database wish charset utf8;
删除库
使用库
查看有什么表
删除表
清空表所有数据(主键从1开始)
显示表结构
desc wish;
show create table wish;
设置数据库编码
mysql获得当前时间
获得年份
创建表
create table user(uid smallint unsigned primary key auto_increment,username char(25) unique not null default '',password char(32) not null default '',sex enum('男','女') not null default '男',hobby set('唱','跳','rap','篮球') not null default '篮球',regtime int unsigned not null default 0,is_admin tinyint not null default 0,KEY `uid`(`uid`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '用户表'; 插入一个用户
insert into user set username='admin',password=md5('admin'); 查询
select * from wish;
select * from user\G;
select * from user_token order by id desc limit 20;
字段类型总结
varchar比char更省空间
char比varchar更快
char(20) 代表 存20个字符
MEDIUMINT(4)与存多少位没有关系只是和zerofill结合起来用有意义,代表如果不够四位会用0来填充,
unsigned 代表非负,正数范围
zerofill 前导零
enum 单选
set 多选
not null default '' 不能为null,默认值空字符串,它们两结合起来用,如果字段类型为字符串,默认值空字符串,如果字段类型是数值类型,默认值为0
unique 非重,比如说用户名需要非重修饰
primary key auto_increment 主键自增
alter
1 修改表名(stu 改为 student)
alter table stu rename student;2 修改字段 change (改字段名,改字段类型)
alter table student change sname(旧段名) name(新段名) char(20) not null default '';3 修改字段 modify (改字段类型) after sex 放到sex字段的后面
alter table student modify name char(30) not null default '' after sex;4 添加字段
alter table sku_comment add `sign` varchar(128) NOT NULL DEFAULT '0' COMMENT '老旧评价标识';5 删除字段
alter table petschool_knowledge(表名) drop two_level(字段名);
insert
1 插入多条数据
insert into stu (sname,sex) values ('小明','男'),('小红','女'),('小王','男');2 插入一个用户
insert into user set username='admin',password=md5('admin'); update
修改(一定要加上where)
update stu set age=20 where sname='Aaron';
delete
delete from donate_userinfo where uid=2;
mysql密码修改
1、修改mysql数据库目录配置文件:my.cnf(或my.ini)cd /etc/my.cnf[mysqld]下添加:skip-grant-tables2、重启mysql服务,然后用mysql 登录。3、进入后,可以看到,mysql数据库已呈现,然后修改密码:UPDATE user SET password=PASSWORD('输入新密码') WHERE user='root';flush privileges;4、退出mysql,修改配置文件my.cnf 把刚才的skip-grant-tables注释掉。5、重启mysql服务,然后就可以用用户名,密码登录。 导入数据库
1、首先建空数据库
mysql>create database abc;2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql
导出数据库(用mysqldump命令)
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql 注:/usr/local/mysql/bin/ ---> mysql的data目录
从mysql导出数据
mysql -uroot -p(密码) -h 127.0.0.0 -e 'select uid,count(*) AS nums from `order` where created>="2016-01-01" and status in(2,4,5,11) group by uid having nums =1;' >> /tmp/123
mysql创建用户和授权
1.登录mysql账号mysql -uroot -p
2.创建用户同时授权grant all privileges on backend.* to test@localhost identified by '123456';(backend表示数据库,*表示所有的表)
3.生效权限flush privileges
4.退出重新登录