MySql数据库的学习(基础篇一)

概述

在日常开发中,最终的操作就是对数据的增删改查(CRUD),这就会用到底层的SQL操作语句,今天就来学习一波。

学习

1、登录/退出

命令 作用
-u 代表user,用户名
-p 代表password,密码
-V 代表version,版本信息
-h 代表host,服务器名称
-P 代表port,端口号

如:mysql -V 查看版本信息

C:\Users\Auser>mysql -V
mysql  Ver 14.14 Distrib 5.6.12, for Win64 (x86_64)

mysql -uroot -p -P3306 -h127.0.0.1 登录

C:\Users\Auser>mysql -uroot -p -P3306 -h127.0.0.1
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.12-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, 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> 

退出 | exit; | quit; | \q;
—|— | — | —-
如 : exit;

mysql> exit;
Bye

2、数据库的操作命令

新建数据库

语法为: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

如: create database db_name character set utf8;

mysql> create database studysql character set utf8;
Query OK, 1 row affected (0.00 sec)
查看数据库属性

新建完成之后,我们去查看下这个数据库的属性信息
如: show create database db_name;

mysql> show create database studysql;
+----------+-------------------------------------------------------------------+

| Database | Create Database                                                   |

+----------+-------------------------------------------------------------------+

| studysql | CREATE DATABASE `studysql` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+-------------------------------------------------------------------+

1 row in set (0.00 sec)

可以看出默认的编码方式为utf8了

查看当前服务器所有数据库的列表

这里我们再学一个查看当前服务器下所有的数据库列表

如:show databases;

mysql> show databases;
+------------------------+
| Database               |
+------------------------+
| information_schema     |
| bookinfo               |
| bookshop               |
| courseselecttionsystem |
| db1                    |
| departmentsystem       |
| filedownandload        |
| goods                  |
| jdbc                   |
| lvhao                  |
| mydb                   |
| myschool               |
| mysql                  |
| mywork                 |
| myxmpp                 |
| performance_schema     |
| school                 |
| sharedown              |
| sqltest                |
| students               |
| studysql               |
| t2                     |
| test                   |
| users                  |
| xmpp                   |
+------------------------+
25 rows in set (0.02 sec)
修改数据库属性

如: alter database db_name character set charset_name;

mysql> alter database studysql character set gbk;
Query OK, 1 row affected (0.00 sec)

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

可以看出,此时数据库的编码方式改为gbk了。我们再将它修改回来。

删除数据库

如: drop database [if exists] db_name;

mysql> drop database studysql;
Query OK, 0 rows affected (0.03 sec)

mysql> drop database studysql;
ERROR 1008 (HY000): Can't drop database 'studysql'; database doesn't exist
mysql> drop database if exists studysql;
Query OK, 0 rows affected, 1 warning (0.00 sec)

数据类型

分为整型、浮点型、日期时间型、字符型

整型
数据类型 存储范围
tinyint 有符号值:-128~127 无符号值:0~255
smallint 有符号值:-32768~32767 无符号值:0~65535
mediumint 有符号值:-8388608~8388607 无符号值:0~16777215
int 有符号值:-2147483648~2147483647 无符号值:0~4294967295
bigint 有符号值:-2^63~2^63-1 无符号值:0~2^64-1
浮点型
数据类型 存储范围
float[(M,D)] M是数字总位数,D是小数点后面的位数,允许精确到小数点后七位
double[(M,D)] M是数字总位数,D是小数点后面的位数
日期时间型
列类型 存储需求
year 1
time 3
date 3
datetime 8
timestamp 4
字符型
列类型 存储需求
char(M) M个字节,0<=M<=255
varchar(M) L+1个字节,其中,L<=M且0<=M<=65535
tinytext L+1个字节,其中L < 2^8
text L+2个字节,其中L < 2^16
mediumtext L+3个字节,其中L < 2^24
longtext L+4个字节,其中L < 2^32
enum(‘value1’,’value2’,…) 1或两个字节,取决于枚举值的个数(最多65535个值)

set(‘value1’,’value2’,…) 1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员)

数据表

数据表才是存储数据的地方

打开某个数据库

如: use db_name;

mysql> use myschool;
Database changed
查看当前打开的数据库

如: select database();

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

然后,我们便在打开的这个数据库开始对数据表进行操作

新建数据表

语法为:

CREATE TABLE [IF NOT EXISTS] table_name (
      column_name(列名称) data_type(类型),
      .....
)

如:

mysql> create table tab1(
    -> username varchar(20),
    -> age tinyint unsigned,
    -> salary float(8,2) unsigned
    -> );
Query OK, 0 rows affected (0.00 sec)
查看数据表结构

如:

mysql> show columns from tab1;
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| username | varchar(20)         | YES  |     | NULL    |       |
| age      | tinyint(3) unsigned | YES  |     | NULL    |       |
| salary   | float(8,2) unsigned | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
查看当前数据库下所有的表列表

如:

mysql> show tables;
+--------------------+
| Tables_in_myschool |
+--------------------+
| students           |
| tab1               |
+--------------------+
2 rows in set (0.00 sec)

表建好了,接下来我们就需要把数据存储起来了。

插入数据

如:

mysql> insert into tab1 values('Lucy',22,32000.50);
Query OK, 1 row affected (0.00 sec)
查看数据记录

如:

mysql> select * from tab1;
+----------+------+----------+
| username | age  | salary   |
+----------+------+----------+
| Lucy     |   22 | 32000.50 |
+----------+------+----------+
1 row in set (0.00 sec)
修改数据

如:

mysql> update tab1 set age = 21 , salary = 40000.00 where username = 'Lucy';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from tab1;
+----------+------+----------+
| username | age  | salary   |
+----------+------+----------+
| Lucy     |   21 | 40000.00 |
+----------+------+----------+
1 row in set (0.00 sec)
删除数据

如:

mysql> delete from tab1 where username = 'Lucy';
Query OK, 1 row affected (0.00 sec)

基础一到此,转到基础二

欢迎大家关注我的公众号

image

猜你喜欢

转载自blog.csdn.net/full_stack_developer/article/details/80862265