查看修饰符如何来使用
查找错误
顺序问题修正
查看表信息,auto_increment自动递增
可以查看当初表创建的时候是怎么定义的
enum枚举,engine存储引擎,charset字符集,comment表的描述可以让用户知道这个表是做什么的
第二种创建表的方式,select语句可以让表的数据内容,或者表的结构从另外一张表来
可以用上面的查询结果来创建表,表的结构是一样的
查看是否有数据,实际上连数据也拷贝过来
数据不要,光要表结构也是可以的,借助查询到不存在的数据,直接把表结构复制,而不是一起把表的数据复制过去
这样就没有数据了
还有第三种语法
like 像某张表
数据是不复制过去的
desc和show cloumn都能查表结构
曾经有个技术人员,为了让表头显示中文的就把表结构修改 了
表一旦设计好了,就尽量不要去修改,也不要去使用中文
alter table修改表结构
可以把字段的顺序进行修改
如果把长度变成小一点,就会丢失数据,一般建议字段在定义好了,就不建议进行修改
下面是删除
级联删除,就是如果两个表有联系,就会一起删除
ENUM枚举,和set集合,区别是,
枚举是某些字符选一个,最多可以达到65535字符的其中之一选一个
set是多选,可以从中定义好几个字符,从中可以选一个,两个,多个
所以性别就适合枚举,多选一(m,f)
主键在一张表里只有一个,而且不为空,允许多个字段组成一起成为复合主键
唯一键可以为空
组成复合主键
大部分数据库和表字段的操作不多,多的是对表数据的操作
数据库操作语言
数据库查询语言
数据库控制语言
insert有三种语法
数字不需要加引号,字符串是必须加引号的
row affected 有一行被影响了
成功添加记录
可以指定列插入信息,空值会发生麻烦事,是个定时炸弹
set语法用的不是很多
可以加多条记录,用,隔开
set语法用的不是特别多
可以把旧表的内容导入到新表
emp表是空 的
sex。auto_increment 没有值就用默认值填充
还有一个就是小的往大的放,大的不能往小的放
、
涉及到update和delete,都需要加where否则跟删库没有区别
limit就是限定的记录数有几个
生产中一般不删除表,都是用deleted,在表的后面做一个标记为,删除为1,不删除为0
这么删除虽然可以全部删除,但是太慢
快速删除表方法,truncate table
delete可以借助日志恢复,truncate不行,但是建议都不删除
有很多不加条件造成的人间悲剧
所以可以加上mysql的 --safe-updates
也可以简单点-U
为了安全和方便可以定义成别名
也可以修改配置文件
避免了误操作
查询方式特别多,有时候可能因为一条效率比较低的语句造成数据库宕机
单表操作,没有字段
sql也是一种语言,也可以做运算
user表有多少行就会显示多少行
是按照表的字段添加顺序显示的,准确的说是磁盘上摆放的顺序
(在磁盘上后添加的记录,也有可能到前面去,尤其索引
索引会将数据进行升降顺序来存放,所以有可能,在表中后添加的记录跑到前面去了
select来显示的适合,是按照磁盘摆放顺序来显示的
=精确匹配
并且
查找性别为空的
性别非空
插入行
学生编号大于2,小于5的
in是包含
最好是不要让空值出现