MySQL基本语法程序员培养之路第二
2023-3-9 来源:不详 浏览次数:次第一节SQL语句简介
SQL语言
SQL(StructuredQueryLanguage)是用于访问和处理数据库的标准计算机语言。使用SQL访问和处理数据系统中的数据,这类数据库包括:Oracle,mysql,Sybase,SQLServer,DB2,Access等等。
mysql基本规范
SQL对大小写不敏感,一般数据库名称、表名称、字段名称全部小写
MySQL要求在每条SQL命令的末端使用分号(MSAccess和SQLServer,则不必在每条SQL语句之后使用分号)。
注释
mysqlselect1+1;#这个注释直到该行结束mysqlselect1+1;--这个注释直到该行结束mysqlselect1/*这是一个在行中间的注释*/+1;mysqlselect1+/*这是一个多行注释的形式*/
数据库第二节MySQL基本数据类型
字段类型
数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储方式,代表了不同的信息类型。不同的数据库,数据类型有所不同,MySQL数据库有以下几种数据类型:
字符串型
类型 字节 大小 说明
char 1 0-字符(2^8) 定长字符串
varchar 2 0-字符(2^16) 变长字符串
tinytext 1 0-字符(2^8) 短文本(与char存储形式不同)
text 2 0-字符(2^16) 文本
mediumtext 3 0-字符(2^24) 中等长度文本
longtext 4 0-字符(2^32) 极大文本
注意:char和varchar需要指定长度,例如:char(10)
整数型
类型 字节 范围(有符号) 范围(无符号) 用途
tinyint 1 (-,) (0,) 很小整数值
smallint 2 (-,) (0,) 小整数值
mediumint 3 (-,) (0,) 中整数值
int或integer 4 (-,) (0,) 整数值
bigint 8 (-,) (0,) 很大的整数值
很多人喜欢在定义数据时,这样写:
createtabletbl_name(ageint(10));
int后面()中的数字,不代表占用空间容量。而代表最小显示位数。这个东西基本没有意义,除非你对字段指定zerofill。mysql会自动分配长度:int(11)、tinyint(4)、smallint(6)、mediumint(9)、bigint(20)。所以,建议在使用时,就用这些默认的显示长度就可以了。不用再去自己填长度(比如:int(10)、tinyint(1)之类的基本没用)。
code浮点型
类型 字节 范围 用途
float(M,D) 4 23bit(约6~7位10进制数字) 单精度浮点数br/值绝对能保证精度为6~7位有效数字
double(M,D) 8 52bit(约15~16位10进制数字) 双精度浮点数值br/精度为15~16位有效数字
decimal(M,D) M+2 依赖于M和D的值 定点型
M(精度),代表总长度(整数位和小数位)限制
D(标度),代表小数位的长度限制。
M必需大于等于D
数字的修饰符 功能 说明
unsigned 无符号 非负数
zerofill 前导0 整形前加0(自动添加unsigned)
日期型
类型 字节 范围 格式 用途
date 3 -01-01----12-31 YYYY-MM-DD 日期值
time 3 -:59:59---:59:59 HH:MM:SS 时间值或持续时间
year 1 --- YYYY 年份值
datetime 8 -01-:00:00----12-:59:59 YYYY-MM-DDHH:MM:SS 混合日期和时间值
timestamp 4 -01-:00:00/结束时间是第秒,北京时间-1-:14:07,格林尼治时间年1月19日凌晨03:14:07 YYYYMMDDHHMMSS 时间戳,混合日期和时间值
开发列举与枚举
名称 字节 说明
set 1、2、3、4或8 列举:可以取SET列表中的一个或多个元素(多选)
enum 1或2 枚举:可以取ENUM列表中的一个元素(单选)
createtablestudents(idtinyint,#微小整型namevarchar(10),#变长字符sexenum(m,w),#单选birthdaydate,#日期型telchar(11),#定长字符citychar(1),#城市hobbyset(1,2,3,4),#多选introduce text#个人介绍);
字段属性
属性 功能 说明
notnull 非空 必须有值,不允许为null
default 默认值 当插入记录时没有赋值,自动赋予默认值(允许为null)
primarykey 主键 惟一标识一行数据的字段(主键自动为notnull)
auto_increment 自动增量 不能单独使用,必须与primarykey一起定义
unique(uniquekey) 唯一 记录不能重复(一张表可以有多个unique,允许为null)
云计算第三节数据的增、删、改
增删改查(简称:CURD)
增
#方法1:指定字段
insertintostudents(name,age)values(张三,20);
#方法2:省略字段名,字段位要一一对应,不能跳过(auto_increment字段,可以使用null或default)
insertintostudentsvalues(null,张三,20);
#方法3:批量增加数据
insertintostudents(name,age)values(张三,20),(李四,21),(王五,22)……
删
#用delete删除记录,一定要加where条件,否则表数据全部删除!!
deletefrom表名wherexx=xxx;
数据库语句#用truncate删除记录,不能加where条件,直接删除全部记录,id索引重新从1开始
truncatetable表名;
改
#单条修改
update表名setxx=xx,xxx=xxwherexxx=xxxandxxx=xxx;
#多条修改
updatestudentssetname=caseid#id字段when1thenzhangsanwhen2thenlisiwhen3thenwangwuwhen4thenzhaoliuend,city=caseidwhen1then2when2then4when3then1when4then2endwhereidin(1,2,3,4);