首页 > 代码库 > MYSQL数据库常用命令

MYSQL数据库常用命令

1、linux 安装数据库

# yum install mysql* -y

2、启动数据库/关闭数据库/重启数据库/查看数据库状态

# /etc/init.d/mysqld start
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld restart
# /etc/init.d/mysqld status

3、开机启动数据库

# chkconfig mysql on

4、配置修改数据库root密码

# mysqladmin -uroot password "123456"
或:
mysql> SET PASSWORD FOR ‘root‘@‘localhost‘=PASSWORD(‘123456‘);

5、使用root用户登录数据库

# mysql -uroot -p123456

6、创建数据库xiessdb

mysql> CREATE DATABASE xiessdb;

注:mysql语句中";"表示结束,也可以用"\g"或者"\G"表示,"\g"与";"相同,"\G"可以显示让结果更加直观

7、使用show查看数据库xiess

mysql> show DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
| xiessdb            |
+--------------------+
4 rows in set (0.00 sec)

8、删除数据库xiessdb

mysql> DROP DATABASE xiessdb;

9、查看MYSQL数据库支持的存储引擎类型

mysql> show ENGINES;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
+------------+---------+------------------------------------------------------------+--------------+------+------------+

engine参数是存储引擎名称;support参数是指mysql是否支持该类引擎;comment参数是指对该引擎的评论;transactions参数表示是否支持事件处理;savepoints参数表示是否支持保存点,以便事务回滚到保存点。 另一个show语句查询支持的存储引擎信息。

mysql> show VARIABLES LIKE ‘have%‘;

使用show语句查询默认存储引擎

mysql> show VARIABLES LIKE ‘storage_engine‘;

修改默认的存储引擎为InnoDB

修改my.cnf配置文件,在[mysqld]后面添加

default-storage-engine=InnoDB

重启数据库

10、数据库表

表是数据库存储数据的基本单位。一个表包含若干个字段或纪录。

注:在创建表时,首先要选择数据库,选择数据库的语句为"use 数据库名"。

mysql> use xiessdb;

在xiessdb数据库下创建名为mydb01的表

mysql> CREATE TABLE mydb01(id INT,name VARCHAR(20),sex BOOLEAN);

其中,id字段表示整形;name字段表示字符串型;sex字段表示布尔型。

删除表语法,例:删除表mydddd0

mysql> DROP TABLE mydddd0;

设置表的主键。主键是表的一个特殊字段,该字段能唯一地标识该表中的每条信息。

主键是由一个字段构成,可以直接在该字段的后面加上PRIMARY KEY 来设置,语法规则:属性名 数据类型 PRIMARY KEY

新建表mydb02,设置stu_id 为主键

mysql> CREATE TABLE mydb02(stu_id INT PRIMARY KEY,stu_name VARCHAR(20),stu_sex BOOLEAN);

多字段主键。主键是由多个属性组合而成,在属性定义完后统一设置主键。语法规则:PRIMARY KEY(属性名1,属性名2,...)

新建表mydb03,设置stu_id,course_id为主键

mysql> CREATE TABLE mydb03(stu_id INT,course_id INT,grade FLOAT,PRIMARY KEY(stu_id,course_id));

设置表的外键。外键是表的特殊字段,作用是建立该表d与其父表的关联关系。原则是依赖存在父表的主键,外键可以是空值。基本语法规则:CONSTRAINT 别名 FOREIGN KEY(属性1.1,属性1.2....)PRFERENCES 表名(属性2.1,属性2.2....)

设置表的非空约束。非空性是指字段的值不能为空值(NULL) 设置非空约束的基本语句规则是:属性名 数据类型 NOT NULL

mysql> CREATE TABLE mydb04(id INT NOT NULL PRIMARY KEY,name VARCHAR(20) NOT NULL);

设置表的唯一性约束。唯一性约束是指所有纪录中该字段的值不能重复出现。唯一性约束的基本语法规则是:属性名 数据类型 UNIQUE

mysql> CREATE TABLE mydb05(id INT PRIMARY KEY,stu_id INT UNIQUE,name VARCHAR(20) NOT NULL);

设置表的属性值自动增加。AUTO_INCREMENT是mysql数据库中的一个特殊的约束条件,用于为表中插入的新纪录自动生成唯一的ID。默认情况下,该字段的值是从1开始增长。基本语法规则是:属性名 数据类型 AUTO_INCREMENT

mysql> CREATE TABLE mydb06(id INT PRIMARY KEY AUTO_INCREMENT,stu_id INT UNIQUE,name VARCHAR(20) NOT NULL);

设置表属性的默认值。默认值是通过DEFAULT关键字来设置,基本语法规则是:属性名 数据类型 DEFAULT 默认值

二、查看表结构

1、查看表结构的语句包括DESCRIBE语句和SHOW CREATE TABLE语句。DESCRIBE语句可以查询表的基本定义。包括字段名、字段数据类型、是否为主键和默认值等。基本语法是:DESCRIBE 表名;

mysql> DESCRIBE mydb05;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| stu_id | int(11)     | YES  | UNI | NULL    |       |
| name   | varchar(20) | NO   |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

2、查看表详细结构语句SHOW CREATE TABLE。该语句可以查看表的字段名、字段的数据类型、完整性约束条件等信息,还可以查看表默认的存储引擎和字符编码。基本语法是:SHOW CREATE TABLE 表名;

mysql> SHOW CREATE TABLE mydb05;
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                                                                   |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mydb05 | CREATE TABLE `mydb05` (
  `id` int(11) NOT NULL,
  `stu_id` int(11) DEFAULT NULL,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `stu_id` (`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

三、修改表名

表名是数据库中唯一的。通过语句ALTER TABLE 实现。基本语法是:ALTER TABLE 旧表名 RENAME [TO] 新表名;

mysql> ALTER TABLE mydb06 RENAME mysqldb006;

ALTER TABLE 语句也可以修改字段的数据类型,基本语法是:ALTEL TABLE 表名 MODIFY 属性名 数据类型;

ALTEL TABLE 语句也可以修改表的字段名,基本语法是:ALTEL TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;

ALTEL TABLE 语句也可以增加字段,基本语法是:ALTEL TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];

mysql> ALTER TABLE mydb06 ADD phone VARCHAR(20);
mysql> ALTER TABLE mydb06 ADD age INT(4) NOT NULL;

注:默认情况下,新增字段都在表的最后一个字段,加上FIRST参数,可将新增字段设置在表的第一个字段。指定位置增加字段,加上"AFTER 属性名2" 参数,则新增字段插入在"属性名2"后面。

ALTEL TABLE 语句也可以删除表的字段,基本语法是:ALTEL TABLE 表名 DROP 属性名;

ALTEL TABLE 语句修改字段的排列位置,基本语法是:ALTEL TABLE 表名 MODIFY 属性名1 数据类型 FIRST | AFTER 属性名2;

ALTEL TABLE 语句更改表的存储引擎,基本语法是:ALTEL TABLE 表名 ENGINE=存储引擎名;

mysql> ALTER TABLE mydb06 ENGINE=MyISAM;

ALTEL TABLE 语句删除表的外键约束,基本语法是:ALTEL TABLE 表名 DROP FOREIGN KEY 外键别名;

四、删除表

mysql 中使用DORP TABLE 语句删除表,基本语法是:DROP TABLE 表名;

mysql> DROP TABLE mydb06;

注:删除被其他表关联的父表。先删除其他表的约束,再删除父表。

MYSQL数据库常用命令