首页 > 数据库 >MySQL学习02

MySQL学习02

时间:2022-11-09 09:35:03浏览次数:43  
标签:02 COMMENT -- 学习 DEFAULT student MySQL TABLE ALTER

1、创建数据库表

DROP TABLE IF EXISTS student;
CREATE TABLE student (
   id         INT(4)       NOT NULL     AUTO_INCREMENT   COMMENT '学号',
   NAME       VARCHAR(30)  NOT NULL     DEFAULT '匿名'   COMMENT '姓名',
   pwd        VARCHAR(20)  NOT NULL     DEFAULT '123456' COMMENT '密码',
   sex        VARCHAR(2)   NOT NULL     DEFAULT '女'     COMMENT '性别',
   birthday   DATETIME                  DEFAULT NULL     COMMENT '出生日期',
   address    VARCHAR(100)              DEFAULT NULL     COMMENT '家庭住址',
   email      VARCHAR(50)               DEFAULT NULL     COMMENT '邮箱',
   PRIMARY KEY(id)
) ENGINE=INNODB DEFAULT CHARSET=utf8  ----必须要加utf8,否则为数据库默认编码,不支持中文
SHOW CREATE DATABASE school;  ---查看建表语句
SHOW CREATE TABLE student;   ---查看student表的定义语句
DESC student;   ---显示表结构
数据库引擎:
INNODB   默认使用:安全性高,支持事务处理,多标多用户操作
MyISAM   早些年使用:节约空间,速度快
MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约为2倍

表在物理空间存在的位置

所有数据库文件都存在D:\install\mysql-5.7.19\data目录下,本质还是文件存储

  • InnoDB在数据库表中只有一个*.frm,已经上级目录下的ibdata1文件;
  • MyISAM对应文件*.frm(标结构定义文件)、 .MYD(数据文件data)、 .MYI(索引文件index)

2、修改删除表

-- 修改表名  ALTER TABLE 旧的表名 RENAME AS 新表名
ALTER TABLE student RENAME AS student1;
-- 增加字段 ALTER TABLE 表名 ADD 字段名 列属性;
ALTER TABLE student1 ADD age INT(11);
-- 修改表字段
ALTER TABLE student1 MODIFY age VARCHAR(11)  -- 修改属性
ALTER TABLE student1 CHANGE age age1 INT(1)  -- 字段重命名
-- 删除字段
ALTER TABLE student1 DROP age1;
-- 删除表
ALTER TABLE IF EXISTS student1;

3、外键(不可使用)

4、DML语言

操作符:等于(=), 不等于(<> 或者!=), 范围(between ... and ...)闭合区间,

--  插入语句
insert into 表名([字段名1, 字段名2, 字段名3]) values ('值1', '值2', '值3', ...), (...)
--  修改
update student set name='xxx' where id=#{}
--  删除
delete from student where id=#{}
truncate table 'student'   ---完全清空一个数据表,表的结构和索引约束不变, 自增会归0
delete from 'student'   ---也是删除表数据,但是自增不会归0

delete问题:

  • InnoDB 用delete后重启数据库,自增就会用1开始了
  • MyISAM 用delete后重启数据后自增还是从原来的开始,因为自增是存在文件中的

5、DQL--数据库查询

--  查询
select * from student 

--  别名
select '表字段'  as xxx from student
-- concat 拼接函数
select concat(a, b) as 新名称 from student;

5.1、去重 distinct:

select distinct '字段名' from '表名'

模糊查询:%任意个字符, _代表一个字符

like : a like b

in : a in (a1, a2, a3...)

5.2、连表查询 join

select s.xxx, xxx, xxxx 
from student as s
inner join result as r
on s.id = r.id
where xxx is null
Inner join 如果表中至少有一个匹配就返回行 查交叉行
left join 会返回左边的数据即使没有匹配
right join 会返回右边的数据即使没有匹配

5.3、 自连接:把一张表当做两张表查询

6、分页和排序

排序: order by 排序字段 排序方式(asc, desc)

分页:limit 起始,结束

7、子查询

本质:where查询语句中嵌套一个查询语句

标签:02,COMMENT,--,学习,DEFAULT,student,MySQL,TABLE,ALTER
From: https://www.cnblogs.com/bingo-0427/p/16872500.html

相关文章

  • 祥云杯2022-部分pwn复现
    1.bitheap2.27限制数量0xf、限制大小0x200、无UAFadd:存在一个off-by-oneedit:输入内容时,edit会把2进制转成16进制然后按位取反foriinrange(12): add(i,0xf8)f......
  • 设计模式学习(七):适配器模式
    设计模式学习(七):适配器模式作者:Grey原文地址:博客园:设计模式学习(七):适配器模式CSDN:设计模式学习(七):适配器模式适配器模式适配器模式是一种结构型模式。举例说明,假设有一......
  • DASCTF X GFCTF 2022十月挑战赛 pwn R()P
    R()P⾼版本上GCC编译的程序,没有csu这种好⽤的gadget可以⽤由于是优化过的编译,没有rbp链,⻓度参数通过rsp取得,地址通过rax取得这就给了我们直接控制read的可能,可以直接......
  • mysql 中 <=>操作符
    在mysql中,“<=>”的意思为“安全等于”,是一个比较运算符,和“=”等于运算符类似,不过“<=>”可以用来判断NULL值:当两个操作数均为NULL时,其返回值为1而不为NULL;而当一个操作数......
  • 611002 CAD 选项设置草图设置
    本节课讲解2CAD选项设置草图设置。1.选项设置快捷键【OP】,在英文输入法的状态下,点击【空格】会跳出对话框。2.【文件】中有【自动保存文件位置】和【样板设置】,点击加......
  • Linux包管理学习
    删除rc状态的包:ubuntu下,用apt-getremove某个软件包后,用dpkg-l查看,有些包变成rc状态rc状态的意思是:r:thepackageismarkedforremoval.c:theconfigurationf......
  • Linux学习笔记(8)——正则表达式与文件格式化处理
    正则表达式与文件格式化处理正则表达式与文件格式化处理一、什么是正则表达式?二、基础正则表达式2.1语系对正则表达式的影响2.2grep的一些高级选项2.3基础正则......
  • JavaWeb期中考试-2021年版(二)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="Dao.dao"%><%@pageimp......
  • JavaWeb期中考试-2021年版(四)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="Dao.dao"%><%@pageim......
  • JavaWeb期中考试-2021年版(三)
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="S.s"%><%@pageimport="Dao.dao"%><!DOCTYPE......