首页 > 代码库 > 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数据库常用命令