Mysql 命令

启动:net start mysql

关闭:net stop mysql

登陆:

 

 

创建数据库
create database abc;

选择数据库、显示数据库

use 数据库名字

show databases;

查看表结构:

desc  表名字

显示当前数据库:

select database();

mysql> select database();
+----------------+
| database()     |
+----------------+
| partition_test |
+----------------+
1 row in set (0.04 sec)

删除表和数据

1、drop  table tb 

      drop将表格直接删除,没有办法找回

2、truncate (table) tb

      删除表中的所有数据,不能与where一起使用

3、delete from tb (where)

      删除表中的数据(可制定某一行)

 

更新数据库

在这里,需要注意:数据库的名字不可以修改。

数据库的修改仅限库选项,即字符集和校对集(校对集依赖字符集)。

基本语法:alter database + 数据库名称 + [库选项];

charset/character set[=] 字符集;
collate[=] 校对集;
示例:alter database TBL_ERROR_CODE charset gbk;表示修改此数据库的字符集为gbk.
 

删除数据库 

drop database

mysql> create database dd;
Query OK, 1 row affected (0.01 sec)

mysql> show databases like "d%";
+---------------+
| Database (d%) |
+---------------+
| dd            |
| dxt00         |
+---------------+
2 rows in set (0.00 sec)

mysql> drop database dd;
Query OK, 0 rows affected (0.01 sec)

mysql> show databases like "d%";
+---------------+
| Database (d%) |
+---------------+
| dxt00         |
+---------------+
1 row in set (0.00 sec)

创建表

create table if not exists

mysql> create table if not  exists maomao( name varchar(10), age int )charset utf8;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+-----------------+
| Tables_in_dxt00 |
+-----------------+
| maomao          |
| test_load       |
+-----------------+
2 rows in set (0.01 sec)

更改表:https://blog.csdn.net/qq_35246620/article/details/70945890

1)重命名 rename table xx to yy;

mysql> rename table maomao to mao;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-----------------+
| Tables_in_dxt00 |
+-----------------+
| mao             |
| test_load       |
+-----------------+
2 rows in set (0.00 sec)

2)添加字段 alter table mao add price int after age;

mysql> desc mao
    -> ;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> alter table mao add price int after age;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc mao;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| price | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

修改字段,基本语法:alter table + 表名 + modify + 字段名 + 数据类型 + [列属性][位置]; 
其中,位置表示此字段存储的位置,分为first(第一个位置)和after + 字段名(指定的字段后,默认为最后一个位置).
示例:alter table student modify name char(10) after id;


重命名字段,基本语法:alter table + 表名 + change + 旧字段名 + 新字段名 + 数据类型 + [列属性][位置]; 
其中,位置表示此字段存储的位置,分为first(第一个位置)和after + 字段名(指定的字段后,默认为最后一个位置).
示例:alter table student change grade class varchar(10);


删除字段,基本语法:alter table + 表名 + drop+ 字段名; 
示例:alter table student drop age;
注意:如果表中已经存在数据,那么删除该字段会清空该字段的所有数据,而且不可逆,慎用。
 


表数据操作:增删查改

insert into mao values("mi",11,1000);

update mao set age = 12 where name="mi";

select * from mao;

 delete from mao where name = "mi";

mysql> desc mao;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| price | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql> insert into mao values("mi",11,1000);
Query OK, 1 row affected (0.00 sec)

mysql> select * from mao;
+------+------+-------+
| name | age  | price |
+------+------+-------+
| mi   |   11 |  1000 |
+------+------+-------+
1 row in set (0.00 sec)

mysql> update mao set age = 12 where name="mi";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from mao;
+------+------+-------+
| name | age  | price |
+------+------+-------+
| mi   |   12 |  1000 |
+------+------+-------+
1 row in set (0.00 sec)

mysql> delete from mao where name = "mi";
Query OK, 1 row affected (0.00 sec)

 

数据类型约束:

列属性:实际上,真正约束字段的是数据类型,但是数据类型的约束比较单一,因此就需要额外的一些约束来保证数据的有效性,这就是列属性。

列属性有很多,例如:null、not null、default、primary key、unique key、auto_increment和comment等。
 

mysql> create table my_class(
    -> grade varchar(20) not null,
    -> room varchar(20) null
    -> )charset utf8;
Query OK, 0 rows affected (0.01 sec)

mysql> desc my_class;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | varchar(20) | NO   |     | NULL    |       |
| room  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> insert into my_class values(12,2);
Query OK, 1 row affected (0.01 sec)

mysql> insert into my_class values(12,NULL);
Query OK, 1 row affected (0.01 sec)

mysql> insert into my_class values(NULL,NULL);
ERROR 1048 (23000): Column 'grade' cannot be null

 

默认值

默认值:default某一数据会经常性出现某个具体的值,因此可以在开始的时候就指定好,而在需要真实数据的时候,用户可以选择性的使用默认值。

执行如下 SQL 语句,进行演示:

mysql> create table my_default( 
name varchar(20) not null,
 age tinyint unsigned default 0,
 gender enum('男','女')default '男'
)charset utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> desc my_default;
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| name   | varchar(20)         | NO   |     | NULL    |       |
| age    | tinyint(3) unsigned | YES  |     | 0       |       |
| gender | enum('男','女')     | YES  |     | 男      |       |
+--------+---------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

主键

添加主键:

1)建表的时候添加主键

 id int(11) primary key,

mysql> create table my_pri(
    -> id int(11) primary key,
    -> name varchar(20) not null
    -> )charset utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> desc my_pri;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

一张表只能有一个主键: 

mysql> alter table  my_pri add primary key(name);
ERROR 1068 (42000): Multiple primary key defined

2) alter table  my_default add primary key(name);

mysql> alter table  my_default add primary key(name);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc my_default;
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| name   | varchar(20)         | NO   | PRI | NULL    |       |
| age    | tinyint(3) unsigned | YES  |     | 0       |       |
| gender | enum('男','女')     | YES  |     | 男      |       |
+--------+---------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

主键约束

主键约束,即主键对应的字符中的数据不允许重复,如果重复,则数据操作(主要是增和改)失败

主键冲突: 

mysql> insert into  my_default values("dxt",1,default);
Query OK, 1 row affected (0.00 sec)

mysql> insert into  my_default values("dxt",2,default);
ERROR 1062 (23000): Duplicate entry 'dxt' for key 'PRIMARY'

删除主键:
 

mysql> alter table  my_default drop primary key;
Query OK, 1 row affected (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> desc my_default;
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| name   | varchar(20)         | NO   |     | NULL    |       |
| age    | tinyint(3) unsigned | YES  |     | 0       |       |
| gender | enum('男','女')     | YES  |     | 男      |       |
+--------+---------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

自增长:

mysql> create table my_auto(
    -> id int primary key auto_increment,
    -> name varchar(20) not null
    -> )charset utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> desc my_auto;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql> insert into my_auto(name) values("dxt");
Query OK, 1 row affected (0.00 sec)

mysql> insert into my_auto(name) values("qun");
Query OK, 1 row affected (0.00 sec)

mysql> insert into my_auto(name) values("dun");
Query OK, 1 row affected (0.00 sec)

mysql> select * from my_auto;
+----+------+
| id | name |
+----+------+
|  1 | dxt  |
|  2 | qun  |
|  3 | dun  |
+----+------+
3 rows in set (0.00 sec)

mysql> 
mysql> insert into my_auto(id,name) values(5,"dun");
Query OK, 1 row affected (0.00 sec)

mysql> insert into my_auto(name) values("dunn");
Query OK, 1 row affected (0.00 sec)

mysql> select * from my_auto;
+----+------+
| id | name |
+----+------+
|  1 | dxt  |
|  2 | qun  |
|  3 | dun  |
|  5 | dun  |
|  6 | dunn |
+----+------+
5 rows in set (0.00 sec)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值