MySQL数据库简单命令

约定:①、[...] 中的内容可以省略

           ②、{...} 中的内容任选其一


一、修改MySQL提示符


1、连接客户端后输入: prompt  提示符 

e.g:

2、连接客户端时通过参数指定:mysql -u用户名 -p密码 --prompt 提示符(由于笔者直接使用MySQL客户端连接,故没试验)。

3、一些简单的参数(未能实现)

PROMPT \u@\h \d>      参数\u用户名 \h主机名 \d当前数据库


二、常用命令

1、查询版本号:SELECT VERSION();

e.g.:

2、查询当前时间:SELECT NOW();

3、查询当前用户:SELECT USER();


三、操作数据库

1、创建数据库

CREATE {DATABASE | SCHEMA}  [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name;

2、查看当前服务器下的数据库

SHOW {DATABASES | SCHEMAS};

3、查看当前数据库的配置

SHOW CREATE DATABASE 数据库名;

4、修改数据库编码方式

ALTER {DATABASE | SCHEMA} db_name [DEFAULT] CHARACTER SET [=] charset_name;

5、删除数据库

DROP {DATABASE | SCHEMAS} [IF EXISTS] db_name;

6、查看当前的warning

SHOW WARNINGS;

7、查看当前打开的数据库

SELECT DATABASE();


四、操作数据表

1、创建数据表

CREATE TABLE [IF NOT EXISTS] table_name(

column_name data_type,

……

);

2、查看数据表

SHOW TABLES [FROM db_name]  [LIKE 'patter' | WHERE expr];

e.g. SHOW TABLES FROM order;

如果只是查看当前数据库下的数据表,可直接使用SHOW TABLES;

3、查看数据表结构

SHOW COLUMNS FROM table_name;

4、修改数据表的列

①、添加 || 删除列

|----添加单列 

ALTER TABLE tb_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name];

e.g. ALERT TABLE users1 ADD COLUMN age TINYINT UNSIGNED NOT NULL DEFAULT 10 ;

如果不加AFTER会将此age列加到最后一列)

ALTER TABLE users1 ADD pname VARCHAR(20) NOT NULL AFTER username;

会在users1中username列后添加新的一列pname

同理如果加上FIRST 就会添加到表的第一列

|----添加多列

ALTER TABLE tb_name ADD [COLUMN] (col_name column_definition,...) ;

注:definition [ˌdefɪˈnɪʃn] 定义、解释

|----删除单列

ALTER TABLE tb_name DROP [COLUNM] col_name;

|----删除多列

ALTER TABLE tb_name DROP [COLUMN] (col_name column_definition,...) ;

②、添加 || 删除约束

|----添加主键约束

ALTER TABLE tb_name ADD [ CONSTRAINT [ symbol ] ] PRIMARY KEY [ index_type ] (index_col_name);

e.g.

ALTER TABLE tb_name ADD CONSTRAINT PK_user2_id PRIMARY KEY ( id);

详解:将users2 中的id字段设置为主键,并将主键名设置为PK_users2_id ;

注:symbol   [ˈsɪmbl]  符号,象征

|----删除主键约束

ALTER TABLE tb_name DROP PRIMARY KEY;

注:由于主键只有一个,故不需要指定名字

|----添加唯一约束

ALTER TABLE tb_name ADD [ CONSTRAINT [ symbol ] ] UNIQUE [ INDEX | KEY ] [index_name ] [ index_type ] (index_col_name);

|----删除唯一约束

ALTER TABLE tb_name DROP { index  | key } index_name;

|----添加外键约束

ALTER TABLE tb_name ADD [ CONSTRAINT [ symbol ] ] FOREIGN KEY [ index_name ] ( index_col_name,... ) reference_definition;

e.g. 

ALTER TABLE users2 ADD FOREIGN KEY ( pid ) REFERENCES tb2 ( id );

详解:将users2 pid字段外键设置为外键列,参照表tb2的 id字段

|----删除外键约束

如果不是自己指定的外键名字,必须先查到由系统默认赋予的外键约束的名字

SHOW CREATE TABLE tb_name;   一般结构e.g.:users2_ibfk_1

ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol;

|----添加 || 删除默认约束

ALTER TABLE tb_name ALTER [ COLUMN ] col_name { SET DEFAULT LITERAL | DROP DEFAULT }

e.g.

ALTER TABLE users2 ALTER COLUMN age SET DEFAULT 15;

详解:将users2的age字段默认值设置为15;

注:litera  [ˈlɪtərəl] 错排,文字上的错误

③、修改列定义

ALTER TABLE tb_name MODIFY [ COLUMN ] col_name column_definition [ FIRST | AFTER col_name ]

e.g. 将表users2中的id字段放到最前列(本来非最前列)

ALTER TABLE users2 MODIFY id SMALLINT  UNSIGNED NOT NULL (本来id字段的设置可以改变,即同时将类型等同时修改)  FIRST;

注意:如果改变字段的类型是有大类型改为小类型可能会造成数据的丢失

注:modify [ˈmɒdɪfaɪ] 修改

④、修改列的名字

ALTER TABLE tb_name CHANGE [ COLUMN ] old_col_name new_col_name column_definition  [ FIRST | AFTER col_name ]

ALTER TABLE tb_name CHANGE pid p_id TINYINT UNSIGNED NOT NULL;

注:CHANGE 关键字即可修改列名字又可修改列定义

⑤、修改表的名字

方法一   ALTER TABLE tb_name RENAME [ TO | AS ] new_tb_name;

方法二  RENAME tb1_name TO new_tb1_name [ , tb2_name TO new_tb2_name,... ]

注:方法二可同时修改多张表的名字

注意:尽量不要修改表或列的名字,以防引用此张表的视图、存储过程等出错。


你可能感兴趣的:(MySQL数据库简单命令)