MySQL基础命令
2016-12-13 00:00
369 查看
CMD窗口登录MySQL:
基本命令:mysql -u用户名 -p 回车
Enter Password:*********
授权特定用户操作数据库(授权特定用户对数据库中的某一张表拥有的相应权限):
基本命令:mysql>grant 权限名称(或权限列表) on 数据库名称.数据表名称 to 用户名@localhost(或127.0.0.1) identified by 密码;
收回特定用户对数据库的操作权限:
命令:revoke 操作名称 on 库名.表名 from 用户名@主机IP地址;
查看数据库编码格式:
命令:show variables like 'character_set_database';
拓展:查看数据库的所有相关编码:
命令:show variables like ‘%character%’;
修改数据库的编码格式:
命令:alter database 数据库名称 character set utf8;
查看数据表的编码格式:
命令:mysql> show create table <表名>;
修改数据表格编码格式:
命令:mysql>alter table <表名> character set utf8;
修改字段编码格式
添加外键
删除外键
修改数据表中的字段类型:
命令:alter table <表名> modify column 列名 类型;
删除用户:
命令:drop user tom@localhost;
创建一个新用户完整步骤:
(1)、创建一个用户,命令:mysql>create user tom;
(2)、进入mysql库,为新创建的新用户配置相关信息;
(3)、为新用户授予相应权限;
附:mysql权限结构图:
修改表命令:
RENAME TABLE 原名 TO 新名;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
修改表名:mysql>alter table 原表名 rename to 新表名;
修改列:mysql>alter table 表名 change 原列名 新列名 新列名的数据类型;
增加列:mysql>alter table 表名 add 新列名 新列名的数据类型;
删除列:mysql>alter table 表名 drop column 列名;
删除表:drop table 表名;
拓展知识:
新增数据:
命令:insert into 表名 列名 select 源列名 from 源表名;
insert into 表名 (列名1,列名2) select 源列名1,源列名2 from 源表名;
例如:insert into tb_user_bak(name,sex,age) select name,sex,age from tb_user;
修改MySQL客户端显示数据的编码:
命令:set names gbk;
查看数据库的一些相关命令:
创建数据库:
命令:
-- 说明:花括号表示必选项,竖线表示多选一,方括号表示可选
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] character_name;
我们可以使用
命令:source 数据库脚本名;
查看创建数据库使用的命令:
命令:SHOW CREATE DATABASE 数据库名;
修改数据库:
命令:ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] character_name;
拓展:自动编号的字段必须是主键。
主键约束(PRIMARY KEY):
每张表只能有一个主键,能够保证记录的唯一性,主键自动为
主键我们可以写成KEY或者PRIMARY KEY。
MySQL数据类型:
数据类型决定了数据的存储格式,代表了不同的信息类型。
1.整型
2.浮点型 (项目开发中以float居多 )
3.日期型
项目开发中该类型用得并不多,因为涉及到时区的问题,多用数字表示。
4.字符型
VARCHAR,TEXT,DATE,TIME,ENUM等类型的数据也需要单引号修饰,而INT,FLOAT,DOUBLE等则不需要。
基本命令:mysql -u用户名 -p 回车
Enter Password:*********
C:\Users\Administrator>mysql -uroot -p Enter Password:*********
授权特定用户操作数据库(授权特定用户对数据库中的某一张表拥有的相应权限):
基本命令:mysql>grant 权限名称(或权限列表) on 数据库名称.数据表名称 to 用户名@localhost(或127.0.0.1) identified by 密码;
mysql>grant select,delete,update on test.students to tom@localhost identified by '123456'; --授予所有权限给予用户tom mysql>grant all on test.students to tom@localhost identified by '123456';
收回特定用户对数据库的操作权限:
命令:revoke 操作名称 on 库名.表名 from 用户名@主机IP地址;
mysql> revoke select on test.students from tom@localhost; Query OK, 0 rows affected (0.00 sec) --收回所有的数据库操作权限 mysql> revoke all on test.students from tom@localhost;
查看数据库编码格式:
命令:show variables like 'character_set_database';
mysql> show variables like 'character_set_database'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | character_set_database | utf8 | +------------------------+-------+ 1 row in set (0.00 sec)
拓展:查看数据库的所有相关编码:
命令:show variables like ‘%character%’;
mysql> show variables like '%character%'; +--------------------------+------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\NativeApp\MySQL\share\charsets\ | +--------------------------+------------------------------------+ 8 rows in set (0.00 sec)
修改数据库的编码格式:
命令:alter database 数据库名称 character set utf8;
mysql> alter database test character set gbk; Query OK, 1 row affected (0.00 sec) mysql> show variables like 'character_set_database'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | character_set_database | gbk | +------------------------+-------+ 1 row in set (0.00 sec)
查看数据表的编码格式:
命令:mysql> show create table <表名>;
mysql> show create table students; +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | students | CREATE TABLE `students` ( `id` int(11) NOT NULL, `name` varchar(10) NOT NULL, `sex` char(4) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
修改数据表格编码格式:
命令:mysql>alter table <表名> character set utf8;
mysql> alter table students character set gbk; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0
修改字段编码格式
mysql>alter table <表名> change <字段名> <字段名> <类型> character set utf8; mysql>alter table user change username username varchar(20) character set utf8 not null;
添加外键
mysql>alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid); mysql>alter table <表名> add constraint <外键名> foreign key<字段名> REFERENCES <外表表名><字段名>;
删除外键
mysql>alter table tb_people drop foreign key fk_1; mysql>alter table <表名> drop foreign key <外键名>;
修改数据表中的字段类型:
命令:alter table <表名> modify column 列名 类型;
mysql> alter table students modify column name varchar(30); Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0
删除用户:
命令:drop user tom@localhost;
mysql> drop user tom@localhost; Query OK, 0 rows affected (0.00 sec) --删除用户后,重新登录数据库时出现如下错误 C:\Users\Administrator>mysql -utom -p Enter password: ****** ERROR 1045 (28000): Access denied for user 'tom'@'localhost' (using password: YES)
创建一个新用户完整步骤:
(1)、创建一个用户,命令:mysql>create user tom;
mysql> create user tom; Query OK, 0 rows affected (0.03 sec)
(2)、进入mysql库,为新创建的新用户配置相关信息;
mysql> use mysql; Database changed --在dos窗口中查询出数据库有哪些用户的命令(格式化查询出的结果) --select * from mysql.user \G (切记:后面没有 分号 结尾) --更新mysql.user表中新用户tom的密码; mysql> update user set Password=PASSWORD('123456') where user='tom'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 --题外话:我们以新用户的的身份登录到localhost上时,会发现新用户能操作的数据库很少。 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | +--------------------+ 1 row in set (0.00 sec)
(3)、为新用户授予相应权限;
--命令:grant 权限列表 on 库名.表名 to 用户名@主机名 identified by 用户密码; mysql> grant select on test.students to tom@localhost identified by '123456'; Query OK, 0 rows affected (0.00 sec) --此时以新用户登录数据库结果如下: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | +--------------------+ 2 rows in set (0.00 sec) --可以看到:得到授权的新用户可以查询被授权的test库。 --授予更多权限 mysql> grant insert,delete,update on test.students to tom@localhost identified by '123456'; Query OK, 0 rows affected (0.00 sec)
附:mysql权限结构图:
修改表命令:
RENAME TABLE 原名 TO 新名;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
修改表名:mysql>alter table 原表名 rename to 新表名;
修改列:mysql>alter table 表名 change 原列名 新列名 新列名的数据类型;
增加列:mysql>alter table 表名 add 新列名 新列名的数据类型;
删除列:mysql>alter table 表名 drop column 列名;
删除表:drop table 表名;
拓展知识:
MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。 InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会 占用更多的磁盘空间以保留数据和索引。 MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常得快,因为它 的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。 MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同。MERGE表本身没有数据,对MERGE类型的表进行查询、 更新、删除的操作,就是对内部的MyISAM表进行的。
新增数据:
命令:insert into 表名 列名 select 源列名 from 源表名;
insert into 表名 (列名1,列名2) select 源列名1,源列名2 from 源表名;
例如:insert into tb_user_bak(name,sex,age) select name,sex,age from tb_user;
修改MySQL客户端显示数据的编码:
命令:set names gbk;
mysql>SET NAMES gbk; -- 客户端以GBK的编码形式呈现数据
查看数据库的一些相关命令:
mysql> SELECT VERSION(); # 显示mysql版本,相当于登录数据库之前输入mysql -V +-------------------------+ | VERSION() | +-------------------------+ | 5.5.35-0ubuntu0.12.04.2 | +-------------------------+ 1 row in set (0.00 sec) mysql> SELECT USER(); # 显示当前用户 +----------------+ | USER() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec) mysql> SELECT NOW(); # 显示系统时间 +---------------------+ | NOW() | +---------------------+ | 2015-04-05 21:02:31 | +---------------------+ 1 row in set (0.00 sec) mysql> # 在Linux的mysql中也可以使用Ctrl+L清屏 mysql> SELECT DATABASE(); #查看当前使用的数据库 +------------+ | DATABASE() | +------------+ | test | +------------+ 1 row in set (0.00 sec)
创建数据库:
命令:
-- 说明:花括号表示必选项,竖线表示多选一,方括号表示可选
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] character_name;
mysql> CREATE DATABASE t1; Query OK, 1 row affected (0.00 sec)
我们可以使用
source命令运行sql脚本。登录mysql数据库:
命令:source 数据库脚本名;
查看创建数据库使用的命令:
命令:SHOW CREATE DATABASE 数据库名;
mysql> SHOW CREATE DATABASE t1; # 查看创建数据库使用的命令 +----------+-------------------------------------------------------------+ | Database | Create Database | +----------+-------------------------------------------------------------+ | t1 | CREATE DATABASE `t1` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+-------------------------------------------------------------+ 1 row in set (0.00 sec)
修改数据库:
命令:ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] character_name;
mysql>ALTER DATABASE t2 CHARACTER SET=UTF8;
拓展:自动编号的字段必须是主键。
AUTO_INCREMENT该字段要么是整数,要么小数位数为0,且必须和主键组合使用,默认情况下初始值为1,增量为1.——保证记录的唯一性。
主键约束(PRIMARY KEY):
每张表只能有一个主键,能够保证记录的唯一性,主键自动为
NOT NULL,并自动创建索引。
主键我们可以写成KEY或者PRIMARY KEY。
MySQL数据类型:
数据类型决定了数据的存储格式,代表了不同的信息类型。
1.整型
2.浮点型 (项目开发中以float居多 )
3.日期型
项目开发中该类型用得并不多,因为涉及到时区的问题,多用数字表示。
4.字符型
VARCHAR,TEXT,DATE,TIME,ENUM等类型的数据也需要单引号修饰,而INT,FLOAT,DOUBLE等则不需要。
相关文章推荐
- 基础 使用 mysql 命令
- mysql基础命令大全
- mysql基础命令讲解
- 我的Linux生涯之Mysql:[Mysql基础命令总结]
- mysql数据库命令大全,mysql数据基础入门
- mysql命令平时使用的基础
- MySQL基础命令
- MySQL 基础常用命令
- MySQL 基础常用命令
- Mysql的基础show命令
- mysql基础命令大全
- mysql基础命令
- mysql 基础-show slave status命令是由哪两个配置文件组成及各个参数的含义
- Python:Mysql编程(基础操作命令)
- mysql基础命令
- mysql -- 基础 -- 常用命令
- mysql 基础命令
- Linux下mysql基础命令
- mysql基础操作命令
- 整理的mysql基础操作命令