创建数据库:
create database +(名称);
删除数据库数据库:
drop database +(名称);
显示数据表:
show tables;
创建表:
create table +表名;
删除表:
drop table +表名;
显示表结构:
desc +表名
重设MySQL密码方法:
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
UPDATE user SET password=''??WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
quit;
mysqladmin -u root password '123456‘
pgrep -l mysqld_safe ,查到pid再kill -9 pid
mysql -u root -p
复制
记住密码的情况下可以用下面方法修改密码:
update user set password=password('新密码') where user='用户名';
(在mysql数据库里更改普通用户 密码),更改之后刷新权限:
flush privileges;
也可以使用set更改用户密码:set password=password('新密码');
password()函数具有加密功能
复制
(更改数据库编码方式):
alter database 数据库名称 default character set 编码方式 collate 编码方式_bin;
(修改数据表名称):
alter table 旧名称 rename to 新名称;
(修改字段名):
alter table 表名 change 旧字段名 新字段名 新数据类型;
(修改字段数据类型):
alter table 表名 modify 字段名 数据类型;
alter table 表名 add 新字段名 数据类型;
(删除字段名):
alter table 表名 drop 字段名;
在数据表字段尾数加auto_increment,可以实现自动递增。
修改数据库编码
vim etc/my.cnf
添加:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
复制
或者直接输入:SET character_set_server = utf8;
也可以在创建数据表时在后面指定字符集:ENGINE = MyISAM DEFAULT CHARSET UTF8;
Mysql数据库默认使用的引擎是MyISAM,而MyISAM引擎不支持建外键,所以将数据库默认引擎改为 InnoDB。
insert 语句可以不指定字段名添加数据
IN关键字可以查询在集合内的数据,NOT IN则查询不在集合内的数据
between and 关键字用于查询指定范围内的数据,加 NOT则相反。
使用 IS NULL 查询字段是否为空
distinct用于过滤查询的重复数据
修改表字符集 :
alter table 表名 convert to character set utf8;
数据备份:
mysqldump -uroot -p123456 chapter08>备份路径+备份名称后缀名为sql(备份单个数据库)
mysqldump -uroot -p123456 【--database(此参数可以备份多个数据库)】+要备份的多个数据库>备份 路 径+备份名称后缀名为sql(备份多个数据库)
mysqldump -uroot -p123456 --all-databases >备份路径+备份名称后缀名为sql(备份所有数据库)
数据库不能还原,只能还原数据库里的数据,数据库被删除后,需要新建数据库,然后才能还原里面的数 据。
mysql -u用户名 -p密码 要还原的数据库 < 已备份的数据库路径+备份名称后缀名为sql(备份单个数据库)
复制
(用于创建用户密码):
identified by '密码';
使用insert语句创建的用户,需要使用flush privileges刷新权限才可以登陆数据库。
grant insert,select on *.* to 'user4'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;(创建用户并且赋予对所有数据库具有查询,增加以及对其他用户具有赋予相应权限的功能)
(收回了添加权限):
REVOKE语句可以收回权限比如 revoke insert on *.* from 'user5'@'localhost';
(收回用户所有权限):
revoke all privileges,grant option from 'user6'@'localhost';
数据库起始状态的设定信息是不安全的,任何用户都可以登陆而不需要输密码,所以我们需要作以下设定:
mysql_secure_installation 安全初始化
Enter current password for root (enter for none): 刚下载的mariadb超户是没有密码的,且默认登陆的用户就是超户,所以直接回车
Set root password? [Y/n] 是否为超户设置密码
New password: 输入你设置的密码
Re-enter new password: 再次输入你设置的密码
Remove anonymous users? [Y/n] 是否移走匿名用户
Disallow root login remotely? [Y/n] 不允许超户远程登陆
Remove test database and access to it? [Y/n] 删掉测试的数据库
Reload privilege tables now? [Y/n] 对数据库刷新,让所有的数据同步
复制
MySQL引擎功能对比: