MYSQL初级学习笔记二:数据表相关操作及MySQL存储引擎!(视频序号:初级_5,7-22|6)
知识点三:数据表相关操作(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)的更多相关文章
- linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)
本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...
- linux初级学习笔记四:Linux文件管理类命令详解!(视频序号:03_1)
本节学习的命令:cat(tac),more,less,head,tail,cut,sort,uniq,wc,tr 本节学习的技能:目录管理 文件管理 日期时间 查看文本 分屏显示 文本处理 文件管理命 ...
- MySQL第五个学习笔记 该数据表的操作
MySQL在创建表,创建.frm文件保存表和列定义.索引存储在一个.MYI(MYindex)且数据存储在有.MYD(MYData)扩展名的文件里. 一.用SHOW/ DESCRIBE语句显示数据表 ...
- jquery学习笔记(二):DOM元素操作
内容来自[汇智网]jquery学习课程 2.1 元素属性操作 1.获取元素的属性 语法:attr(name) 参数name表示属性的名称 2.设置元素的属性 单个属性设置语法:attr(key,val ...
- linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)
本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...
- MYSQL进阶学习笔记二:MySQL存储过程和局部变量!(视频序号:进阶_4-6)
知识点三:MySQL存储过程和局部变量(4,5,6) 存储过程的创建: 创建存储过程的步骤: 首先选中数据库 改变分隔符,不让分号作为执行结束的标记.(通常情况下,改变分隔符命令 DELIMI ...
- Spring.Net学习笔记(二)-数据访问器
Spring对ADO.NET也提供了支持,依赖与程序集Spring.Data.dll IDbProvider IDbProvider定义了数据访问提供器的基础,配置如下 <?xml versio ...
- Go语言学习笔记(八)golang 操作 Redis & Mysql & RabbitMQ
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 Reids 安装导入 go get github.com/garyburd/redigo/redis import ...
- jQuery学习笔记(二)jQuery中DOM操作
目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...
随机推荐
- 使用Reachability检测网格
#pragma mark - 网络连接检查 - (void) currentReach { // 网络检测 Reachability *curReach = [Reachability reacha ...
- android中bitmap图片与二进制,String间的转化
1, public Bitmap stringtoBitmap(String string) { // 将字符串转换成Bitmap类型 ...
- 小程序-列表块/类式ul-li格式(1)
摘要 目前列表能布局出来,但是目前我个人还没解决的问题是:如果每个列表块都有详情页怎么解决呢? 1:我的效果图 2.正常的每个都能点击的html 注:上面的代码确实能够实现我的每个[menu2_vie ...
- Linux下文件操作命令cat(转)
语法格式: cat [-AbeEnstTuv] [--help] [--version] fileName 参数说明: -n 或 --number:由 1 开始对所有输出的行数编号. -b 或 --n ...
- scanf,fscanf,sscanf的区别----整理
转自原文 scanf,fscanf,sscanf的区别----整理 scanf 从控制台输入 fscanf 从文件输入 sscanf 从指定字符串输入 1.例:使用scanf函数输入数据. #incl ...
- android 打开浏览器指定网页
<?xml version="1.0" encoding="utf-8"?> <!-- 定义当前布局的基本LinearLayout --> ...
- BUPT复试专题—进程管理(2014网研)
题目描述 在操作系统中,进程管理是非常重要的工作.每个进程都有唯一的进程标识PID.每个进程都可以启动子进程,此时我们称该它本身是其子进程的父进程.除PID为0的进程之外,每个进程冇且只冇一个父进程. ...
- mysql 安装与启动
1.下载mysql installer 2.安装 一直点next,直到finish. 3.安装时的配置 安装完后,选择立即开始配置. 选择standard configuration 勾选安装mysq ...
- HTML页面底部无用留白
HTML页面底部无用留白,可以再footer样式中加入: overflow: hidden; 如有错误,请您指正~
- FlashBuilder找不到所需要的AdobeFlashPlayer调试器版本的解决方案
这个问题就是因为你所装的FlashPlayer不是调试器版本.如果你的FlashPlayer是调试版,那么你随便打开一个有Flash的页面,然后右键点击Flash,就会有一个调试器,菜单,当然它现在是 ...