Mysql数据库 | 第二章 | 创建表 | 数据类型 | 字符串 | 日期类型 | 修改表
P 11 创建表 2022/6/29
1.创建表
2.SQL语句执行
# 指令创建表
# 注意:zjc_02创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类
# id 整形
# name 字符串
# password 字符串
# birthday 日期
CREATE TABLE `user` (
id INT,
`name` VARCHAR(255),
`password` VARCHAR (255),
`birthday` DATE)
CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
P 12 列类型有哪些 2022/6/29
1.数据类型(列类型)
- 列类型即数据类型
- 有无符号代表正负,有符号的分正负,无符号的只有正的(java)
P 13 列类型之整型 2022/6/30
1.数值型(整数)的基本使用
- 说明使用规范:在能够满足需求而的情况下,尽量选择占用空间小的类型
- 应用实例:
# 演示整型的是一个
# 使用tinyint 有符号的:-128~127 无符号的: 0-255
CREATE DATABASE `db_01` CHARACTER SET utf8 COLLATE utf8_bin # 创建数据库,设置字符集和校验规则
# 表的字符集,校验规则,引擎使用数据库默认的
# 如果没有指定unsigned,则tinyint就是有符号的
CREATE TABLE t3 (
id TINYINT ); # 未指定则是有符号的,范围-128~127
CREATE TABLE t4 (
id TINYINT UNSIGNED ); # 添加unsigned就是无符号的,范围0-255
INSERT INTO t3 VALUES(-128); # 这是简单的添加语句
SELECT * FROM t3
INSERT INTO t4 VALUES(255);
SELECT * FROM t4
P 14 列类型之bit 2022/7/1
1.数值型bit的显示
# 演示bit类型使用
# 1.bit(m) 在1-64,一个字节(byte)为8个比特/位,一个英文字母通常占用一个字节,一个汉字通常占用两个字节。
# 2.添加数据,范围,按照你给的位数来确定 ,比如m=8,表示一个字节,0~255(1,2,4,8,16,32,64,128)
# 3.显示按照bit,
# 4.查询时,任然可以按照数来查询
CREATE TABLE t5 (num BIT (8));
INSERT INTO t5 VALUES(1);
SELECT * FROM t5;
SELECT * FROM t5 WHERE num = 1; # 二进制显示查询结果
P 15 列类型之小数型 2022/7/2
1.小数的基本使用
案例演示:
# 演示decimal类型、float、double使用
# 创建表
CREATE TABLE t6 (
num1 FLOAT, # 数值类型为float
num2 DOUBLE, # 数值类型为double
num3 DECIMAL(30,20)); # decimal可以存放很大的数
# 添加数据
INSERT INTO t6 VALUES(88.12345678912345,88.123456789123456,88.123456789123456)
SELECT * FROM t6;
DROP TABLE t7; # 删除表t7
CREATE TABLE t7(
num DECIMAL(65));
INSERT INTO t7 VALUES(797787897897897897897989789879745946959);
SELECT * FROM t7;
# decimal与bigint对比,t7与t8
CREATE TABLE t8(
num BIGINT UNSIGNED) # 使用bigint对比能不能存放长数据
INSERT INTO t8 VALUES(797787897897897897897989789879745946959);
# bigint查询结果,显示超出范围了,decimal的范围更大
1 queries executed, 0 success, 1 errors, 0 warnings
查询:INSERT INTO t8 VALUES(797787897897897897897989789879745946959)
错误代码: 1264
Out of range value for column 'num' at row 1
执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0.002 sec
P 16 列类型之字符串 (1) 2022/7/8
1.字符串的基本使用
# 演示字符串类型使用char,varchar
-- CHAR(size)
-- 固定长度字符串 最大255 字符
-- varchar(size) 0~65535
-- 可变长度字符串 最大65532字节 【utf8编码最大21844字符 ,1-3个字节用于记录大小】
-- 如果表的编码是utf8 varchar(size) ,3个字节表示一个字符,则size=(65535-3)/3=21844
-- 如果表的编码是gbk varchar(size) ,2个字节表示一个字符,则size=(65535-3)/2=32766
CREATE TABLE t09 (
`name` CHAR(255)); # 最大255
CREATE TABLE t10 (
`name` VARCHAR(32766)) CHARSET gbk;
DROP TABLE t10;
CREATE TABLE t11 (
`name` VARCHAR(32767)) CHARSET gbk; # 用于测试varchar编码范围
P 17 列类型之字符串(2) 2022/7/9
1.字符串使用细节(一)
细节演示1:
# 演示字符串列类型的使用细节
# char(4)和varchar(4)这个4表示的是字符,而不是字节
#
# char(4)的测试:
CREATE TABLE t11(
`name` CHAR(4));
INSERT INTO t11 VALUES('abcd');
INSERT INTO t11 VALUES('abcde'); # 超过五个字符报错
INSERT INTO t11 VALUES('你好在干'); # 不区分字符是字母还是汉字
SELECT * FROM t11;
# varchar(4)的测试:
CREATE TABLE t12(
`name` VARCHAR(4));
INSERT INTO t12 VALUES('abcde');
INSERT INTO t12 VALUES('abcd');
INSERT INTO t12 VALUES('你好在干吗');
INSERT INTO t12 VALUES('ab北京');
SELECT * FROM t12;
2.字符串使用细节(二)
3.字符串使用细节(三)
4.字符串使用细节(四)
细节演示:
# 如果varchar不够用,可以考虑使用mediumtext,或者longtext
# 如果想简单一点,可以直接使用text
CREATE TABLE t13( content TEXT, content2 MEDIUMTEXT , content3 LONGTEXT);
# 字符串使用单引号
INSERT INTO t13 VALUES(
'学习', '学习100','学习1000~~' );
SELECT * FROM t13;
P 18 日期类型 2022/7/12
1.日期类型基本使用
代码演示:
# 演示时间相关的案例
# 创建一张表,date,datetime,datestamp
CREATE TABLE t14 (
birthday DATE ,-- 记录 生日,年月日
job_time DATETIME, -- 记录 年月日,时分秒
logi_time TIMESTAMP -- 登录时间,如果希望log_time自动更新,需要配置
NOT NULL -- 非空
DEFAULT CURRENT_TIMESTAMP -- DEFAULT CURRENT_TIMESTAMP 默认当前时间
ON UPDATE CURRENT_TIMESTAMP); -- 在修改的时候自动以当前时间填充
SELECT * FROM t14;
INSERT INTO t14(birthday,job_time)
VALUES('2022-7-12','2022-7-12 10:10:10');
-- 如果我们更新t14 表的某条吉记录,login_time列会自动以当前时间进行更新
INSERT INTO t14(
birthday)
VALUES('2019-7-7');
相关结果截图:
P 19 创建表练习 2022/7/12
1.练习
练习一:创建一个员工表emp(课堂练习),选用适当的数据类型 createtable.sql,字段如下:
代码演示:
# 创建表的课堂练习
字段 属性
-- id 整型
-- name 字符串
-- sex 字符型
-- birthday 日期型 (date)
-- entry_date 日期型(date)
-- job 字符型
-- salary 小数型
-- resume 文本型
CREATE TABLE `emp` (
id INT ,
`name` VARCHAR(32),
sex CHAR(1),
birthday DATE,
entry_date DATETIME,
job VARCHAR(32),
salary DOUBLE,
`resume` TEXT) CHARSET utf8 COLLATE utf8_bin ENGINE INNODB;
-- 添加记录
INSERT INTO `emp` VALUES(
100,'小妖怪','男','2002-9-15','2022-7-12','搬砖', 2500,'搬砖挣钱');
SELECT * FROM `emp`;
相关结果截图:
P 20 修改表 2022/7/13
1.修改详细指令
2.应用实例
代码演示:
# 员工表emp的表上增加一个image列,varchar类型(要求在resume后面)
ALTER TABLE emp -- 修改一个表
ADD image VARCHAR(32) NOT NULL DEFAULT ''
-- 增加一个列为image,数据类型为varchar,非空,默认给一个空的字符
AFTER RESUME -- 在resume 后面
SELECT * FROM emp;
DESC employee; -- 可以查看表的结构
# 修改job列,使其长度为60
ALTER TABLE emp
MODIFY job VARCHAR(60) NOT NULL DEFAULT ''
# 删除sex列
ALTER TABLE emp
DROP sex;
# 表明改为employee
RENAME TABLE emp TO employee;
# 修改字符集为utf8
ALTER TABLE employee
CHARACTER SET utf8;
# 列明name修改为user_name
ALTER TABLE employee
CHANGE `name` name_user VARCHAR(32) NOT NULL DEFAULT ''
DESC employee;
相关截图结果:
原文地址:https://blog.csdn.net/ZJC744575/article/details/143074557
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!