mysql 建库 语法_mysql语法建库建表综合整理是示例

首先介绍一个数据库常用编码格式区别:

utf8与utf8mb4(utf8 most bytes 4)

MySQL 5.5.3之后增加了utfmb4字符编码

utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符(如emoji表情😀😁😂)。

mysql数据库编码格式utf8_general_ci、utf8_bin、utf8_general_cs区别:

utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。(bin -> binary二进制的意思)

utf8_general_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感。

简介cmd中使用数据库常用语法

mysql -u 用户名 -p 密码; /*进入数据库*/

show datbases; /*展示所有数据库*/

use 库名; /*选择数据库*/

show tables;/*显示表结构*/

进去正题:

创建一个名为stu数据库(注释使用编码格式utf8_bin):

CREATE DATABASE `stu`; /*!40100 COLLATE 'utf8_bin' */

进去数据库:

USE `stu`;

创建一个t_user表 主键id学号, name姓名,phone手机号,sex性别,brithday生日,create_date插入时间(字段名注明):

CREATE TABLE `t_user` (

`id` INT NOT NULL AUTO_INCREMENT COMMENT '学号',/*后加PRIMARY KEY 列级约束*/

`name` CHAR(5) NOT NULL COMMENT '姓名' ,/*后加UNIQUE,唯一约束可以为空*/

`phone` VARCHAR(11) NULL COMMENT '手机号',

`sex` CHAR(2) NOT NULL DEFAULT '男' COMMENT '性别' CHECK(`sex`='男' or `sex`='女'),

`brithday` DATE null COMMENT '生日' ,

`create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP() COMMENT '插入时间',

PRIMARY KEY (`id`)/*表级约束,PRIMARY KEY (`*`,`*`)复合主键*/

)

COLLATE='utf8_bin';

主键不可为空,AUTO_INCREMENT一般和主键一起使用

SET @@auto_increment_offset=2; /*自增初始值设置 */

SET @@auto_increment_increment=2; /*步长设置*/

改变已有自增主键(包括删除已有数据)

第一步

ALTER TABLE `t_use` DROP COLUMN id; /*删除自增列*/

第二步

1.--新增一个字段

ALTER TABLE `t_use` ADD id BIGINT;

2.--修改一个字段

ALTER TABLE `t_use` CHANGE COLUMN id id BIGINT not null auto_increment primary key;

ALTER COLUMN、MODIFY COLUMN 和 CHANGE COLUMN 语句修改列:

ALTER COLUMN:改变、删除列的默认值(备注:列的默认值存储在 .frm 文件中)。这个语句会直接修改 .frm 文件而不涉及表数据,所以操作很快。

1.--改变默认值

ALTER TABLE `t_use` ALTER COLUMN id DEFAULT 1;

2.--删除默认值

ALTER TABLE `t_use` ALTER COLUMN id DEFAULT;

MODIFY COLUMN:修改列数据类型;改变列的默认值、删除列的默认值(备注:这个操作会做读、插入操作,即:拷贝了整张表到一张新表)。

ALTER TABLE `t_use` MODIFY COLUMN id BIGINT not null keyDEFAULT 1;

CHANGE COLUMN:重命名列;重命名列和修改列的数据类型(备注:单独修改列的数据类型报错)。

ALTER TABLE `t_use` CHANGE COLUMN id new_id BIGINT not null auto_increment primary key;

联合主键也称为双主键、复合主键,应用场景如下

当一个字段无法确定唯一性的时候,需要其他字段来一起形成唯一性。就是说用来组成唯一性的字段如果有多个就是联合主键

如:

学生成绩(学号,课程号,成绩)

--那学号和课程号就可以做为联合主键.

因为学号和课程号决定了成绩.也就是说.你要知道成绩..你就要知道学号,知道学号,但还不能知道某一科的成绩.还要知道课程号.

所以函数依赖关系是{学号,课程号}->{成绩}

注意事项:

数据库表中不能有多个主键,如果已经存在主键,则复合主键会创建失败

复合主键的效率受数据类型影响,尽量使用简单数据类型

在创建复合主键时,数据关系一定要理清楚,否则可能会带来未知的错误

ON UPDATE:更新数据同时更新时间戳

ALTER TABLE `stu` CHANGE COLUMN `date` `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP() FIRST;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的第一个问题是关于 node.js 和 MySQL 插入语句的语法错误提示,是吗? 首先,你需要确保你的 MySQL 语句的语法是正确的。MySQL 插入语句的基本语法如下: ``` INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 其中,`table_name` 是你要插入数据的表的名称,`column1, column2, column3` 是你要插入的列的名称,`value1, value2, value3` 是你要插入的值。 在 node.js 中,你可以使用 `mysql` 模块来连接和操作 MySQL 数据库。下面是一个示例代码,演示如何使用 `mysql` 模块来插入数据到 MySQL 数据库中: ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydatabase' }); connection.connect((err) => { if (err) throw err; console.log('Connected!'); const sql = "INSERT INTO customers (name, address) VALUES ('John Doe', 'Highway 71')"; connection.query(sql, (err, result) => { if (err) throw err; console.log('1 record inserted'); connection.end(); }); }); ``` 在上面的代码中,我们创建了一个 `mysql` 连接对象 `connection`,并在连接成功后,使用 `connection.query()` 方法来执行 MySQL 插入语句。 如果你使用类似上面的代码来执行 MySQL 插入语句,但是仍然遇到语法错误提示,那么你需要检查你的 MySQL 语句是否正确。你可以尝试在 MySQL 命令行中执行你的 MySQL 语句,以确保它没有语法错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值