mysql常用总结

mysql 2017-12-02 浏览(5882 评论(0

创建数据库,指定编码utf8

create database wish charset utf8;

删除库

drop database wish;

使用库

use wish;

查看有什么表

show tables;

删除表

drop table wish;

清空表所有数据(主键从1开始)

truncate stu;

显示表结构

desc wish;
show create table wish;

设置数据库编码

set names utf8

mysql获得当前时间

select now();

获得年份

select year('2025-1-1');

创建表

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('篮球','排球','足球','乒乓球','羽毛球') 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='黄信强';
    

delete

delete from donate_userinfo where uid=2;

mysql密码修改

    1、修改mysql数据库目录配置文件:my.cnf(或my.ini)cd /etc/my.cnf

  [mysqld]下添加:skip-grant-tables
  
  2、重启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.退出重新登录

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

黄信强博客