MySql常用操作【基础且详细(●'?'●)】

时间:2022-05-24 01:57:42

 有那么挺长段时间没有敲代码了,今敲起来竟然有些sql都想不起来了??

把以前整理sql的内容看了下,再加了点??

主要参考自

MySql文档:https://dev.mysql.com/doc/refman/8.0/en/tutorial.html

易百教程:https://www.yiibai.com/mysql

一,基本操作

1.连接操作

连接远程数据库:

$ mysql -h host -u -user -p

(host:主机 user:用户名)

连接本地数据库:

$ mysql -u user -p

退出

$ quit

2.状态相关

mysql所处状态的含义 

提示 含义
mysql> 准备进行新查询
-> 等待多行查询的下一行
‘> 等待下一行,等待以单引号(开头的字符串的完成
"> 等待下一行,等待以双引号("开头的字符串的完成
`> 等待下一行,等待以反引号(`开头的标识符的完成
/*> 等待下一行,等待以开头的注释的完成 /*

 取消查询:

mysql> SELECT
    -> USER()
    -> c
mysql>

3.数据库相关操作

查询当前服务器下的数据库:

1 mysql> SHOW DATABASES;
2  ---------- 
3 | Database |
4  ---------- 
5 | mysql    |
6 | test     |
7 | tmp      |
8  ---------- 

 使用数据库:

1 mysql> USE test
2 Database changed

创建数据库:

1 CREATE DATABASE worker;

删除数据库:

1 mysql> DROP DATABASE worker;
2 Query OK, 0 rows affected (0.15 sec)

 

4.表相关操作

切换到数据库下时,

语法:

 1 CREATE TABLE [IF NOT EXISTS] table_name(
 2         column_list
 3 ) engine=table_type;
 4 /*
 5  *engine可选InnoDB,MyISAM,HEAP,EXAMPLE等
 6  *Mysql5.5后默认为InnoDB
 7  */
 8 
 9 column_name data_type[size] [NOT NULL|NULL] [DEFAULT value] 
10 /*
11  *column_name指定列的名称。每列具有特定数据类型和大小,例如:VARCHAR(255)。 
12  *NOT NULL或NULL表示该列是否接受NULL值。DEFAULT值用于指定列的默认值。 
13  *AUTO_INCREMENT指示每当将新行插入到表中时,列的值会自动增加。
14  */
15 
16 PRIMARY KEY (id)
17 -- 用以设置主键

 

 创建表示例:

1 CREATE TABLE IF NOT EXISTS student ( 
2 id INT(8),
3 name VARCHAR(20) NOT NULL AUTO_INCREMENT, 
4 number INT(8) DEFAULT NULL,
5 sex CHAR(1), 
6 birth DATE,
7 PRIMARY KEY (task_id)
8 )ENGINE=InnoDB;

 

创建表时复制表:

1 CREATE TABLE new_table 
2 SELECT col, col2, col3 
3 FROM
4     existing_table;

创建时复制部分:

1 CREATE TABLE new_table 
2 SELECT col1, col2, col3 
3 FROM
4     existing_table
5 WHERE
6     conditions;

 

查询库下的表:

1 mysql> SHOW TABLES;
2  ------------------- 
3 | Tables_in_student |
4  ------------------- 
5 | student           |
6  ------------------- 
7 1 row in set (0.00 sec)

查看表结构:

1 mysql> DESCRIBE student;
2  -------- ------------- ------ ----- --------- ------- 
3 | Field  | Type        | Null | Key | Default | Extra |
4  -------- ------------- ------ ----- --------- ------- 
5 | name   | varchar(20) | YES  |     | NULL    |       |
6 | number | int(8)      | YES  |     | NULL    |       |
7 | sex    | char(1)     | YES  |     | NULL    |       |
8 | birth  | date        | YES  |     | NULL    |       |
9  -------- ------------- ------ ----- --------- ------- 

删除表:

1 mysql> DROP TABLE student;

 

5.表内容的CRUD

增:

 插入数据:

(如果列的值相对应则可以忽略列名进行插入)

1 mysql> INSERT INTO student
2     -> VALUES (Bob,201803224,m,1999-03-30);
3 Query OK, 1 row affected (0.44 sec)
1 mysql> INSERT INTO student
2     -> (name,number,sex,birth)
3     -> VALUES
4     -> (Lily,201805623,f,1998-04-23);

 插入多条:

1 mysql> INSERT INTO student
2     -> (name,number,sex,birth)
3     -> VALUES
4     -> (Li,201835623,f,1998-04-13),
5     -> (Mi,201835923,m,1994-04-03),
6     -> (Mark,201845723,m,1994-03-02);
7 Query OK, 3 rows affected (0.09 sec)
8 Records: 3  Duplicates: 0  Warnings: 0

改:

删:

查: