数据库相关(杂记基础)

本文详细介绍了MySQL数据库的基础操作,包括创建数据库表、数据库三范式、数据库引擎的选择(如InnoDB与MyISAM)、字符集配置以及数据的插入、修改和删除。还涉及到如何指定字段插入数据和通过WHERE子句进行条件修改。

(20-6-4记录:最有距离情感的电话

希望每一个人都可以表达自己出感情,不要憋成在眼眶中不能流下的泪花。)

创建数据库表

mysql -u root -p
show databases;
create database 数据库名
use 数据库名(drop database 删除数据库名)
CREATE TABLE table_name(
col_name1 data_type [Constraints],
col_name2 data_type [Constraints],
……
col_namen data_type [Constraints]
);

添加主键约束:
primary key
语法形式为:
col_name data_type PRIMARY KEY
定义所有字段后设置主键约束 语法形式为:
PRIMARY KEY (col_name)

设置自增约束:
auto_increment
语法形式如下:
id INT(11) PRIMARY KEY AUTO_INCREMENT

设置非空约束:
not null
语法形式如下:
col_name data_type NOT NULL

设置唯一性约束:
unique
语法形式如下:
col_name data_type UNSIGNED;
定义所有字段后设置唯一性约束 语法形式为:
UNIQUE KEY(col_name)

设置无符号约束:
语法形式如下:
col_name data_type UNSIGNED;

设置默认约束:
设置默认约束的关键字为DEFAULT,语法形式如下:
col_name data_type DEFAULT value

设置外键约束
设置外键约束的主要作用是保证数据的完整性。

设置外键约束的语法形式如下:
CONSTRAINT key_name FOREIGN KEY(child_col_name) 
REFERENCES parent_table_name(parent_col_name)
CONSTRAINT,FOREIGN KEY和REFERENCES为设置外键约束的关键字,key_name表示外键名,child_col_name表示从表中需要设置外键约束的字段名,parent_table_name表示主表名,parent_col_name表示主表中主键的字段名。

查看表基本结构
DESCRIBE table_name
desc table_name

查看建表语句
使用SHOW CREATE TABLE语句可以查看表的建表语句,语法形式如下:
SHOW CREATE TABLE table_name 

修改表名
修改数据表名称的关键字为RENAME,语法形式如下:
ALTER TABLE old_table_name RENAME new_table_name;

修改字段数据类型
修改字段数据类型的关键字为MODIFY,语法形式如下:
ALTER TABLE table_name MODIFY col_name new_data_type;

修改字段名
修改数据表字段名称的关键字为CHANGE,语法形式如下:
ALTER TABLE table_name CHANGE old_col_name new_col_name data_type;

添加字段
常见添加字段的操作一般分为三种情况:在表的最后一列,在表的第一列或者在指定列之后。
1)在表的最后一列添加字段
添加字段的关键字为ADD,语法形式如下:
ALTER TABLE table_name ADD col_name data_type;
2)在表的第一列添加字段
ALTER TABLE table_name ADD col_name data_type FIRST;
3)在表的指定列之后添加字段
ALTER TABLE table_name ADD col_name1 data_type AFTER col_name2;

删除字段
删除数据表字段的关键字为DROP,语法形式如下:
ALTER TABLE table_name DROP col_name;

修改字段顺序
修改字段顺序的关键字为MODIFY,语法形式如下:
ALTER TABLE table_name MODIFY col_name data_type FIRST | AFTER col_name2;

修改存储引擎
用户可以在创建表时设置存储引擎,也可以在表创建完成之后修改表的存储引擎,语法形式如下:
ALTER TABLE table_name ENGINE=e_name;
在修改存储引擎之前,往往需要首先查看表当前的存储引擎,语法形式如下:
SHOW CREATE TABLE table_name \G

删除没有被关联的表
使用DROP关键字可以一次性删除一个或多个没有被其他表关联的表,语法形式如下:
DROP TABLE [IF EXISTS] table_name1,table_name2,……,table_namen;

删除被其他表关联的主表
如果数据表之间存在外键关联,那么直接删除主表,系统会提示错误信息,这种情况下,可以先删
除与它关联的从表,再删除主表。但有时需要保留从表中的数据,此时需解除主表和从表之间的关联,
即删除从表中的外键约束。
删除外键的语法形式如下:
ALTER TABLE table_name DROP FOREIGN KEY key_name;

数据库三范式总结

一范式:列不可再分(所有字段值都是不可分解的原子值)
二范式:取消部分依赖(需要确保数据库表中每一列都和主键相关,而不能只与主键的某一部分相关【主要针对联合主键而言】)。
三范式:取消传递依赖(需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。)

数据库引擎

SHOW VARIABLES LIKE ‘default_storage_engine’;
打开my.ini配置文件,在“[mysqld]”组下面添加以下内容,然后保存文件即完成修改。
#设置MySQL服务器的默认存储引擎
default_storage_engine = MyISAM
修改完毕后,需要重启MySQL服务,修改才能生效。可以重启并重新登
录MySQL,并采用前面的方法查询修改结果。

InnoDB:
MyISAM:

字符集

执行SQL语句,查看当前服务器使用的字符集,结果如下所示:

mysql> SHOW VARIABLES LIKE ‘character_set_server’;

±----------------------------±------+
| Variable_name | Value |
±----------------------------±------+
| character_set_server | utf8 |
±----------------------------±------+
1 row in set, 1 warning (0.00 sec)
打开my.ini配置文件,在“[mysqld]”组中添加以下内容,然后保存文件即完成修改。
#设置默认字符集和排序规则

character-set-server=utf8 collation-server=utf8_general_ci

使用关键字DEFAULT CHARSET可以在创建数据库时选择字符集,语法形式如下:

CREATE DATABASE database_name DEFAULT CHARSET set_name;

使用关键字ALTER可以修改数据库的字符集,语法形式如下。

ALTER DATABASE database_name DEFAULT CHARSET utf8;

向表中所有字段插入数据

向表中所有字段插入数据有两种方式,一种是指定所有字段及其相对应的值,另一种是不指定字段只列出字
段值。
1)指定字段及其值
INSERT INTO table_name(col_name1,col_name2,……col_namen)
VALUES(value1,value2,……valuen);
2)不指定字段只列出字段值
INSERT INTO table_name VALUES(value1,value2,……,valuen);

同时插入多条数据
使用INSERT关键字还可以同时向数据表中插入多条数据,语法形式为:
INSERT INTO table_name(col_name1,col_name2,……,col_namen)
VALUES(value1,value2,……,valuen),
……
(value 1,value2,……,valuen);

将其他表中的数据插入到表中
在实际应用中,有时需要将一张表的数据插入到另一张表中,此项操作也可以使用INSERT关键字实现,语法形式为:
INSERT INTO table_name1(table_name1_col_list)
SELECT table_name2_col_list FROM table_name2;

修改数据

修改所有数据
UPDATE table_name
SET col_name1=value1,col_name2=value2……,col_namen=valuen;

修改指定数据
修改数据时,一般会加上WHERE子句用于限定修改范围,语法形式如下:
UPDATE table_name
SET col_name1=value1,col_name2=value2,……,col_namen=valuen
WHERE condition;

删除数据

删除所有数据
DELETE FROM table_name;

删除指定数据
使用DELETE删除数据时加上WHERE子句可以限定删除范围,语法形式如下:
DELETE FROM table_name WHERE condition;

永久删除
truncate table table_namel;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值