一、安装mysql
二、连接到 MySQL
如果是使用图形化管理工具,请按图示填写
如果是使用终端,输入以下命令后,输入安装数据库时创建的密码
mysql -u root -p
三、DDL基本操作
关于数据库的sql操作
[]里面的是可选参数
-- 查看所有的数据库
show databases;
-- 创建数据库
create database [if not exists] mydb [charset=utf8];
-- 切换数据库
use mydb;
-- 删除数据库
drop database [if exists] mydb;
--修改数据库编码(默认是utf8)
alter database mydb character set utf8
关于表的sql操作
--创建表
creat table [if not exists] 表名(
字段名1 类型[(宽度)] [约束条件] [conment '字段说明'],
字段名2 类型[(宽度)] [约束条件] [conment '字段说明'],
字段名3 类型[(宽度)] [约束条件] [conment '字段说明']
)[表的一些设置]创建表只是创建一张空表。至少是指定这个表的名字、列名、存储的数据类型。
比较常用的数据类型(主要区别是类型以及存储大小)
注意:存储多少内容就多大。比如对于姓名,你设置的是varchar(20),但是你存入的是'张三',设置20字节,实际使用2字节。
- 数值类型 tinyint / int / double
- 字符串类型 varchar
- 日期类型 date(‘YYYY-MM-DD') / time('HH:MM:SS' ) / year('YYYY') /
datetime('YYYY-MM-DD HH:MM:SS') / timestamp('YYYYMMDD HHMMSS')
--创建最简单的表,首先需要先选择数据库
use mydb;
create table if not exists student(
id int,
name varchar(20),
gender varchar(20),
age int,
birth date,
address varchar(20)
);
解析复杂创建表的语句
CREATE TABLE `student` ( `sid` INT DEFAULT NULL, `name` VARCHAR(20) DEFAULT NULL, `gender` VARCHAR(10) DEFAULT NULL, `age` INT DEFAULT NULL, `birth` DATE DEFAULT NULL, `address` VARCHAR(20) DEFAULT NULL, `score` DOUBLE DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
存储引擎(详细内容查看数据库的引擎选择(InnoDB、MyISAM、Memory)-CSDN博客)
ENGINE=InnoDB
:指定表使用的存储引擎。InnoDB
是一种常用的存储引擎,支持事务、外键约束和行级锁。约束条件 (详细内容后续发文)
DEFAULT NULL
表示如果没有提供值,默认会是NULL
。
DEFAULT CHARSET=utf8mb3
:指定表的默认字符集为utf8mb3
,这是一个支持多种语言字符的 UTF-8 编码。
--查看当前数据库所有的表
show tables;
--查看指定表的创建语句
show create table student;
--查看表结构
desc student;
--删除表
drop table student;
在 MySQL 中,修改表结构可以通过 ALTER TABLE
语句来实现。使用 ALTER TABLE
可以进行以下几种操作:
-
添加列 (
ADD COLUMN
) -
删除列 (
DROP COLUMN
) -
修改列 (
MODIFY COLUMN
) -
重命名列 (
CHANGE COLUMN
) -
重命名表 (
RENAME TO
) -
修改表的其他属性(例如修改表引擎或字符集)
-- 修改表结构
-- 添加列 alter table 表名 add 列名 类型(长度) [约束];
-- 为student表添加一个新的字段为:dept 类型为varchar(20)
alter table student ad dept varchar(20);
-- 修改列名和类型 alter table 表名 change 旧列名 新列名 类型(长度) [约束];
-- 为student类的dept字段更换为department varchar(30)
alter table student change dept department varchar(30);
-- 修改表删除列 alter table 表名 drop 列名;
--删除student类中department这列
alter table student drop department;
-- 修改表名 rename table 表名 to 新表名;
--将student表的名字改为stu
rename table student to stu;
-- 修改表引擎或字符集
ALTER TABLE student ENGINE=InnoDB;
ALTER TABLE student DEFAULT CHARSET=utf8mb4;
注意:CHANGE COLUMN
需要提供原列名和新列名,即使新列名与原列名相同。