知识点三:数据表相关操作(5,7-22)

 --------------------------------整型---------------------------------
--测试整型
CREATE TABLE test1(
num1 TINYINT,
num2 SMALLINT,
num3 MEDIUMINT,
num4 INT,
num5 BIGINT
); --向表中插入记录 INSERT tbl_name VALUE|VALUES(值,...);
INSERT test1 VALUES(-128,-32768,-8388608,-2147483648,-9223372036854775808); --查询表中所有记录:SELECT * FROM tbl_name;
SELECT * FROM test1; --无符号的整数值:UNSIGNED CREATE TABLE test2(
num1 TINYINT UNSIGNED,
num2 TINYINT
); --插入值
INSERT test2 VALUES(0,-12); --显示长度
--零填充 ZEROFILL CREATE TABLE test3(
num1 TINYINT ZEROFILL,
num2 SMALLINT ZEROFILL,
num3 MEDIUMINT ZEROFILL,
num4 INT ZEROFILL,
num5 BIGINT ZEROFILL
); INSERT test3 VALUES(1,1,1,1,1); --------------------------------浮点类型--------------------------------- CREATE TABLE test4(
num1 FLOAT(6,2),
num2 DOUBLE(6,2),
num3 DECIMAL(6,2) --精度高
); INSERT test4 VALUES(3.1415,3.1415,3.1416); INSERT test4 VALUES(3.1495,3.1495,3.1496); --------------------------------字符串类型--------------------------------- --测试CHAR和VARCHAR
CREATE TABLE test5(
str1 CHAR(5),
str2 VARCHAR(5)
);
INSERT test5 VALUES('','');
INSERT test5 VALUES('','');
INSERT test5 VALUES('','');
INSERT test5 VALUES('','');
INSERT test5 VALUES('1 ','1 ');
INSERT test5 VALUES('','');
INSERT test5 VALUES(' a',' a');
INSERT test5 VALUES('啊','啊');
INSERT test5 VALUES('啊啊啊啊啊','麦子学院好');
--查看数据表,并在每行后面加’-‘
SELECT CONCAT(str1,'_'),CONCAT(str2,'_') FROM test5;
SELECT CONCAT('_',str1),CONCAT('_',str2) FROM test5; CREATE TABLE test6(
str1 TEXT
);
INSERT test6 VALUES('JSDHAJSDAJSHDJKASDJ手机卡觉得凯撒多久啊是多久啊是的可视角度看啦'); --------------------------------枚举类型--------------------------------- --测试枚举类型
CREATE TABLE test7(
sex ENUM('男','女','保密')
); INSERT test7 VALUES('男');
INSERT test7 VALUES('女');
INSERT test7 VALUES('保密'); INSERT test7 VALUES(2); --------------------------------集合类型--------------------------------- --测试集合类型
CREATE TABLE test8(
FAV SET('A','B','C','D')
); INSERT test8 VALUES('A,C,D');
INSERT test8 VALUES('B,B,A');
INSERT test8 VALUES(3);
INSERT test8 VALUES(315); --------------------------------日期时间类型--------------------------------- --测试YEAR类型
CREATE TABLE test9(
birth YEAR
);
INSERT test9 VALUES(1901);
INSERT test9 VALUES(2155); --测试TIME类型
CREATE TABLE test10(
test TIME
); INSERT test10 VALUES('1 12:12:12');
INSERT test10 VALUES('12:12');
INSERT test10 VALUES(''); --测试DATE类型
CREATE TABLE test11(
test DATE
); INSERT test11 VALUES('12-6-7');
INSERT test11 VALUES('12/6/7');
INSERT test11 VALUES('');

测试字段类型

如何创建数据表:

  创建数据表:CREATE TAB  LE [IF NOT EXISTS] btl_name(字段名称 字段类型[完整性约束体条件]…) ENGINT=引擎名称 CHARSET=’编码方式’

 --创建学院表(user)
--编号 id
--用户名 username
--年龄 age
--性别 sex
--邮箱 email
--地址 addr
--生日 birth
--薪水 salary
--电话 tel
--是否结婚 married
--注意:当需要输入中文的时候,需要临时转换客户端的编码方式
--SET NAMES GBK;
--字段注释,通过COMMENT 注释内容,给字段添加注释
CREATE TABLE IF NOT EXISTS `user`(
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM('男','女','保密'),
email VARCHAR(50),
addr VARCHAR(200),
birth YEAR,
salary FLOAT(8.2),
tel INT,
--married TINYINT(1) COMMENT '0代表未结婚,非0代表结婚'
)ENGINE=INNODB CHARSET=UTF8; --创建课程表 course
--编号 cid
--课程名称 courseNmame
--课程描述 courseDesc
CREATE TABLE IF NOT EXISTS course(
cid TINYINT,
courseName VARCHAR(50),
courseDesc VARCHAR(200)
); --创建新闻分类表cms_cate
--编号,分类名称,分类描述
CREATE TABLE IF NOT EXISTS cms_cate(
id TINYINT,
cateName VARCHAR(50),
cateDase VARCHAR(200)
)ENGINE=MyISAM CHARSET=UTF8; --创建新闻表cms_news
--编号,新闻标题,新闻内容,新闻发布时间,点击量,是否置顶,//新闻所属分类,发布人
CREATE TABLE IF NOT EXISTS cms_news(
id INT,
title VARCHAR(50),
content TEXT,
pubTime INT,
clickNum INT,
isTop TINYINT(1) COMMENT '0代表不置顶,1代表置顶'
);

练习

完整性约束条件:

   PRIMARY KEY 主键

 --测试主键(单字段)
CREATE TABLE IF NOT EXISTS user1(
id INT PRIMARY KEY,
username VARCHAR(20)
);
INSERT user1 VALUES(1,'king');
INSERT user1 VALUES(13,'QUEEN'); --测试主键(多字段)(复合主键)
CREATE TABLE IF NOT EXISTS user2(
id INT,
username VARCHAR(20),
card CHAR(18),
PRIMARY KEY(id,card)
);
INSERT user2 VALUES(1,'king','');
INSERT user2 VALUES(1,'queen',''); --查看创建表的定义(详细信息)
SHOW CREATE TABLE dbl_name;

测试主键

AUTO_INCREMENT 自增长

 --测试自增长(配合主键使用,是主键不一定自增长,是自增长一定是主键)
CREATE TABLE IF NOT EXISTS user5(
id SMALLINT KEY AUTO_INCREMENT,
username VARCHAR(20)
);
INSERT user5 VALUES(1,'king');
INSERT user5(username) VALUES('queen');
INSERT user5 VALUES(111,'king1');
INSERT user5(username) VALUES('queen1');
INSERT user5 VALUES(NULL,'AAA');
INSERT user5 VALUES(DEFAULT,'AAA'); --建表时定义自增长起始值
CREATE TABLE IF NOT EXISTS user6(
id SMALLINT KEY AUTO_INCREMENT,
username VARCHAR(20)
)AUTO_INCREMENT=100; INSERT user6(username) VALUES('queen1'); --修改自增长的值
ALTER TABLE user6 AUTO_INCREMENT=500;
INSERT user6(username) VALUES('queen2');

测试自增长

FOREIGN KEY 外键(后面单独讲)

NOT NULL 非空

 --测试非空(NOT NULL)
CREATE TABLE IF NOT EXISTS user7(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
passwd CHAR(32) NOT NULL,
age TINYINT UNSIGNED
);
INSERT user7(username,passwd) VALUES('KING','KING');
INSERT user7(username,passwd,age) VALUES('KING1','KING1',12);

测试非空

UNSIGNED 无符号

UNIQUE KEY 唯一

 --测试唯一性约束(UNIQUE KEY)
CREATE TABLE IF NOT EXISTS user9(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
card CHAR(18) UNIQUE
);
INSERT user9(username) VALUES('A');
INSERT user9(username,card) VALUES('B','');
INSERT user9(username,card) VALUES('B1',NULL);
INSERT user9(username,card) VALUES('B2',NULL);

测试唯一性约束

DEFAULT 默认值

 --测试默认值(DEFAULT)
CREATE TABLE IF NOT EXISTS user8(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
passwd CHAR(32) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18,
addr VARCHAR(50) NOT NULL DEFAULT '北京',
sex ENUM('男','女','保密') NOT NULL DEFAULT '男'
);
INSERT user8(username,passwd) VALUES('KING','KING');
INSERT user8 VALUES(2,'QUEEN','QUEEN',22,'上海','保密');
INSERT user8 VALUES(DEFAULT,'QUEEN','QUEEN',DEFAULT,DEFAULT,'保密');

测试默认值

注意:当需要输入中文的时候,需要临时转换客户端的编码方式:SET NAMES GBK;查看是否成功:“\s”;

总结:

--------------------------------总结---------------------------------
--创建表的语法规则
--CREATE TABLE [IF NOT EXISTS] tbl_name(
--字段名称 字段类型 [UNSIGNED|ZEROFILL] [NOT NULL] [DEFAULT 默认值] [[PRIMARY] KEY|UNIQUE[KEY]] [AUTO_INCREMENT]
--)ENGINE=INNODB(选择存储引擎名称) CHARSET=utf8(选择编码方式) AUTO_INCREMENT=100(指定自增长值,表中有字段时自增长的);

查看数据库中的数据表以及表结构:

  查看数据库下的数据表:SHOW TABLES;

  查看指定表的表结构:

    DESC tbl_name;

DESCRIBE tbl_name;

SHOW COLUMNS FROM tbl_name;

  向表中插入记录:INSERT tbl_name VALUE|VALUES(值,…);

  查询表中所有的记录:SELECT * FROM tbl_name;

  创建无符号的:UNSIGNED

  在表中显示长度(显示长度,不够用零填充):ZEROFILL

  查看创建表的标的定义(详细信息):SHOW CREATE TABLE tbl_name;

修改表结构:

 --创建用户表
CREATE TABLE IF NOT EXISTS user10(
id SMALLINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(50) NOT NULL DEFAULT '382771946@qq.com',
age TINYINT UNSIGNED DEFAULT 18,
sex ENUM('男','女','保密') DEFAULT '保密',
addr VARCHAR(200) NOT NULL DEFAULT '北京',
salary FLOAT(6.2),
regTime INT UNSIGNED,
face CHAR(100) NOT NULL DEFAULT 'default.jpg'
);

默认数据

修改表名 :

(1):ATLER TABLE tbl_name RENAME [TO|AS] new_name;

(2):RENAME TABLE tbl_name TO new_name;

 --修改表名测试
--方法一
ALTER TABLE user10 RENAME TO user11;--将user10表名修改为user11
ALTER TABLE user11 RENAME AS user10;--将user11表名修改为user10
ALTER TABLE user10 RENAME user11;--将user10表名修改为user11
--方法二
RENAME TABLE user11 TO user10;--将user11表名修改为user10

测试修改表名

添加字段:

ALTER TABLE tbl_name  ADD 字段名称 字段类型 [完整性约束条件] [FIRST |AFTER 字段名称]

 --给user10 添加card字段:CHAR(18)
ALTER TABLE user10 ADD card CHAR(18); --默认添加在末列
--给user10表添加test1字段,非空且唯一
ALTER TABLE user10 ADD test1 VARCHAR(100) NOT NULL UNIQUE; --添加在末列
--给user10表添加test2字段,非空
ALTER TABLE user10 ADD test2 VARCHAR(20) NOT NULL FIRST; --添加在首列
--给user10表添加test1字段,非空,默认值为10
ALTER TABLE user10 ADD test3 INT NOT NULL DEFAULT 100 AFTER username; --添加在usename字段之后 --选中一次表,完成多次操作
ALTER TABLE user10
ADD test4 INT NOT NULL DEFAULT 123 AFTER password,
ADD test5 FLOAT(6,2) FIRST,
ADD test6 SET('A','B','C');

测试添加字段

删除字段:

ALTER TABLE tbl_name DROP 字段名称;

 --删除user10中的test6字段
ALTER TABLE user10 DROP test6; --删除test6字段
ALTER TABLE user10 DROP test1; --删除test1字段 --选中一次表,完成多个字段
ALTER TABLE user10
DROP test2,--删除test2字段
DROP test3,--删除test3字段
DROP test4,--删除test4字段
DROP test5;--删除test5字段 --添加test字段删除addr字段
ALTER TABLE user10
ADD test INT UNSIGNED NOT NULL DEFAULT 10 AFTER sex,
DROP addr;

测试删除字段

修改字段属性(还可以修改字段位置):

ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称];

 --MODIFY测试
--将user10 中email 改为VARCHAR(200)
ALTER TABLE user10 MODIFY email VARCHAR(200);
ALTER TABLE user10 MODIFY email VARCHAR(50) NOT NULL DEFAULT '1785143516@qq.com'; --将card字段移动到test字段后
ALTER TABLE user10 MODIFY card CHAR(10) AFTER test; --将test字段修改为varchar(32) NOT NULL DEFAULT '123' 移动到第一个位置上; ALTER TABLE user10 MODIFY test CHAR(32) NOT NULL DEFAULT '' FIRST;

MODIFY测试

修改字段名称和属性(还可以修改字段位置):

ALER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称];

 --CHANGE测试
ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT NULL DEFAULT ''; ALTER TABLE user10 CHANGE test1 test CHAR(200) NOT NULL DEFAULT '' AFTER username; ALTER TABLE user10 CHANGE test test INT;

CHANGE测试

添加默认值:

ALTER TABLE tbl_name ALTER 字段名 SET DEFAULT 默认值;

 --添加默认值测试
CREATE TABLE IF NOT EXISTS user11(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
age TINYINT UNSIGNED
); ALTER TABLE user11 ALTER age SET DEFAULT 18;
ALTER TABLE user11 ADD email VARCHAR(50);
ALTER TABLE user11 ALTER email SET DEFAULT '382771946@qq.com';

添加默认值测试

删除默认值:

ALTER TABLE tbl_name ALTER 字段名 DROP DEFAULT;

 --删除默认值测试
ALTER TABLE user11 ALTER age DROP DEFAULT;
ALTER TABLE user11 ALTER email DROP DEFAULT;

删除默认值测试

添加主键:

ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] PRIMARY KEY[index_type](字段名称,…)

 --添加主键测试
CREATE TABLE IF NOT EXISTS test12(
id INT
);
ALTER TABLE test12 ADD PRIMARY KEY(id); --添加多字段主键(复合主键)
CREATE TABLE IF NOT EXISTS test13(
id INT,
card CHAR(18),
username VARCHAR(20) NOT NULL
);
ALTER TABLE test13 ADD PRIMARY KEY(id,card);

添加主键测试

删除主键:

ALTER TABLE tbl_name DROP PRIMARY KEY;

 --删除主键测试
ALTER TABLE test12 DROP PRIMARY KEY;
ALTER TABLE test13 DROP PRIMARY KEY;
ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id); --易错点
CREATE TABLE IF NOT EXISTS test14(
id INT UNSIGNED KEY AUTO_INCREMENT
);
ALTER TABLE test14 DROP PRIMARY KEY;--(报错)
--正确做法,先去掉自增长然后去主键
ALTER TABLE test14 MODIFY id int UNSIGNED;
ALTER TABLE test14 DROP PRIMARY KEY;

删除主键测试

添加唯一:

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY][索引名称][字段名称,…]

 --添加唯一索引测试
CREATE TABLE IF NOT EXISTS user12(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
card CHAR(18) NOT NULL,
test VARCHAR(20) NOT NULL,
test1 VARCHAR(32) NOT NULL
); ALTER TABLE user12 ADD UNIQUE(username);
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE KEY uni_card (card);
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE KEY mul_test_test1 (test,test1);

添加唯一测试

删除唯一:

ALTER TABLE tbl_name DROP {INDEX|KEY} index_name

 --删除唯一索引
ALTER TABLE user12 DROP INDEX username;
ALTER TABLE user12 DROP INDEX KEY uni_card;
ALTER TABLE user12 DROP KEY mul_test_test1;

删除唯一索引测试

修改表的存储引擎:

ALTER TABLE tbl_name ENGINE=存储引擎

 --修改表的存储引擎为MyISAM:
ALTER TABLE user12 ENGINE=MyISAM;
ALTER TABLE user12 ENGINE=INNODB;--再修改为默认引擎

修改表的存储引擎测试

设置自增长的值:

ALTER TABLE tbl_name AUTO_INCREMENT=值;

 --修改自增长值
ALTER TABLE user12 AUTO_INCREMENT=102;

修改自增长值测试

知识点四:MySQL存储引擎(6)

查看MYSQL的存储引擎:

  查看MySQL支持的存储引擎:SHOW ENGINES;(表格)| SHOW ENGINES\G;(网状)

  查看显示支持的存储引擎信息:SHOW VARIABLES LIKE “have%”;

   查看默认的存储引擎:SHOW VARIABLES LIKE “%storage_engine%”;

MYSQL常用存储引擎及特点:

  InnoDB存储引擎

   MyISAM存储引擎

    MEMORY存储引擎

MYSQL初级学习笔记二:数据表相关操作及MySQL存储引擎!(视频序号:初级_5,7-22|6)的更多相关文章

  1. linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)

    本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...

  2. linux初级学习笔记四:Linux文件管理类命令详解!(视频序号:03_1)

    本节学习的命令:cat(tac),more,less,head,tail,cut,sort,uniq,wc,tr 本节学习的技能:目录管理 文件管理 日期时间 查看文本 分屏显示 文本处理 文件管理命 ...

  3. MySQL第五个学习笔记 该数据表的操作

    MySQL在创建表,创建.frm文件保存表和列定义.索引存储在一个.MYI(MYindex)且数据存储在有.MYD(MYData)扩展名的文件里.   一.用SHOW/ DESCRIBE语句显示数据表 ...

  4. jquery学习笔记(二):DOM元素操作

    内容来自[汇智网]jquery学习课程 2.1 元素属性操作 1.获取元素的属性 语法:attr(name) 参数name表示属性的名称 2.设置元素的属性 单个属性设置语法:attr(key,val ...

  5. linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)

    本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...

  6. MYSQL进阶学习笔记二:MySQL存储过程和局部变量!(视频序号:进阶_4-6)

    知识点三:MySQL存储过程和局部变量(4,5,6) 存储过程的创建:     创建存储过程的步骤: 首先选中数据库 改变分隔符,不让分号作为执行结束的标记.(通常情况下,改变分隔符命令 DELIMI ...

  7. Spring.Net学习笔记(二)-数据访问器

    Spring对ADO.NET也提供了支持,依赖与程序集Spring.Data.dll IDbProvider IDbProvider定义了数据访问提供器的基础,配置如下 <?xml versio ...

  8. Go语言学习笔记(八)golang 操作 Redis & Mysql & RabbitMQ

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 Reids 安装导入 go get github.com/garyburd/redigo/redis import ...

  9. jQuery学习笔记(二)jQuery中DOM操作

    目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...

随机推荐

  1. ElasticSearch中Date

    ElasticSearch中有时会想要通过索引日期来筛选查询的数据,此时就需要用到日期数学表达式. 比如现在的时间是2024年3月22日中午12点.utc 注意,如果是中国的时间需要加上8个小时! 表 ...

  2. 【BZOJ3991】寻宝游戏(虚树,DFS序,splay)

    题意:求在树中从任意点开始,经过若干个关键点回到原点的最小距离 要求支持在线将某个点设置(取消)为关键点,以及询问答案 n,m<=100000 len[i]<=10^9 思路:显然是一个虚 ...

  3. Redis命令行之List

    一.Redis之List简介 1. List是简单的字符串列表,按照插入顺序排列. 2. 一个列表最多可存储232-1个元素(40多亿). 二.Redis之List命令行操作 Lrange:获取列表指 ...

  4. 使用注解开发springmvc

    1.导入jar包 commons-logging-1.2.jar spring-aop-4.3.6.RELEASE.jar spring-beans-4.3.6.RELEASE.jar spring- ...

  5. koa2 从入门到进阶之路 (一)

    首先我们先来了解一下 Koa 是什么,https://koa.bootcss.com/,这是 Koa 的官方网站,映入眼帘的第一句就是 Koa -- 基于 Node.js 平台的下一代 web 开发框 ...

  6. [vxlan] 二 什么是VXLAN

    VXLAN是一种mac in UDP的技术.简单讲就是传统的二层帧被封装到了UDP的package中.通过UDP的IP网络发送到目的地然后再解封装. VXLAN 跟VLAN对比,最重要的一个概念就是V ...

  7. UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD

    UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD FIREDAC,UNIDAC这些通用的数据引擎,对某种数据库的支持,细节方面总有BUG. UNIDAC6.2.8发现不能识别C ...

  8. Credit Memo和Debit Memo在AR以及AP中的概念比较

    AR和AP中都有Credit Memo和Debit Memo的概念, 但是其含义和用法完全不一样,比较难懂,现在整理如下:AR中的CreditMemo和DebitMemo是和客户打交道:AR中的Cre ...

  9. IT部门的KPI该如何制定?

    导语:信息化成本.系统开机率.网路不断线时数.系统运行速度.软件开发时间.用户问题处理反应时间.系统品质.用户满意度--哪些指标是可被管理的,能指引IT部门成为一个有价值的.为企业带来效益的部门呢? ...

  10. 【Android开发—智能家居系列】(三):手机连接WIFI模块

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 概述 实现连接WIFI的功能会用到一个工具类,源码可以点击链接下载.网上这些类似的工具类里的代码差不多是一样的.连接无线网主要有 ...