MySQL学习

一、数据库

1、连接数据

mysql -h 127.0.0.1 -P 3306 -u root -p
如果在服务器上登录,可以不写-h与-P。

2、显示数据库

SHOW DATABASES;

3、创建数据库

CREATE DATABASE stu;

4、删除数据库

DROP DATABASE stu;

5、使用数据库

USE stu;

6、查看数据库的连接状态

mysql> SHOW PROCESSLIST;
+----+-----------------+----------------+------+---------+-------+------------------------+------------------+
| Id | User            | Host           | db   | Command | Time  | State                  | Info             |
+----+-----------------+----------------+------+---------+-------+------------------------+------------------+
|  5 | event_scheduler | localhost      | NULL | Daemon  | 17870 | Waiting on empty queue | NULL             |
| 16 | root            | localhost:2407 | stu  | Query   |     0 | init                   | SHOW PROCESSLIST |
+----+-----------------+----------------+------+---------+-------+------------------------+------------------+
2 rows in set, 1 warning (0.00 sec)

二、数据表

1、创建数据表

CREATE TABLE stuInfo(id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),birth DATE);

2、显示数据表

SHOW TABLES;

3、查看表的结构

DESC stuInfo;

4、显示创建表的命令

SHOW CREATE TABLE stuInfo;

输出: CREATE TABLE stuinfo (
id int NOT NULL AUTO_INCREMENT,
name varchar(50) DEFAULT NULL,
birth date DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

5、删除表

 DROP TABLE stuInfo;

6、插入记录

  • 插入记录
 INSERT INTO stuInfo (name,birth) VALUES ('CFY','1993-5-10');
  • 插入多条记录
 INSERT INTO stuInfo (name,birth) VALUES ('CFY2','1993-5-10'),('sde','2000-9-8');
  • 插入或替换,如果id相同,会删除源id的记录,然后插入新的记录
 REPLACE INTO stuInfo (id,name,birth) VALUES (1,'CFY2','1993-5-10'),('sde','2000-9-8');
  • 插入或更新,如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录,此时,可以使用INSERT INTO … ON DUPLICATE KEY UPDATE …语句:
mysql> SELECT * FROM stu_info;
+----+------+-------+
| id | name | birth |
+----+------+-------+
|  1 | TOM2 | NULL  |
|  2 | jary | NULL  |
+----+------+-------+
mysql> INSERT INTO stu_info (id,name) VALUES (1,'tom') ON DUPLICATE KEY UPDATE birth='2000-1-1';
#因为已经存在id为1的记录,所以只更新birth
mysql> SELECT * FROM stu_info;
+----+------+------------+
| id | name | birth      |
+----+------+------------+
|  1 | TOM2 | 2000-01-01 |
|  2 | jary | NULL       |
+----+------+------------+
  • 插入或忽略,如果主键id已存在则忽略
 INSERT IGNORE INTO stu_info (id,name)  VALUES (1,'tom') ;

7、更新记录

 UPDATE stuInfo SET name='CFY0' WHERE name='CFY';

8、删除记录

 DELETE FROM stuInfo WHERE name='sde';

9、添加列

ALTER TABLE stuInfo ADD COLUMN address VARCHAR(100);

在某列后面添加列(在id后面添加列)

ALTER TABLE stuInfo ADD COLUMN class_id int AFTER id;

10、删除列

ALTER TABLE stuInfo DROP address;

11、修改列(修改数据类型)

ALTER TABLE stuInfo MODIFY address VARCHAR(200);

12、修改列(修改列名)

 ALTER TABLE stuInfo CHANGE address home_address VARCHAR(210);

13、修改表名

ALTER TABLE stuInfo RENAME AS stu_info;

14、指定主键

mysql> DESC stu_info;
+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| id    | bigint | NO   |     | NULL    |       |
| name  | text   | YES  |     | NULL    |       |
+-------+--------+------+-----+---------+-------+
ALTER TABLE stu_info MODIFY id BIGINT AUTO_INCREMENT PRIMARY KEY;#指定主键,同时指定id为AUTO_INCREMENT

15、删除主键

删除主键前,如果主键有AUTO_INCREMENT,先去掉AUTO_INCREMENT

mysql> DESC stu_info;
+-------+--------+------+-----+---------+----------------+
| Field | Type   | Null | Key | Default | Extra          |
+-------+--------+------+-----+---------+----------------+
| id    | bigint | NO   | PRI | NULL    | auto_increment |
| name  | text   | YES  |     | NULL    |                |
+-------+--------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
ALTER TABLE stu_info MODIFY id BIGINT;#删除auto_increment
ALTER TABLE stu_info DROP PRIMARY KEY;#删除主键

三、查询

查询所有

SELECT * FROM stu_info;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值