mysql从入门到入土(一)

环境

centos7,mariadb5.5.56

数据库基础操作

查看数据库

默认有四个库

1
2
3
4
5
6
7
8
9
10
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)

创建数据库

aab是数据库的名字

1
2
MariaDB [(none)]> create database aab;
Query OK, 1 row affected (0.00 sec)

切换(使用)数据库

切换至aab数据库

1
2
3
MariaDB [(none)]> use aab;
Database changed
MariaDB [aab]>

删除(丢弃)数据库

drop database [if exists] 数据库名;
if exists 为可选,判断是否存在,如果不存在则会抛出异常

1
2
MariaDB [(none)]> drop database if exists aab;
Query OK, 0 rows affected (0.00 sec)

表基础操作

查看表

因为目前还没有表,所以返回了empty set

1
2
MariaDB [aab]> show tables;
Empty set (0.00 sec)

创建表

create table 表格名(列名1 类型,列名2 类型,列名3 类型);

1
2
MariaDB [aab]> create table bba(Sid int,Sname char(6),Sdate date);
Query OK, 0 rows affected (0.00 sec)

扩展—常用数据类型

整数型:tinyint, smallint, mediumint, int, bigint
小数型:float, double, decimal, real
字符型:char, varchar
日期时间型: date, datetime, time, timestamp, year
备注型:tinytext, text, mediumtext, longtext

扩展—char与varchar的区别

首先明确的是,char的长度是不可变的,而varchar的长度是可变的,定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。

char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。

查看表结构

show columns from 表名;

1
2
3
4
5
6
7
8
9
MariaDB [aab]> show columns from bba;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| Sid | int(11) | YES | | NULL | |
| Sname | char(6) | YES | | NULL | |
| Sdate | date | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)

删除表

drop table [if exists] 表名;
if exists 为可选,判断是否存在,如果不存在则会抛出异常

注意:删除具有主外键关系的表时,要先删子表(从表),后删主表

1
2
MariaDB [aab]> drop table bba;
Query OK, 0 rows affected (0.00 sec)

mysql从入门到入土(一)
https://www.dr0n.top/posts/44d403a0/
作者
dr0n
发布于
2021年10月1日
更新于
2024年2月29日
许可协议