创建数据库,指定编码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('唱','跳','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.退出重新登录