mysql基础
1、创建和删除
- 数据库名、表名不得超过30个字符,变量名限制为29个
- 必须只能包含 A–Z, a–z, 0–9, _共63个字符
- 数据库名、表名、字段名等对象名中间不要包含空格
- 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
- 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来
- 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了
1.1 数据库
以创建about_stu数据库为例
CREATE DATABASE about_stu; # 创建数据库
SHOW DATABASES; # 查看数据库
# DROP DATABASE about_stu; # 删除数据库,一般用不到,慎用
1.2 表
以创建stu_info表为例
USE about_stu; # 确定使用的数据库
CREATE TABLE stu_info(
student_id INT PRIMARY KEY, # 主键是能确定一条记录的唯一标识
`name` VARCHAR(20), # 与保留字冲突,着重号引起来
major VARCHAR (20)
)
# 主键的另一种写法
CREATE TABLE stu_info(
student_id INT ,
`name` VARCHAR(20),
major VARCHAR (20),
PRIMARY KEY(stu_info)
)
constraints 限制 约束:
NOT NULL(非空)
UNIQUE(唯一)
预设值 DEFAULT:如果插入数据时未插入,则填入预设值
AUTO_INCREMENT 实现加一的功能,在student_id后加上后,不用再给其赋值,会在我们插入其其他列数据时自动加一,我们只需要插入其他值
# 举例,根据需要使用
CREATE TABLE stu_info(
student_id INT AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL, # name插入数据时不可为空
major VARCHAR (20) UNIQUE, # major插入数值时不可重复
`class` INT DEFAULT 5, # 不给class传入值,则默认为5
PRIMARY KEY(student_id)
)
DESCRIBE stu_info; # 显示表的具体信息
# DROP TABLE stu_info; # 删除表
2、增删改
-- 增加新的属性(列)
ALTER TABLE stu_info ADD score INT; # 增加一列成绩
-- 删除表格中的属性
ALTER TABLE stu_info DROP score;
以最开始创建的表stu_info为例
2.1 插入修改数据
# 按顺序插入数据
INSERT INTO stu_info VALUES(1,'小白','历史');
INSERT INTO stu_info VALUES(2,'小黑','生物');
INSERT INTO stu_info VALUES(3,'小绿','NULL');
# 按自己定义顺序填入数据
INSERT INTO stu_info(major,student_id,`name`) VALUES('英语',4,'小蓝');
# 查看表中的所有内容
SELECT * FROM stu_info;
# 修改列中的值
# 将历史改成历史文学
UPDATE stu_info SET major='历史文学'
WHERE major='历史';
# 将id为3的主修改为历史文学
UPDATE stu_info SET major='历史文学'
WHERE student_id='3';
# 将主修为生物或者英语改成生物英语
UPDATE stu_info SET major='生物英语'
WHERE major = '生物' OR major = '英语';
# 将id为1的主修改成化学,名字改成小辉
UPDATE stu_info SET major='化学',`name` = '小辉'
WHERE student_id='1';
# 把一列的值全改变就是不加条件
UPDATE stu_info SET major = 科学技术;
# 删除,若不加条件表中内容全删
DELETE from stu_info
WHERE `name` = '小蓝';