MySQL零基础从入门到精通 (1)

这篇博客介绍了如何从零开始学习MySQL,包括安装步骤、数据库与表的基本操作,如创建、删除数据库和表,以及数据的插入和查看。作者详细解释了数据类型、NULL、Key、Default和Extra等概念,并通过实例展示了如何处理这些操作。此外,还讨论了Primary Key和Unique约束的重要性以及如何使用它们。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

author: clever Claire
reference: Udemy - MySQL零基础从入门到精通 1-3课

第一节 安装mySQL

APP -> DBMS -> database,mySQL是联系APP与DBMS的语言。

安装mySQL

cd /usr/local/mysql/bin
./mysql -u root -p
  • 在终端中输入退出数据库的命令行
exit

第二节 database & table

database的操作

  • 打印你的所有databases的名称
show databases;	
  • 创建名为xxx的新database
create database xxx;
  • 删除名为xxx的database
drop database xxx;
  • 选择名为xxx的database作为当前database
use xxx;
  • 查看当前database的名称
select database();

新下载的mySQL会自带4个databases:information_schema,mysql,performance_schema和sys。一般不要改动它们。

table的操作

table是构成database的结构,每列都有不同的意义,每列都可以选一种数据类型。
MySQL可用数据类型可见官网文档或者网友归纳的版本

  • 打印你的所有tables的名称
show tables;	
  • 创建名为xxx的新table(在此之前要先选择一个database)
create table xxx(
    id INT,					//全都以“<column_name> <data_type>,”的格式
    birth_date DATE,
    name VARCHAR(30),	
    gender ENUM("M","F"));
  • 查看名为xxx的table(以下两条结果相同,选一即可)
desc xxx;
show columns from xxx;
  • 删除名为xxx的table
drop table xxx;

补充说明

  • 以下所有命令行都使用’;'作为分界,若要更改可使用命令:
delimiter $$		//把分隔符改成$$
  • 所有的命令都随便用大小写,例如:
SHOW databases;

第三节 table中的数据

插入与查看

  • 往xxx table的特定列中插入数据
insert into xxx(name, phone, age)
values ("Zhang San", "+86 10086", 20),
		("Zhang Si", "+86 10087", 30);
insert into xxx(name, age, phone, birthday) values ("Zhang Wu", 40,  "+86 10088", "1980-1-1");

会得到

namephoneagebirthday
Zhang San+86 1008620null
Zhang Si+86 1008730null
Zhang Wu+86 10088401980-1-1
  • 打印名为xxx的table的全部内容
select * from xxx
  • 打印xxx table中的name和age列
select name, age from xxx

数据的特点(Null, Key, Default, Extra)

当我们“desc xxx”时,Null那栏显示YES 表示允许该列数据为null;Default那栏显示NULL 表示该列数据初始默认为null。故不输入数据时就会出null(参考上面表格)。

  • 规定特定列不能出现null
create table xxx(name VARCHAR(20) NOT NULL, phone VARCHAR(20), age INT);

此时若insert时不输入name,由于default为null与我们规定的NOT NULL冲突,会报错误码“ERROR 1364: Field “name” doesn’t have a default value”。

  • 自定义特定列的default
create table xxx(name VARCHAR(20) DEFAULT "aaa", phone VARCHAR(20), age INT);
  • key为Primary Key的列中不能出现重复数据( 以下两条结果相同,选一即可)
create table xxx(name VARCHAR(20) , phone VARCHAR(20), age INT, PRIMARY KEY (phone));
create table xxx(name VARCHAR(20) , phone VARCHAR(20) PRIMARY KEY, age INT);

此时若insert两个相同的phone值,会报错误码“ERROR 1062: Duplicate entry for key ‘PRIMARY’”。
注意:整个table其实只允许一个Primary Key。若要定义多行primary key,只能用第一行的写法,例如:‘PRIMARY KEY(a, b)’,但此时只能避免两列a和b都相同都insert。
一旦一列设置Primary Key,它会自动Not Null。

  • key为Unique的列中不能出现重复数据
create table xxx(name VARCHAR(20) UNIQUE, id INT PRIMARY KEY);

不同与primary key,一列设置Unique,不会自动Not Null,且允许几行都为null)。

  • auto-increment的extra使每列默认为上一列+1
create table xxx(name VARCHAR(20) , id INT AUTO_INCREMENT PRIMARY KEY);

注意:想要使用auto-increment,这一列必须得有key(primary或unique)。
若id列的第一行就没有输入,就默认为1。

–未完待续–

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值