mysql数据库的crud_mysql 数据库CRUD

一、数据库操作

①、创建CREATE DATABASE t1;

CREATE DATABASE IF NOT EXISTS t1;

CREATE DATABASE t2 CHARACTER SET gbk;

②、更新ALTER DATABASE t2 CHARACTER SET utf8;

③、查看SHOW CREATE DATABASE t2;

SHOW DATABASES;

④、删除DROP DATABASE t1;

二、数据类型

①、定义

数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。

②、整形

③、数据类型之浮点型

29132484b143794f6b76088ed82f56d8.gif

④、数据类型之日期时间型

29132484b143794f6b76088ed82f56d8.gif

⑤、数据类型之字符型

29132484b143794f6b76088ed82f56d8.gif

⑥、mysql 中 char、varchar、text 的区别

A、char的总结:char 最大长度是 255 字符,注意是字符数和字符集没关系。可以有默认值,尾部有空格会被截断。

B、varchar的总结:varchar 的最大长度 65535 是指能存储的字节数,其实最多只能存储 65532 个字节,还有 3 个字节用于存储长度。

注意是字节数这个和字符集有关系。一个汉字字符用 utf8 占用 3 字节,用 gbk 占用 2 字节。可以有默认值,尾部有空格不会截断。

C、text的总结:text 和 varchar 基本相同。text 会忽略指定的大小这和 varchar 有所不同,text 不能有默认值。尾部有空格不会被截断。

text 使用额外的 2 个字节来存储数据的大小,varchar 根据存储数据的大小选择用几个字节来存储。

text 的 65535 字节全部用来存储数据,varchar 则会占用 1-3 个字节去存储数据大小。

三、创建数据库

①、创建USE test;

SELECT DATABASE();

SHOW TABLES;

SHOW TABLES FROM mysq1;CREATE TABLE tb1(

id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(20) NOT NULL UNIQUE KEY DEFAULT '',

age TINYINT UNSIGNED,

salary FLOAT(8,2) UNSIGNED NULL

)ENGINE=InnoDB;SHOW COLUMNS FROM tb1; //查看数据表结构

②、约束

唯一约束:UNIQUE KEY,唯一约束可以保证记录的唯一性、唯一约束的字段可以为空值(NULL)、每张数据表可以存在多个唯一约束

默认约束:DEFAULT

主键约束:PRIMARY KEY

非空约束:NOT NULL

外键约束:FOREIGN KEY,1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表。2.数据表的存储引擎只能为InnoDB。3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。CREATE TABLE provinces(

id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

pname VARCHAR(20) NOT NULL

);

CREATE ABLE users(

id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

username VARCHAR(10)NOT NULL,

FOREIGN KEY(pid)REFERENCES provinces (id) ON DELETE CASCADE

);

SHOW INDEXES FROM provinces \G;1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行

2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL

3.RESTRICT:拒绝对父表的删除或更新操作。

4.NOACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

③、utf8_general_ci/cs、utf8_unicode_ci、utf8_binutf8_general_cs:区分大小写(cs:case sensitiveci 大小写敏感)

utf8_general_ci:不区分大小写,校对快、准确度差(ci:case insenstive 大小写不敏感)

utf8_unicode_ci:不区分大小写,校对慢、准确度高

utf8_bin:区分大小写,可存储二进制内容

四、表级约束与列级约束

①、定义对一个数据列建立的约束,称为列级约束.对多个数据列建立的约束,称为表级约束

列级约束既可以在列定义时声明,也可以在列定义后声明

表级约束只能在列定义后声明

②、进一步解释NOT NULL、DEFAULT只有列级约束

PRIMARY KEY 、UNIQUE KEY、UNIQUE KEY有表级和列级约束

CHECK检测约束不起作用,mysql手册里写的很清楚:“所有的存储引擎均对CHECK子句进行分析,但是忽略CHECK子句。”

五、修改数据表

①、添加/删除列ALTER TABLE users1 ADD aQe TINYINT UNSIGNED NOT NULL DEFAULT 10 AFTER username:ALTER TABLE users1 DROP age;

ALTER TABLE users1 DROP hobby,DROP password;

删除一列的同时在新增一列也是可以的!只需要用都逗号间隔

②、添加约束ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id); //添加主键约束

ALTER TABLE users2 ADD UNIQUE KEY (username); //添加唯一约束

ALTER TABLE users2 ADD FOREIGN KEY (pid) REFERENCES provinces (id); //添加外键约束

ALTER TABLE users2 ALTER age SET DEFAULT 15; //添加默认约束

③、删除约束ALTER TABLE users2 DROP PRIMARY KEY; //删除主键约束

ALTER TABLE users2 DROP INDEX username; //删除唯一约束

ALTER TABLE users2 DROP FOREIGN KEY users2_ibfk_1; //删除外键约束

ALTER TABLE users2 ALTER age DROP DEFAULT; //删除默认约束

④、修改列定义和更名数据表ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST; //修改列的定义

ALTER TABLE users2 RENAME users3; //修改列名称

RENAME TABLE users3 TO users2; //数据表更名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值