1cnd命令行语句
2.操作数据库
对照sqlyog可视化历史记录查看sql
固定的语法和关键字必须要记住
2.2数据库的列类型
数值
- tinyint 十分小的数据 1个字节
- smallint 较小的数据 2个字节
- nediumint 中等大小的数据 3个字节
- int 标准的整数 4个字节 (常用)
- big 较大的数 8个字节 (long)
- float 浮点数 4个字节
- double 浮点数 8个字节 (精度问题)
- decimal 字符串形式的浮点数 金融计算的时候 一般使用
字符串
- char 字符串 固定大小 0~255
- varchar 可变字符串 0~65535 (常用 string)
- tinytext 微型文本 2^8-1
- text 文本串 2^16-1 保存大文本
时间日期
- date YYYY-MM-DD 日期
- time HH:mm:ss 时间格式
- datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
- timestamp 时间戳 1970.1.1到现在的时间 常用
- year 年份表示
null
- 没有值 未知
- --注意 不要使用NULL进行运算 结果为NULL
2.3数据库的字段属性(重点)
Unsigned:
- 无符号的整数
- 声明了该列不能声明为负数
zerolill
- 0填充
- 不足的位数 使用0来田中 int(3), 5---005
自增
- 通常理解为自增 自动在上一条的记录基础上+1(默认)
- 通常用来设计唯一的主键~index 必须是整数类型
- 可以自定义设计组件自增的起始值和步长
非空 NULL not null
- 假设设置为not null 如果不给他赋值 就会报错
- NULL 如果不填写值 默认为null
默认
- 设置默认的值
- sex 默认值为男 如果不指定该列的值 则会有默认的值
拓展 (看看就好)
2.4创建一个数据库表
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT'匿名' COMMENT'姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT'123456' COMMENT'密码',
`sex` VARCHAR(2) NOT NULL DEFAULT'男' COMMENT'性别',
`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT'家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT'邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8`student`
格式
GREATE TABLE[IF NOT EXISTS]表名(
‘字段名’ 列类型 [属性] [索引] [注释],
‘字段名’ 列类型 [属性] [索引] [注释],
‘字段名’ 列类型 [属性] [索引] [注释],
)[表类型][字符集设置][注释]
常用命令
SHOW CREATE DATABASE school -- 查看创建数据库的语句
SHOW CREATE TABLE stdent -- 查看student数据表的定义语句
DESC student -- 显示表的结构
2.5数据表的类型
关于数据库引擎
/*
INNODB 默认使用
MYISAM早些年使用
*/
常规使用操作
- MYSIAM 节约空间 速度较快
- INNODB 安全性高 事务的处理 多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下
本质还是文件的存储
设置数据库表的字符集编码
CHARSET=utf8
不设置的话 回事mysql默认的字符集编码 (不支持中文)
MySQL的默认编码是Latin1 不支持中文
在my.ini中配置默认的编码
character-set-sercer=utf8
2.6 修改删除表
修改
删除
注意点
- ``字段名 使用这个包裹 (tab上方的键)
- 注释 -- /**/
- sql关键字大小写不敏感 建议使用小写
- 所有的符号全部用英文
3 MySQL数据管理
3.1 外键(了解即可)
以上的操作都是物理外键 数据库级别的外键 不建议使用( 避免数据库过多造成困扰)
最佳实践
- 数据库就是单纯的表 只用来存数据 只有行(数据) 和列(字段)
- 我们想使用多张表的数据 想使用外键(程序去实现)
3.2 DML语言(全部记住)
数据库意义:数据存储 数据管理
DML语言:数据操作语言
- Insert
- update
- delete
3.3 添加 Insert
语法 :insert into 表名([字段1,字段2,字段3]valuse('值1') ('值2') ('值3')......
注意 :
- 字段和字段之间用英文逗号隔开
- 字段是可以省略的 但是后面的值必须一一对应 不能少
- 可以同时插入多条数据 VALUES后面的值 需要使用,隔开 VALUSE(' '),(' '),(' '),
3.4 修改 update
修改谁 (条件) set 原来的值=新值
语法 :UPDATE 表名 SET colnum_name = value,[colnum_name = value ......] where [条件]
条件 :where子句 运算符 id等于某个值 大于某个值 在某个区间修改
操作符会返回布尔值
注意
- colnum_name是数据库的列 尽量带上``
- 条件 筛选的条件 如果没有指定 会修改所有的列
- value 是一个具体的值 也可以是一个变量(CURRENT_TIME)
- 多个设置的属性之间 用逗号隔开
3.5 删除 delete
语法: delete from 表名[where 条件]
delete与truncate的区别
了解即可 :delete删除的问题 重启数据库 现象
- innoDB 自增列会从1开始 (存在内存当中的 断电即失)
- MyISAM 继续从上一个自增量开始(存在文件中的 不会丢失)