Linux下mysql的SQL语句基本操作

这篇博客详细介绍了在Linux系统中如何操作MySQL,包括登录、启动服务、数据库的创建、选择、删除,以及数据表的显示、创建、修改和删除等基本操作,涵盖了SQL语句的基础使用。
摘要由CSDN通过智能技术生成

一、登录mysql

1、先启动mysql服务

service mysql start

2、再登陆

第一种方法:

mysql -u root -p 

第二种方法:
找到mysql的bin目录:
① cd /home/mysql-5.7.32/bin
② ./mysql -u root –p

root@kylin-virtual-machine:~# cd /home/mysql-5.7.32/bin/

root@kylin-virtual-machine:/home/mysql-5.7.32/bin#./mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.32 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

输入密码,成功登录mysql。

二、数据库

1、显示数据库

show databases;

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

mysql>

2、删除数据库

drop database 库名;

#删除wkl库
mysql> drop database wkl;
Query OK, 2 rows affected (0.08 sec)
#再查看库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql>

drop命令可以使用if exits选项判断数据库是否存在,存在即删除,不存在也不会报错。
语法:
drop database if exists 库名;

#查看库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
| wkl                |
+--------------------+
6 rows in set (0.00 sec)

#删除test1库
mysql> drop database if exists test1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
#test1库不存在,所以无变化
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
| wkl                |
+--------------------+
6 rows in set (0.00 sec)

#删除test库
mysql> drop database if exists test;
Query OK, 0 rows affected (0.00 sec)
#test库删除成功
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wkl                |
+--------------------+
5 rows in set (0.00 sec)

mysql>

3、创建数据库

create database 库名;

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

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

mysql>

4、选择数据库

use 库名;

mysql> use wkl;
Database changed
mysql>

5、查看当前使用的是哪个数据库

select database();

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

mysql>

6、显示当前MYSQL版本和当前日期

select version(),current_date;

mysql> select version(),current_date;
+-----------+--------------+
| version() | current_date |
+-----------+--------------+
| 5.7.32    | 2020-11-18   |
+-----------+--------------+
1 row in set (0.06 sec)

mysql>

7、刷新数据库

flush privileges;

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>

三、数据表

1、显示表

show tables;

mysql> show tables;
Empty set (0.00 sec)

刚才新建的库,里面还没有表。

2、创建表

create table 表名
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,

);

示例:

#创建test表
mysql> create table test(
    -> pid int(10),
    -> name varchar(20),
    -> age int(10),
    -> city varchar(20),
    -> birth date
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql>
#查看表
mysql> show tables;
+---------------+
| Tables_in_wkl |
+---------------+
| test          |
+---------------+
1 row in set (0.00 sec)

mysql>

数据类型详解:

数据类型 字节 用途 格式
int 4 整数
float 4 单精度浮点数
double 8 双精度浮点数
enum - 单选,比如性别 enum(‘a’,‘b’,‘c’)
set - 多选 set(‘1’,‘2’,‘3’)
date 3 日期 YYYY-MM-DD
time 3 时间点或持续时间 HH:MM:SS
year 1 年份值 YYYY
char 0~255 定长字符串
varchar 0~65535 变长字符串
text 0~65535 长文本数据


char,varchar,text,date,time,enum 等类型的数据需要用单引号修饰, int,float,double 等则不需要。

varchar跟char的区别:

  varchar(M):VARCHAR(M)定义的列的长度为可变长字符串,M取值可以为0~65535之间,(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。varchar存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

  char(M):CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间,当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。

约束:

NOT NULL:
NOT NULL 约束强制列不接受 NULL 值。

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

下面的 SQL 语句强制 “Id_P” 列和 “LastName” 列不接受 NULL 值:

create table Persons
(
Id_P  int  NOT NULL,
LastName  varchar(255)  NOT NULL,
FirstName  varchar(255),
Address  varchar(255),
City  varchar(255)
)

3、查看表结构

desc 表名;

mysql> desc test;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| pid   | int(10)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| age   | int(10)     | YES  |     | NULL    |       |
| city  | varchar(20) | YES  |     | NULL    |       |
| birth | date        | YES  |     
  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wlh_venus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值