mysql常见命令

使用mysql -h hostname -P port  -u username  -p 输入密码登入进到mysql的命令行;注意一下,这里的-P port P是大小的;

目录

一、查看数据库总体的信息

二、创建具体的数据库相关

三、表相关的创建、修改表、删除表

四、关于表中数据的约束


一、查看数据库总体的信息

 

1.常看mysql服务器的总体状况  status   

如下,可一.常看数据库总体的信息;以看到mysql server的具体版本  默认的字符集,端口等信息

mysql> status;

Connection id:          46
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.25 MySQL Community Server (GPL)
Protocol version:       10
Connection:             127.0.0.1 via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 6 days 1 hour 36 min 41 sec

Threads: 2  Questions: 1879  Slow queries: 0  Opens: 333  Flush tables: 2  Open tables: 189  Queries per second avg: 0.003
--------------

2.常看数据库  

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.01 sec)

3.常看当前的的事物隔离级别

mysql> select @@tx_isolation;
+-----------------+
| @@tx_isolation  |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set, 1 warning (0.00 sec)

4.查看系统相关的配置参数

 show variables like "%time_zone";  “character” 等等;

 

二、创建具体的数据库相关

1.创建数据库

mysql> create database mydata;
Query OK, 1 row affected (0.00 sec)

2.使用该数据库

mysql> use mydata;
Database changed

3.查看当前使用的数据库

mysql> select database();
+------------+
| database() |
+------------+
| mydata     |
+------------+
1 row in set (0.00 sec)

4.查看当前数据库使用的字符集,可以看到mydata数据库使用的字符集不是lantin 1

mysql> show create database mydata;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| mydata   | CREATE DATABASE `mydata` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

5.修改数据库的字符集

mysql> alter database mydata default character set utf8;
Query OK, 1 row affected (0.00 sec)

6.全局修改 字符集的配置,只在当前会话session中有效

/*建立连接使用的编码*/
set character_set_connection=utf8;
/*数据库的编码*/
set character_set_database=utf8;
/*结果集的编码*/
set character_set_results=utf8;
/*数据库服务器的编码*/
set character_set_server=utf8;

7.删除某个数据库,aaaa为数据库的名称

drop database aaaa;

三、表相关的创建、修改表、删除表

1.创建表

mysql> create table user(name varchar(20));

2.查看表结构

mysql> desc user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.00 sec)

3.为已创建的表增加comment

mysql> alter table user comment="这是表的注释";
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

4.查看表的注释,这里解释一下,在mysql中information_schema库中的表tables含有创建表的信息

mysql> select table_name,table_comment from information_schema.tables where table_schema = 'mydata' and table_name ='user';     
+------------+--------------------+
| table_name | table_comment      |
+------------+--------------------+
| user       | 这是表的注释       |
+------------+--------------------+
1 row in set (0.00 sec)

5.查看表的字符集


mysql> show create table user;
+-------+---------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                              |
+-------+---------------------------------------------------------------------------------------------------------------------------+
| user  | CREATE TABLE `user` (
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='这是表的注释'       |
+-------+---------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

6.修改表的字符集

 alter table user default character set utf8;

7.给表增加一列

mysql> alter table user add age int;

8.更改现有列的数据类型

alter table user modify age varchar(20);

9.更改现有列的名称及其他

mysql> alter table user change age birthday varchar(50);

10.表中字段的常见数据类型

整数类型  :tinyint  (1个字节) smallint(2个字节) mediumint (3个字节) int(4个字节) bigint(8个字节)

注意默认的int 类型时,使用desc user 会显示  int(11) 这个11是显示数据的长度,在 无符号unsigned的时候,可以使用0来补全,

但并不会限制数据的本身存储大小,即int类型还是可以存储int类型的大小的数据

比如int(5) 当你存放1的时候,可以使用无符号0补全  则得到的是00001

mysql> alter table user add tiny tinyint, add small smallint, add medium mediumint, add normal int, add big bigint;

浮点型:float, double ,decimal

alter table user add f float , add d double, add de decimal;

字符串型:

CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 各SET等多种字符串类型

这里最常用的就是varchar(n)这个n表示的存放字符的个数,并不是字节的个数,比如varchar(20) 字符集为utf8的话,就可以存放20个汉字,并不是20个字节,一个汉字占用3个字节.

varchar 和char 的区别就是varchar是变长的

varchar的最大长度为 varchar(21845)  21845是65535/3得来的,当还不满足需求的时候可以使用 text blob

日期类型: data time year timestamp datetime  

mysql> alter table user add testdatetime datetime,add testtimestamp timestamp;

至此常用的数据结构如下

mysql> desc user;
+---------------+---------------+------+-----+-------------------+-----------------------------+
| Field         | Type          | Null | Key | Default           | Extra                       |
+---------------+---------------+------+-----+-------------------+-----------------------------+
| name          | varchar(20)   | YES  |     | NULL              |                             |
| birthday      | varchar(50)   | YES  |     | NULL              |                             |
| tiny          | tinyint(4)    | YES  |     | NULL              |                             |
| small         | smallint(6)   | YES  |     | NULL              |                             |
| medium        | mediumint(9)  | YES  |     | NULL              |                             |
| normal        | int(11)       | YES  |     | NULL              |                             |
| big           | bigint(20)    | YES  |     | NULL              |                             |
| f             | float         | YES  |     | NULL              |                             |
| d             | double        | YES  |     | NULL              |                             |
| de            | decimal(10,0) | YES  |     | NULL              |                             |
| testdatetime  | datetime      | YES  |     | NULL              |                             |
| testtimestamp | timestamp     | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------------+---------------+------+-----+-------------------+-----------------------------+

需要的说明的是timestamp这种数据类型比较特殊,他是根据时区转换的,更改mysql 的时区,则他的值为改变,而datatime

更像是转化后以字符串的方式存储的,不会根据时区改变 ;

11.删除表

mysql> drop table  mydrop; 

表结构都删掉了

truncate  tablename;

只删除数据,不删除表结构

四、关于表中数据的约束

1.主键,主键不能空,不能重复 ,一个表中只能有一个主键 

添加一个主键
mysql> alter table user add primary key(name);

删除主键

mysql> alter table user drop  primary key;

建立联合主键,两者都不能为空,各个参与的属性都不同的时候才算不同

 alter table user add primary key(normal,name); 

2.唯一约束 ,只能作用在一个列上

添加唯一性约束

mysql> alter table user add unique(f);

查看 唯一约束,和主键约束

show keys from user;

删除唯一性约束

 drop index f on user;

3.一般索引

索引包括唯一索引、主键索引、一般索引,组合索引,全文索引;

唯一索引和主键索引已经介绍过了;

一般索引

创建索引

 alter table user add index(f) 或 alter table user add index  index_name (f)  默认的索引名就是该字段名

删除索引

 drop index myindex on user;

组合索引的创建d,f列的组合索引

alter table user add index d_f (d,f);

注意一般的索引,可以相等,可以为null

4.tiny字段自增

alter table user modify tiny tinyint auto_increment; 

5.设置默认值,是否为null,

alter table user modify small smallint not null default 111;

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值