登录MySQL
MySQL update 命令可以修改 root 密码。
需要配合使用 MySQL 自带的加密函数 PASSWORD(string),对明文加密,且不可解密,专门用于 mysql.user(用户权限表)中设置密码。
使用 set password 命令来修改 root 密码。不需要使用 flush privileges 操作
退出:
DOS 窗口中,使用方向键盘的 上、下按键,可以看到使用命令的历史
使用 F7,可以查看历史命令列表
如果,
使用 mysql -u root -p12345 登录mysql,最后,
退出了 MySQL 监视器,却没有退出 DOS 窗口。
那么,利用命令的历史记录,他人有可能直接登录,导致密码被窃取。
建议使用:mysql -u root -p,然会回车,以隐藏的方式输入密码,此方法更安全。
删除数据库
创建数据库
Windows 中,MySQL 库名、表名,不区分大小写。然后,Linux 中,区分大小写。
自己创建的时候,可以都用小写,避免这种问题。
安全角度,不建议使用 root 权限来进行所有的数据库操作。最好是,创建专用用户。
grant 赋予的操作:all privileges、 create、 select、 update、 delete 等权限。
以下:创建 home 数据库,创建用户 xiaozhang ,密码 98765。专门管理 home 数据库
用 xiaozhang 登录 MySQL 后,使用 show databases,只能看到 information_schema、home 两个数据库
选择数据库之后,容易忘记自己之前选了哪个数据库。
可用以下操作查看自己当前操作的是那个数据库
显示表结构
删除表
INSERT/SELECT 操作,也被称为: DML( Data Mainpulation Language),十分常用
AUTO_INCREMENT,自动递增序列。使用 AUTO_INCREMENT 必须满足以下条件
数据类型必须是:[INT]、[TINYINT]、[SMALLINT] 等整数类型
列的定义后,附加关键字:[AUTO_INCREMENT]
使用 [PRIMARY KEY] 设置其唯一性,自增的序号都是唯一的,一般都会作为表的主键,或者,具有唯一性[UNIQUE]要求的列
即使使用以下语句,删除 goods 表中的所有记录后,再次 INSERT 记录进去的时候,AUTO_INCREMENT 也已经不是从1开始了
初始化 AUTO_INCREMENT
其他选项:
[NOT] NULL
UNIQUE:只要求,不可重复。 而,主键制约,要求不可重复,和 非NULL 。主键在一个表里只能用一次,而UNIQUE 可以用多次
DEFAULT:用于设置默认值
CHECK:限制向列中输入值的范围的制约。
mysql -u root -p
设定 MySQL 管理者密码,如果已经设定,可以用此命令修改密码
mysqladmin -u root -p PASSWORD abcde
mysqladmin -u root -pfirstpwd password secondpwd
mysqladmin -u root -p[oldpass] password newpass
MySQL update 命令可以修改 root 密码。
需要配合使用 MySQL 自带的加密函数 PASSWORD(string),对明文加密,且不可解密,专门用于 mysql.user(用户权限表)中设置密码。
mysql -u root -p12345
use mysql
update user set password=PASSWORD('54321') where user='root'
flush privileges;
update user set password='' where user='root'
使用 set password 命令来修改 root 密码。不需要使用 flush privileges 操作
use mysql
set password for 'root'@'localhost'=PASSWORD('testpwd')
退出:
exit
quit
DOS 窗口中,使用方向键盘的 上、下按键,可以看到使用命令的历史
使用 F7,可以查看历史命令列表
如果,
使用 mysql -u root -p12345 登录mysql,最后,
退出了 MySQL 监视器,却没有退出 DOS 窗口。
那么,利用命令的历史记录,他人有可能直接登录,导致密码被窃取。
建议使用:mysql -u root -p,然会回车,以隐藏的方式输入密码,此方法更安全。
mysql 安装完成后,默认有数据库:
information_schema、mysql、performance_schema、test
mysql:含有与MySQL 运行相关的基本信息,等管理数据。如:user 表存放的用户信息
information_schema:信息架构。管理从表开始的数据库,的组成信息,以及用户管理信息的检索
test:空数据库,可删除
显示数据库
show databases;
删除数据库
drop database test;
创建数据库
create database xiaoming;
Windows 中,MySQL 库名、表名,不区分大小写。然后,Linux 中,区分大小写。
自己创建的时候,可以都用小写,避免这种问题。
安全角度,不建议使用 root 权限来进行所有的数据库操作。最好是,创建专用用户。
grant 赋予的操作:all privileges、 create、 select、 update、 delete 等权限。
以下:创建 home 数据库,创建用户 xiaozhang ,密码 98765。专门管理 home 数据库
用 xiaozhang 登录 MySQL 后,使用 show databases,只能看到 information_schema、home 两个数据库
create database home;
grant all privileges on home.* to xiaozhang@localhost identified by '98765';
选择数据库
use home
选择数据库之后,容易忘记自己之前选了哪个数据库。
可用以下操作查看自己当前操作的是那个数据库
select database();
CREATE TABLE customer(
mid CHAR(5) PRIMARY KEY,
nam VARCHAR(20),
birth DATE,
sex CHAR(1) DEFAULT '0')
CHARSET=utf8;
显示所有表
SHOW TABLES;
显示表结构
DESC customer;
DESCRIBE customer;
删除表
DROP TABLE customer
INSERT/SELECT 操作,也被称为: DML( Data Mainpulation Language),十分常用
INSERT INTO customer VALUES('N0001', '小小', '1980-11-22', 1);
SELECT * FROM customer;
SELECT mid, nam FROM customer;
AUTO_INCREMENT,自动递增序列。使用 AUTO_INCREMENT 必须满足以下条件
数据类型必须是:[INT]、[TINYINT]、[SMALLINT] 等整数类型
列的定义后,附加关键字:[AUTO_INCREMENT]
使用 [PRIMARY KEY] 设置其唯一性,自增的序号都是唯一的,一般都会作为表的主键,或者,具有唯一性[UNIQUE]要求的列
CREATE TABLE goods(
id INT AUTO_INCREMENT PRIMARY KEY,
nam VARCHAR(30));
INSERT INTO goods(nam) VALUES('Milk');
即使使用以下语句,删除 goods 表中的所有记录后,再次 INSERT 记录进去的时候,AUTO_INCREMENT 也已经不是从1开始了
DELETE FROM goods;
初始化 AUTO_INCREMENT
ALTER TABLE customer AUTO_INCREMENT=0;
其他选项:
[NOT] NULL
UNIQUE:只要求,不可重复。 而,主键制约,要求不可重复,和 非NULL 。主键在一个表里只能用一次,而UNIQUE 可以用多次
DEFAULT:用于设置默认值
CHECK:限制向列中输入值的范围的制约。
MySQL,命令的选项,其指定方式有2种:
[-] 后面,附加选择名,如:
[-u root]
[--选项名=] 后设置选项值, 如:
[mysql --user=root --password=518]
[mysql -u root -p --default-character-set=utf8]