首页 > 其他分享 >表的操作

表的操作

时间:2023-05-24 13:32:33浏览次数:28  
标签:INSERT name -- CREATE VALUES TABLE 操作

1. 创建表

1.1 基本语法   740

表的操作_java

1.2 练习  740

注意: hsp_db02创建表时,要根据需保存的数据创建相应的列,并根据数据的

类型定义相应的列类型。例: user表(快速入门案例create tab01.sql )[图形化,指令]都演示

id 整形

name 字符串

password 字符串

birthday 日期

代码在E:\java学习\初级\course152\db_

user
#指令创建表   740
#注意: hsp_db02创建表时,要根据需保存的数据创建相应的列,并根据数据的
#类型定义相应的列类型。例: user2表(快速入门案例create tab01.sql )[图形化,指令]都演示
#id			整形		
#name			字符串
#password		字符串
#birthday		日期

CREATE TABLE `user2` (
	id INT,
	`name` VARCHAR(255),
	`password` VARCHAR(255),
	`birthday` DATE)
	CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB; #设置字符集,校验规则,引擎

2. Mysql 常用数据类型(列类型)  741

表的操作_表的操作_02

3. 数值型(整数)的基本使用  742

表的操作_字符串_03

表的操作_java_04

3.1 案例演示  742

代码在E:\java学习\初级\course152\db_

int_
#演示整形
#以tinyint来演示范围
#说明: 表的字符集,校验规则, 存储引擎,使用默认
#1. 如果没有指定 unsinged , 则 TINYINT 就是有符号 有符号 -128 ~ 127
CREATE TABLE t3 (
	id TINYINT);
	
INSERT INTO t3 VALUES(127);#这句是非常简单的添加语句
#查询
SELECT * FROM t3


#2. 如果指定 unsinged , 则 TINYINT 就是无符号 0-255
CREATE TABLE t4 (
	id TINYINT UNSIGNED);
	
INSERT INTO t4 VALUES(255);#这句是非常简单的添加语句
#查询
SELECT * FROM t4

4. 数值型(bit)的使用  743

4.1 基本使用

mysql> create table t05 (num bit(8);

mysql> insert into t05 (1, 3);

mysql> insert into t05 values(2, 65);

4.2 细节说明bit.sql

bit字段显示时,按照位的方式显示.查询的时候仍然可以用使用添加的数值如果个值只有0, 1可以考虑使用bit(1) ,可以节约空间位类型。M指定位数,默认值1,范围1-64使用不多.

代码在E:\java学习\初级\course152\db_

bit_
#演示bit类型的使用  743
#1. bit(m) m 在 1-64
#2. 添加数据 范围 按照你给的位数来确定,比如 m = 8 表示一个字节 0~255
#3. 显示按照位 bit
#4. 查询时,仍然可以按照数来查询
CREATE TABLE t05 (num BIT(8))
INSERT INTO t05 VALUES(255);
SELECT*FROM t05;
SELECT*FROM t05 WHERE num=1;

5. 数值型(小数)的基本使用  744

1. FLOAT/DOUBLE [UNSIGNED]

Float单精度精度,Double 双精度.

2. DECIMAL[M,D] [UNSIGNED]

可以支持更加精确的小数位。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。

如果D是0,则值没有小数点或分数部分。M最大65。D最大是30。如果D被省略,默认是0。如果M被省略,默认是10 

建议:如果希望小数的精度高,推荐使用decimal

代码在E:\java学习\初级\course152\db_

decimal_

#演示decimal、float、double类型的使用  744
#创建表
CREATE TABLE t06 (
	num1 FLOAT,
	num2 DOUBLE,
	num3 DECIMAL(30,20));
#添加数据
INSERT INTO t06 VALUES(88.12345678912345, 88.12345678912345,88.12345678912345);
SELECT*FROM t06;

#decimal 可以存放很大的数
CREATE TABLE t07 (
	num DECIMAL(65));#M最大位65位,D被省略默认位0,如果M被省略默认为10
INSERT INTO t07 VALUES(8999999933338388388383838838383009338388383838383838383);
SELECT*FROM t07;

CREATE TABLE t08(
	num BIGINT UNSIGNED)
INSERT INTO t08 VALUES(8999999933338388388383838838383009338388383838383838383);
SELECT * FROM t08;

6. 字符串的基本使用  745

CHAR(size)固定长度字符串最大255字符

VARCHAR(size) 0~ 65535

可变长度字符串最大65532字节[utf8编码最大21844字符 1-3个字节用于记录大小]

6.1 应用案例charVarchar.sql 文件

代码在E:\java学习\初级\course152\db_

char_varchar
#演示字符串类型的使用char  varchar   745
#注释的快捷键ctrl+shift+c 
#取消注释快捷键ctrl+shift+r
-- CHAR(size)固定长度字符串最大255字符
-- VARCHAR(size) 0~ 65535
-- 可变长度字符串最大65532字节[utf8编码最大21844字符 1-3个字节用于记录大小]

CREATE TABLE t09 (
	`name` CHAR(255));
	
-- 如果表的编码是 utf8 varchar(size) size = (65535-3) / 3 = 21844
-- 如果表的编码是 gbk varchar(size) size = (65535-3) / 2 = 32766
CREATE TABLE t10 (
	`name` VARCHAR(21844));
	
#指定编码是gbk
CREATE TABLE t10_1 (
	`name` VARCHAR(32766)) CHARSET gbk;

6.2 字符串使用细节

6.2.1 细节1 

char(4) //这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个按字符计算.

varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据

不管是中文还是英文字母,都是最多存放4个,是按照字符来存放的.

6.2.2 细节2

char(4)是定长(固定的大小),就是说,即使你插入'aa' ,也会占用分配的4个字符的空间,

varchar(4)是变长(变化的大小),就是说,如果你插入了'aa' ,实际占用空间大小并不是4个字符,而是按照实际占用空间来分配

varchar本身还需要占用1-3个字节来记录存放内容长度) L(实际数据大小)+ (1-3)字节

6.2.3 细节3

什么时候使用char ,什么时候使用varchar

1.如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等. char(32)

2.如果一个字段的长度是不确定,我们使用varchar,比如留言,文章

查询速度:char > varchar

6.2.4 细节4

在存放文本时,也可以使用Text数据类型.可以将TEXT列视为VARCHAR列,注意Text不能有默认值.大小0-2^16字节如果希望存放更多字符,可以选择MEDIUMTEXT 0-2^24或者LONGTEXT 0~2^32

6.2.5 代码在E:\java学习\初级\course152\db_

charVarcharDetail
#字符串类型使用细节  746
#char(4) 和 varchar(4) 这个 4 表示的是字符,而不是字节, 不区分字符是汉字还是字母
CREATE TABLE t11(
	`name` CHAR(4));
	#放入数据
INSERT INTO t11 VALUES('abcd');
INSERT INTO t11 VALUES('中国世界');
SELECT * FROM t11;

CREATE TABLE t12(
	`name` VARCHAR(4));
INSERT INTO t12 VALUES('中国世界');
INSERT INTO t12 VALUES('abcd');
INSERT INTO t12 VALUES('ab中国');
SELECT * FROM t12;

#如果 varchar 不够用,可以考试使用 mediumtext 或者 longtext, 
#如果想简单点,可以使用直接使用 text

CREATE TABLE t13(content TEXT,content2 MEDIUMTEXT,content3 LONGTEXT);

INSERT INTO t13 VALUES('中国和世界abc', '中国和世界100', '中国和世界1000~~');
SELECT *FROM t13;

7. 日期类型的基本使用  747

CREATE TABLE birthday6

( t1 DATE, t2 DATETIME,

t3 TIMESTAMP NOT NULL DEFAULT

CURRENT_TIMESTAMP ON UPDATE

CURRENT_TIMESTAMP ) ; timestamp时间戳

mysql> INSERT INTO birthday (t1,t2)

VALUES('2022-11-11';'2022-11-11 10:10:10');

7.1 日期类型的细节说明

TimeStamp在Insert和update时,自动更新

代码在E:\java学习\初级\course152\db_

date_datetime_timestamp

#演示时间相关类型
#创建一张表 date,datetime,timestamp
CREATE TABLE t14(
	birthday DATE,-- 生日
	job_time DATETIME,-- 记录年月日时分秒
	login_time TIMESTAMP 
	NOT NULL DEFAULT CURRENT_TIMESTAMP 
	ON UPDATE CURRENT_TIMESTAMP);-- 登陆时间,如果希望login_time列自动更新,需要配置
	#添加数据,login_time没有添加数据,但是系统会自动给当前时间添加进去
INSERT INTO t14(birthday, job_time)
	VALUES('2022-11-11','2022-11-11 10:10:10');
SELECT * FROM t14;
-- 如果我们更新 t14 表的某条记录,login_time 列会自动的以当前时间进行更新

8. 创建一个员工表emp (课堂练习),选用适当的数据类型  748

表的操作_数据_05

代码在E:\java学习\初级\course153\db_

create_table

#创建表练习  748
-- 字段属性
-- Id 整形
-- name 字符型
-- sex 字符型
-- brithday 日期型(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,'小妖怪','男','2000-11-11',
	'2021-11-10 11:11:11','巡山的',3000,'大王叫我来巡山');
SELECT * FROM `emp`;

9. 修改表-基本介绍  749

表的操作_字符串_06

9.1 应用实例  749

员工表emp的上增加一个image列,varchar类 型(要求在resume后面)。

 修改job列,使其长度为60。

 删除sex列。

表名改为employee.

 修改表的字符集为utf8

 列名name修改为user_ name

alter table user change column name username varchar(20);

代码在E:\java学习\初级\course153\db_

create_table

#修改表的操作练习  749
--  员工表emp的上增加一个image列,varchar类 型(要求在resume后面)。
ALTER TABLE emp 
	ADD image VARCHAR(32) NOT NULL DEFAULT '' -- NOT NULL DEFAULT ''是不允许为空的意思默认为''
	AFTER RESUME
DESC emp  -- 显示表结构,可以查看表的所有列

--  修改job列,使其长度为60。
ALTER TABLE emp
	MODIFY job VARCHAR(60) NOT NULL DEFAULT''
	
--  删除sex列。
ALTER TABLE emp
	DROP sex
	
--  表名改为employee.
RENAME TABLE emp TO employee
DESC employee

--  修改表的字符集为utf8
ALTER TABLE employee CHARACTER SET utf8

--  列名name修改为user_ name
ALTER TABLE employee
	CHANGE `name` `user_name` VARCHAR(64) NOT NULL DEFAULT ''
DESC employee

标签:INSERT,name,--,CREATE,VALUES,TABLE,操作
From: https://blog.51cto.com/u_15784725/6338743

相关文章

  • 解决git操作一直要求输入用户名和密码的问题
    git每次pull、push都要求输入用户名和密码解决方法: 保存用户本地凭证即可,这样每次git操作时,使用已保存的凭证就OK了。1##全局2gitconfig--globalcredential.helperstore34gitconfig--globaluser.username"username"5gitconfgi--globaluser.password"pa......
  • k8s下服务做threaddump和heapdump操作过程
    1. #查询节点的资源使用情况kubectl-nkjhs-yonyoutopnodes 2.#查询每个服务的资源使用情况kubectl-nkjhs-yonyoutoppod 3.#做theaddump和heapdump文件#找一个内存使用最大的服务,进入容器中做dump文件kubectl-nkjhs-yonyouexec-itf9667046-kjhs-yo......
  • python+playwright 学习-62 日历控件操作
    前言遇到输入框是弹出日历控件,选一个日期的这种场景,可以直接在输入框输入内容。如果输入框是readonly的时候,可以用js改变输入框的属性日历控件如果输入框是日历控件先看能不能直接输入一个日期,如果能直接输入的情况,就不用点开了代码示例#上海悠悠wx:283340479#blog:ht......
  • python+playwright 学习-65多线程同时打开多个浏览器不同账号操作
    前言最近用小伙伴提到多线程同时操作多个浏览器,每个浏览器用不同账号登录的需求。多线程操作以下是2个账号同时打开2个浏览器操作的示例fromplaywright.sync_apiimportsync_playwrightfromthreadingimportThreaddefdo_some_thing(username,password):playwri......
  • Cesium 更改默认的鼠标操作
    //将原来鼠标中键倾斜视图修改为鼠标右键触发viewer.scene.screenSpaceCameraController.tiltEventTypes=[Cesium.CameraEventType.RIGHT_DRAG,];//将原来鼠标右键放大缩放修改为鼠标滚轮滚动viewer.scene.screenSpaceCameraController.zoomEventTypes=[Cesium.Ca......
  • SpringBoot中操作Redis解析JsonArray数据为对象List(ruoyi字典值sys_dict为例)
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662在上面搭建系统的基础上,会将系统的字典值缓存进redis中。看数据格式存储的是Json数组,如何从redis中读取并解析成对象的list从而进行数据处理。注......
  • AI Studio 基本操作
    https://aistudio.baidu.com/aistudio/projectdetail/6182202项目启停执行和调试添加代码或文件运行代码%cd/home/aistudio%runwork/SampleOfRun.py!pythonwork/SampleOfRun.py快捷健Debug调试器下一行->n打印->p动态添加断点->b动态分配变量......
  • es笔记五之term-level的查询操作
    本文首发于公众号:Hunter后端原文链接:es笔记五之term-level的查询操作官方文档上写的是term-levelqueries,表义为基于准确值的对文档的查询,可以理解为对keyword类型或者text类型分词为keyword的字段进行term形式的精确查找。以下是本篇笔记目录:是否存在值前缀搜索......
  • 拉取代码、分支、文件操作等基本GIT命令使用
    1.打开gitlab,登录账号2.在自己的projects里面能看看到项目列表: 3.点进去项目“mygit”:  4.复制路径:  5.把地址拷贝到终端,加上gitclone指令: 6.输入完成指令之后,按下回车,就把代码拉取下来了,如下图,ll查看一下拉去的代码:   二。分支常见命令: 1.首先......
  • Linux-RHCA操作系统
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......