MySQL基本语句
创建表
如果是关键字 那么使用反引号 `` esc下面的键
create table [if not exists] 表名( 字段1 数据类型 [约束,索引,注释], 字段2 数据类型 [约束,索引,注释], 字段3 数据类型 [约束,索引,注释] )[表类型][表字符集][注释]
有符号类型 和 无符号类型
有符号类型 :可以取负值 无符号类型:默认是0! 0--类型的长度
ZEROFILL属性:如果位数不够,前面用零补齐!
若某数值字段指定了ZEROFILL属性, 将自动添加UNSIGNED属性!
创建学生表
CREATE TABLE IF NOT EXISTS student(
studentNo INT(4) NOT NULL PRIMARY KEY COMMENT '学号',
loginPwd VARCHAR(20) NOT NULL COMMENT '密码',
studentName VARCHAR(50) NOT NULL COMMENT '姓名',
sex CHAR(2) NOT NULL DEFAULT'男' COMMENT '性别',
gradeID INT(4) UNSIGNED COMMENT '年级编号',
phone VARCHAR(50) COMMENT '电话',
address VARCHAR(255) DEFAULT'地址不详' COMMENT '地址',
bornDate DATETIME COMMENT '出生日期',
email VARCHAR(50) COMMENT '邮箱账号',
identityCard VARCHAR(18) UNIQUE KEY COMMENT '身份证号'
)COMMENT='学生表';
修改表中的数据
-- 修改表名 把 student表名 改成 stu
ALTER TABLE student RENAME AS stu;
-- 给表中增加 微信 字段 不为空 唯一
ALTER TABLE student ADD wechat VARCHAR(20) UNIQUE KEY;
-- 修改表中 微信 字段的长度为50
ALTER TABLE student MODIFY wechat VARCHAR(50);
-- 删除表中 微信 字段
ALTER TABLE student DROP wechat;
-- 修改studentName字段的名称为 stuName
ALTER TABLE student CHANGE `name` stuName VARCHAR(20);
创建subject(科目表)
CREATE TABLE IF NOT EXISTS `subject`(
subjectNo INT(4) AUTO_INCREMENT PRIMARY KEY COMMENT '课程编号',
subjectName VARCHAR(50) COMMENT '课程名称',
classHour INT(4) COMMENT '学时',
gradeID INT(4) COMMENT '年级编号'
)COMMENT='科目表' CHARSET='utf8';
遇到的问题 在使用AUTO_INCREMENT 必须和PRIMARY KEY 联合使用!
标识列 是 自增列! 主键是 唯一!
创建年级表
CREATE TABLE IF NOT EXISTS grade(
gradeID INT(4) COMMENT '年级编号',
gradeName VARCHAR(10) COMMENT '年级名称'
)COMMENT='年级表';
添加主键的语法
ALTER TABLE 表名 ADD CONSTRAINT 主键名
PRIMARY KEY 表名(主键字段);
-- 给年级表中id设置成主键
ALTER TABLE grade ADD CONSTRAINT pk_grade_gradeID PRIMARY KEY(gradeID);
创建成绩表
CREATE TABLE IF NOT EXISTS result(
studentNo INT(4) NOT NULL PRIMARY KEY COMMENT '学号',
subjectNo INT(4) NOT NULL COMMENT '课程编号',
examDate DATETIME NOT NULL COMMENT '考试日期 ',
studentResult INT(4) NOT NULL COMMENT '考试成绩'
)COMMENT='成绩表' charset='utf8' engine=InnoDB;
外键的语法:
ALTER TABLE 表名 ADD CONSTRAINT 外键名
FOREIGN KEY(外键字段)
REFERENCES 关联表名(关联字段);
创建student表和grade表的关系 学生应该属于某个年级
外键必须建立在 从表上!
ALTER TABLE student ADD CONSTRAINT fk_student_grade
FOREIGN KEY(gradeID)
REFERENCES grade(gradeID);
问题: 前提已经建立了 主外键关系
如果说有三个年级,编号分别是 1 2 3 那么也有三个学生 对应的关系是 第1个学生 1年级 第2个学生 2年级 第3个学生 2年级
01.有没有这种情况 有个学生的年级编号是4 ?? 主表中没有数据! 从表无法创建!
02.可不可以删除年级表2年级或者1年级??? 不能删除!因为从表中还有关联数据!
03.如果我们非得删除年级 怎么办?? 先把从表中的关联数据删除 ,之后再删除主表中的数据!
联合主键 将多列设置成主键!
-- 给成绩表设置联合主键
ALTER TABLE result ADD PRIMARY KEY pk_result (studentno,subjectno,examdate);
mysql数据库中常用的两种 存储 引擎
MyISAM InnoDB 事务处理 不支持 支持 外键约束 不支持 支持 全文索引 支持 不支持
使用的场景:
MyISAM:不能使用事务,空间小,适合查询! InnoDB:多适用于增删改,安全性高!事务的并发处理!
-- 查询当前默认的存储引擎
SHOW VARIABLES LIKE 'storage_engine%';
-- 修改存储引擎 -- 找到安装路径下面的my.ini文件 -- 加入 default-storage-engine=InnoDB
数据库表的存储位置
InnoDB类型的文件 *.frm :表结构定义文件 *.ibd : 数据文件
MyISAM类型的文件 *.frm :表结构定义文件 *.MYD :数据文件 *.MYI :索引文件
- scrapy回调函数传递参数
- python更新数据库脚本两种方法
- 使聊天机器人具有个性
- 遇到502错误,invalid request block size 解决方法
- python中json.loads,dumps,jsonify使用
- sqlalchemy和flask-sqlalchemy几种分页操作
- 一个 tflearn 情感分析小例子
- 前端js,后台python实现RSA非对称加密
- 运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist
- ODL应用开发之MD-SAL中级教程
- Sql参数是一个list的最佳实践
- MyBatis 配置输出日志,不输出SQL问题解决
- lombok让你提高代码整洁度的神器附教程及原理分析
- mvn编译的时候一个破错误,google只有3个结果maven : Failed to install metadata project Could not parse metadata maven-
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 冒泡排序
- 现有CDP-DC集群启用Auto-TLS
- 打卡001/这是一篇软文
- 技术角 | 在CentOS 8上使用Elastic Stack: Elasticsearch/Kibana 7.8部署与认证配置
- 技术角 | 解决ES SQL命令行启动报错 ./x-pack-env: No such file or directory
- Linux常用命令归类总结
- 潜藏在PHP安全的边缘——浅谈PHP反序列化漏洞
- 对比MySQL,学会在Pandas中实现SQL的常用操作
- 【Python基础】科学计算库Scipy简易入门
- 【DL】规范化:你确定了解我吗?
- Python|让代码替你“说话”
- Markdown笔记Ⅰ
- 再见,AOP,怀恋和你在一起的日子!
- Markdown笔记Ⅱ
- 使用 Ink!开发 Substrate ERC20 智能合约